シミュレーションに挑戦してみよう (1) シミュレーションとは何か

電気情報工学入門(コアセミナー)(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