電気情報工学入門(コアセミナー)(1) 2011/5/17 シミュレーションとは何か シミュレーションに挑戦してみよう (1) あるものの現象(挙動)を知りたい/予測したいと思って いるときに… その現象を,他のものを使ってまねすること. 情報基盤研究開発センター 天野浩文 amano@cc.kyushu-u.ac.jp 実物で実験を行うのは規模が大き過ぎる/費用がかかり過ぎ る/時間がかかり過ぎる. 実物で実験を行うのは危険すぎる. 実物が観測不能/実験が不可能である. 実際に現象が起こるまで待っていられない. 人間以外の外部の要素の挙動ははっきりしているが,その中 に入れられた人間の行動パターンを知りたい. 実物の装置は高価・危険過ぎるが,操作する(ことになる)人 間の訓練は十分にやっておきたい. 2 1 シミュレーションの例(1) 規模が大き過ぎる/費用がかかり過ぎる/時間がかか り過ぎる 実際に現象が起こるまで待っていられない ダムなどの構造物が崩壊する条件 交通渋滞の発生から解消までの様子 実験が危険すぎる シミュレーションの例(2) 自動車が壁に衝突したときに搭乗者に加わる衝撃 原子炉に障害が起きたときの放射線漏れの予測 天気予報 災害発生時の被害範囲の予測 人間の行動パターン予測,訓練 フライトシミュレータ ビジネスゲーム 実物が観測不能/実験が不可能 ジェットエンジンのタービンのまわりの乱流 銀河と銀河の衝突の様子 3 4 1 電気情報工学入門(コアセミナー)(1) 2011/5/17 コンピュータシミュレーション 「シュミレーション」? 実物や模型を使う代わりに,コンピュータ上に 「モデル」を作って,それで実験を行うこと コンピュータが高性能かつ安価になるにつれて, 模型による実験よりもはるかに安価に実現でき ることが多くなった. ただし,模型による実験よりも常に正確であると は限らない. 英語では,simulation うまく発音できなくて「シュミレーション」と呼ぶ人 がいるが,これは誤り 雰囲気→「ふいんき」のたぐい 「モデル」がどれだけ対象物を正しく表現できている かに左右される 5 6 「エミュレーション」? シミュレーションのモデル(1) コンピュータの世界では,よく似た言葉に「エミュ レーション」というのがある. コンピュータシステムの一部あるいは全部を,別 のハードウェアやソフトウェアで置き換えて疑似 的に動作させること. 表現のしかたによる分類 物理的モデル 外から見ると,その部分が置き換えられていることは (ほとんど)わからない. 7 実物や縮小模型などを用いる コンピュータシミュレーションにはならない 数学的モデル 数式,数値,関数などの集まりを用いる コンピュータシミュレーションで扱いやすい 8 2 電気情報工学入門(コアセミナー)(1) 2011/5/17 シミュレーションのモデル(2) シミュレーションのモデル(3) 観測される値の性質による分類 連続変化モデル 対象の挙動による分類 時間の経過とともに連続的に変化する値を追跡する 決定論的モデル 離散変化モデル ある時刻になると発生する不連続な事象(イベント)とその 影響を追跡する 構成要素の挙動がすべて決まっていて,毎回必ず同じ結 果になる 不確定モデル システムの一部に不確定な振る舞いをするものが含まれ ている 9 10 このコアセミナーでは… 待ち行列(queue) まず,数学的で,離散変化する,不確定なモデ ルによるシミュレーションに挑戦する 次に,連続変化モデルも 今日のところは,非常に単純な「待ち行列」を手 作業でシミュレーションしてみる 順番を待つ人や乗り物などの列,行列 自分がサービスを受けられる順番が来るのを待つ,と いう行為は,社会のさまざまな場面で見られる 11 銀行の窓口 学生食堂の定食出食口 切符の自動販売機 コンピュータの世界でも,リクエストが送信されてから, 実際にそれが処理され,応答が返ってくるまでの間に, 「待ち行列」が介在するようなことがある. 12 3 電気情報工学入門(コアセミナー)(1) 2011/5/17 待ち行列理論(queuing theory) 今日の実験 待ち行列を数学的にモデル化し,平均的な行列 の長さや,サービスが受けられるまでの平均的 な待ち時間などを検討する理論 窓口が一つだけしかない,小さな銀行を考える ときどき客がやってくる. 窓口は,一度に一人の客にしか応対できない. 客は,窓口が空いていればただちに行員に応対してもらえる が,他の客が応対を受けていれば,その後ろに並んで待つ. 待っている客がいるときは,後から来た客はその後ろに並ぶ. 用事が済んだ客は直ちに銀行から出て行き,戻っては来ない. 次にサービスを受ける客は,窓口が空いたらただちに窓口に 移る. 13 14 シミュレーションするには 窓口 シミュレーションの進行を司る時計の刻み幅を決める. 客 客 客 待っている客 入口 客 客 客がやってくるタイミングまたは頻度を決める. サービスを 受けている 客 出口 最初の30分は10分おき(開始10分後に最初の客が到着) 次の30分は5分おき 最後の30分はまた10分おき その後はゼロ 客の応対にかかる時間を決める. 15 時計を1分進めるたびに,客や窓口の状態がどのように変化 するかを調べる. 今回は1分間でよいだろう. それぞれ10分かかるものとする 16 4 電気情報工学入門(コアセミナー)(1) 2011/5/17 シミュレーションの進め方 シミュレーションからわかること 表を埋めていく まず,客が到着するタイミングだけを先に計算する. ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮のように番号を付け, 「到着」の欄に書き入れる 次に,時刻を1ずつ進めながら,客の状態に変化が 起きたら,表に書き入れる 「待ち行列」にも,「応対中」にも客がいなくなったら, 終了. 17 グラフを書いてみるとわかりやすい 到着した客の数は,時間とともにどのように変化する か 待ち行列にいる客の数は,時間とともにどのように変 化するか 応対が終了して外に出てきた客の数は,時間ととも にどのように変化するか 18 5
© Copyright 2024 Paperzz