シミュレーション

シミュレーション（）は、何らかのシステムの挙動を、それとほぼ同じ法則に支配される他のシステムや計算によって模擬すること。simulationには「模擬実験」や「模擬訓練」という意味もある。
なお、「シュミレーション」は「シミュレーション」の語頭の2音を音位転換させたことによって生じた語形であり、誤りである。また、同化によって「シミレーション」と発音されることがある。「シミュレイション」と表記することもまれにある。
概要.
ラテン語の 「similis シミリス（似ている）」「simulare シミュラーレ（模倣する）」「simulat（真似た、コピーした）」といった用語から生まれた概念である。
シミュレーションは、対象となるシステムで働いている法則を推定・抽出し、それを真似るようにして組み込んだモデル、模型、コンピュータプログラムなどを用いて行われる。
現実のシステムを動かしてその挙動や結果を確かめることが困難、不可能、または危険である場合にシミュレーションが用いられる。
例えば、社会現象などにおける問題の解決方法を探る時など、（悪影響があるので実社会ではとりあえず試せないので）実際の社会と似た状況を数式などで作りだし、コンピュータ等を用いて模擬的に動かし、その特性などを把握するのに用いる。例えば風洞実験、水槽実験で働いている法則を数学的なモデルに置き換えて行う。また例えば経営に関する様々な事象を数学的なモデルに置き換えてみて、様々な数値を入力したり変化させることで、結果を推定する。
シミュレーションのための装置やプログラムをシミュレータ () と言う。ただし、きわめて単純なシステムを模倣するためのシミュレーション、特に単純化されたモデルを用いる場合などは（とりあえず）紙と鉛筆（やホワイトボードとペン）だけを用いて手作業で行われるものもある。
対象となるシステムにおいて働いている法則をどれほど忠実に模倣するかによって、シミュレーションの精度は異なる。シミュレーションの質は、シミューレーションを設計する者の技量や、どの程度まで法則を見抜き、どこまでそれらの法則を模倣させたか、ということによって異なるのである。現実の法則を十分に模倣していないシミュレーションは、現実とは異なった挙動を示す。
また、コンピュータを用いて連続現象を離散化した積算によるシミュレーションは必ず誤差が生じ、その誤差は蓄積する。従ってコンピュータによるシミュレーションによって良好な結果を得る為には、モデル化による誤差見積もりが重要となる。モデル化によるシミュレーションは、現象についてどの程度正確に真似るかによって計算量を調整することが可能であり、現象についての完全な知識は必要とされないなどのメリットがある。
システムのモデル化を行わず、完全な模倣を目的とする場合は、シミュレーションと言わずエミュレーションということもある。エミュレーションは、模倣したいシステムにおいて、予測できる現象より予測できない現象が支配的である場合などに使われる。
模型などによるシミュレーション.
ミニチュアによる実験など、何らかの物理的な物体で実物を置き換えることもシミュレーションの一種である。これを「物理的シミュレーション」と言うこともある。置換する物体としては、実物よりも小さいものや安価なものが選ばれる。
模型を使った戦争シミュレーションの例として、『戦国策』『墨子』には、墨子が公輸盤と戦争を論じ合い、楚王の前で模型を使って勝負をし、公輸盤が新兵器である雲梯を使って9回攻めたが、墨子の守りは固く攻め落とすことができず、これを見た王は宋を侵略しないことを約束したという逸話が記されている。これは模型を使ったシミュレーションによって戦争を防いだ（守城戦を見せつけた）逸話である。また日本でも戦国時代の大名・上杉謙信は2メートル四方もある城の模型を用いて合戦のシミュレーションを行っていたと言い伝えられている。
コンピュータ・シミュレーション.
コンピュータシミュレーションとはコンピュータを用いたシミュレーションのことである。
コンピュータ・シミュレーションには、一旦シミュレーションが始まるとあとはコンピュータだけで完結してシミュレーションを行う「非対話型シミュレーション」と、シミュレーション中に人間がなんらかの形で（コンピュータ内に模擬的に作られた世界に）介入し影響を与えることのできる「対話型シミュレーション」がある（その応用形のひとつの形が、フライトシミュレータやドライビングシミュレータなどである）。
コンピュータ・シミュレーションは、実世界や何らかの仮説的状況をコンピュータ上でモデル化するもので、それによってそのシステムがどのように作用するのかを研究することができる。変数を変化させることで、システムの振る舞いについて予測を立てることができる。
コンピュータ・シミュレーションは、自然科学的システムのモデル化を行い（たとえば物理学/化学/生物学における様々なモデル化、経済学/社会科学における人間に関わるシステムのモデル化、さらには工学におけるシステムのモデル化など）、それをコンピュータで計算することで、システムの作用について洞察を得る助けとなる。シミュレーションにコンピュータを使うことの利便性を表す例は多数ある。人々によく知られ、日々実感されている例としては数値予報（）、メッシュ予報のために各国の気象機関でスーパーコンピューターを使って行われているシミュレーションが挙げられる。ほかにも「ネットワーク交通量シミュレーション」を挙げる人もいる。異なった数値モデルを使うと振る舞い、結果が異なり、また環境の初期設定を変更してもモデルの振る舞いが変化する。
なお気候変動の予測には、適切な気候モデルを用いたコンピュータシミュレーションが不可欠である。2021年には、はじめて大気海洋結合モデルを開発し地球温暖化について具体的な温度変化の数字もコンピュータではじき出して科学的研究を可能にした眞鍋淑郎にノーベル物理学賞が授与された。
コンピュータ・シミュレーションには様々なタイプがあるが、それらに共通するのは、システムが取りうる全ての状態を列挙するのが不可能あるいは現実的でない場合に、そのモデルの代表的シナリオの標本を生成しようとするという点である。
モンテカルロ法や確率論的モデリングによるコンピュータ・シミュレーションは、モデル化が非常に簡単という特徴がある。
コンピュータに関係するシミュレーションであるが、前の節で説明しているものとはおもむきが大きくことなるものなので、節を分けて説明する。計算理論では、たとえば万能チューリングマシン（のような、模倣する能力を持つ機械）が、模倣対象（たとえば、なんらかのチューリングマシン）の状態遷移と入力と出力を記述した状態遷移表を実行すること（現代風に言うと、コンピュータがそのようなプログラムを走らすこと）を、シミュレーションと言う。これは、状態遷移系間の関係といった、意味論の研究などで使われている。
コンピュータ・シミュレーションの応用.
コンピュータの登場によって、人間の手による計算ではほとんど不可能な膨大な量の総当りでしか行えない計算が比較的短時間で行えるようになったため、コンピュータによるシミュレーションは自然現象や経済活動や人口の推移といったものに使用されるようになった。コンピューターの演算能力の発展は、以前は縮小模型や実物大模型などによって行われていた実験を計算による仮想空間のみで実験・予測することが可能になってきている。
例えば、木の葉が舞い落ちる動きを通常の手計算で導き出す事は不可能であった。これは重力や空気抵抗だけでなく、木の葉自体の動きによる空気の状態変化などが複雑に絡み合っているからである。この、カオティックな振る舞いに対して、単純計算を膨大に繰り返す事の出来るコンピュータによって、ある程度の周期性や規則性を見出されうる。
最近の気象予報には、コンピュータ・シミュレーションは欠かせない。地球という球体上を格子（メッシュ）に区切ったモデルを用いて、スーパーコンピュータを用いてシミュレーションを行っている。コンピュータの性能が向上するにつれて次第に格子の大きさを小さくすることができるようになるとともに、予測精度が向上した。
数値シミュレーションは天文学においては第三の手法と見なされている。天文現象というのは時の長さや空間的なスケールの大きさのせいで実験室で実験することが不可能なため、コンピュータシミュレーションが必要になる。天体物理学者はコンピュータのなかに宇宙を創り出しその中で天文現象を再現しその挙動を確かめる。
コンピュータを使ったコンピュータのシミュレートというものもある。エミュレータと呼ばれるシミュレータも使われる（たとえば実機で走らせるのが困難な場合や面倒な場合や、制御されたテスト環境下でプログラムを実行して実害が出ない安全な状態で結果を事前に確認するためなどに使われる。）
仮想化というのもシミュレーションの一種である。たとえば、マイクロプログラムやアプリケーションプログラムを、実機に送り込む前にデバッグするのに使う。コンピュータの動作がシミュレートなので、コンピュータの動作の全ての情報をプログラマが直接的に利用でき、速度を変えたりステップ実行したりなど好きなようにできる。一方でいわゆる「ゲートレベル」の完全なエミュレーションは現実的でないことが多く、また普通はそこまで厳密にエミュレーションする必要はないことも多いが、例えばエミュレートしきれない部分の実機にバグがある場合のデバッグまではできない。プログラムによるシミュレーションでは速度的に不十分な必要な場合は、FPGAなどのプログラマブルなハードウェアによって、エミュレーションないしシミュレーションを行うこともある。VMware、VirtualBox、Hyper-Vなどを用いて、バーチャルにOSを構築し、さまざまな環境を設定してOSの挙動を安全な環境下で確かめる手法も一般化している。
TCP/IP等の通信プロトコルの分野では日々新しい方式が提案されている。IEEEやITU、あるいは日本の電波産業会（ARIB）などで次世代の通信プロトコルの標準規格が議論されるが、このとき各提案者の案として提示されている規格が、さまざまな条件下でどのような特性を持っているのかを比較検討する必要がある。このような局面で通信プロトコルのシミュレーション が必須となっている。2層（データリンク層）以上の通信プロトコルの規格は状態遷移図で記載されることが多いが、記述された状態遷移等の処理、条件をコンピュータ上で疑似し、スループットやエラー処理などの評価を行う。
学術機関で用いられるシミュレータはns 等のオープンソースソフトウェアが多いが、民間企業や民間研究所のような、資金に余裕があり応用に近い研究を行う組織では、大規模トポロジ構築などを容易に行えるツール群が整備され、より迅速に現実に即した解析が可能なQualnet、OPNET Modeler 等の商用のシミュレータを使用するケースが多い。
この分野のシミュレーションでは信号処理の部分をMATLAB/Simulink、電波伝搬の部分をWirelessInSight, Winprop, Atoll等の他のシミュレータや計算ソフトと連携させたりする場合もある。また特に無線、移動体の分野では各通信機の動きも重要な要素となるためその部分に関して他のツールや実際の計測値などと連携させる試みもなされている。
Qualnet、OPNET Modeler等の商用ツールでは実際のネットワーク上を流れる通信パケットをシミュレータと接続できるものもあり、仮想のネットワークを利用した時の動画品質も確認などにも使われている。
コンピューター上で電子回路の設計や実験をするのに、SPICEやSPICEを起源とする電子回路シミュレーション・ソフトウェア等が使われている。電子回路を所定の書式でシミュレーターに入力（GUIによる入力が可能なものも多い）すると、各電子部品の電気的特性を元に回路の動作が計算され、回路の動作を調べることができる。
マイクロプロセッサなど高度に複雑なディジタルLSIの論理設計も、実際に製造に入る前にシミュレータでテストされる。
無線工学においては、アンテナの設計をするのにアンテナ・シミュレーション・ソフトウェアが用いられる。アマチュア用途ではMMANAやMMANA-GAL等のフリーソフトがある。アンテナの物理的な形状を入力すると、自由空間や特定の地上高におけるアンテナ上の電圧分布、電流分布、共振周波数、給電点におけるインピーダンス特性、SWR特性などを計算により求めることができる。短縮型アンテナやマルチバンド・アンテナの設計のために、延長コイル、短縮コンデンサ、LCトラップ等を挿入した場合のリアクタンス値を求めることもできる。
無線工学において、電波伝播（電波の伝わり方）をシミュレーションするのに電波伝播シミュレーション・ソフトウェアが用いられる。VHFやUHFのテレビ放送局や中継局のサービスエリアを調べるために、アメリカの研究者 A. G. Longley と P. L. Rice とが1968年にLongley-Rice Modelアルゴリズムを開発・発表した。このアルゴリズムは 20 MHz - 20 GHz の周波数に適用でき、これを基にした電波伝播シミュレーション・ソフトウェアが、日本のいくつかの電気通信コンサルタント会社により開発されている。
シミュレーションするには、ソフトウェアに、大地の導電率と比誘電率、大気の屈折率、送信場所や受信場所の標高、周波数、電波の偏波面、アンテナの利得や地上高、送信機の出力、受信機の感度などの値を与える。また、シミュレーション対象地域のデジタル地形データ（たとえばNASAのFTPサイト からダウンロードできる）を与える。すると、電波の大気による屈折、地形による反射や回折、電波が伝わるうえで受ける減衰等を計算し、電波の届く範囲をシミュレーションする。結果は、数値や、地図上に電波の強さごとにグラフィカルに色分けして示される。
フリーソフトとしてはカナダのアマチュア無線家 Roger Coude（VE2DBE）が1988年に開発した Radio Mobile がある。
軍事分野においては戦闘状況をシミュレートしたモデル研究が行われており、地形、時間、損害率、兵員数、戦闘価値、移動速度、発見率、命中率などの要素から戦闘の推移、両軍の損害などを導き出すことができる。また指揮官制、補給計画立案、戦術研究、海空軍の訓練などでシミュレーションは用いられている。
また、最近の戦争においては情報を伝達するための通信の確保は戦況を左右する重要な要素であるため、部隊展開時に山間部や市街地などにおいても兵員同士が途切れることなく通信できることをシミュレーションするシステム（JCSS：旧称 NetWars）をアメリカ国防情報システム局(DISA)が開発している。
歴史的には軍事学的な研究に由来の一部を持つオペレーションズ・リサーチでは、数理的なモデル化とコンピュータシミュレーションは両輪をなしており、経済など社会活動の分析に現代では広く活用されていて、今ではむしろ軍事は単にその応用分野のたった一つに過ぎない。
シミュレータを使ってフォルトツリー解析を行うこともある。
最適化問題の分野では、物理プロセスのシミュレーションが進化的計算と共に使われ、制御戦略の最適化を行う。
訓練としてのシミュレーション.
シミュレーションは一般市民や兵士の訓練に使われることが多い。これは、実際の装置や兵器を訓練に使用するのがコスト的に高価すぎたり、単に非常に危険であるという理由からである。この場合、安全な仮想環境で意味の有る訓練が行われる。特に、実際なら生命に関わるような失敗をしても許される点は重要である。
訓練におけるシミュレーションは3つに分類される。
フライトシミュレータ.
フライトシミュレータは、地上で操縦士が航空機の操縦訓練に用いる。再現の度合いにより異なるが一定の訓練時間が飛行時間として認められる。実際の航空機よりも低価格ながらエンジンが停止した状態での着陸、離陸直後のトラブルなど、実地では困難な訓練が可能である。
ドライブシミュレータ.
ドライブシミュレータは実際の自動車の特性を仮想環境内で再現する。外的要因や条件を再現し、さまざまな車両運転状況が体感可能である。
船舶シミュレータ.
船舶シミュレータは、船員の訓練に用いる。特に大型の船舶をシミュレートするものが多く、操船訓練を行なう操船シミュレーター、エンジンプラントの運転訓練を行なうエンジントラブルシミュレーター、荷役訓練を行なう荷役シミュレーターなどがある。
プラントシミュレータ.
化学プラントのプラントシミュレータは、物理モデルに基づいて化学プラントの動的な挙動を模擬するものである．さまざまな条件下で挙動を再現し、主にプラントを運転するオペレータの運転操作訓練に用いる．
教育におけるシミュレーション.
教育におけるシミュレーションも訓練の一種と考えられ、特定の主題に沿って行われる。ビデオを鑑賞し、問題の解決策を話し合い、ロールプレイを行うなどの手法がある。ロールプレイング方式で行うものは、ゲームの一種としてゲーミング・シミュレーション（あるいは単にゲーミング）と呼ばれることが多い。企業によるビジネス教育の一環としてもシミュレーションが採用されつつある。リスクのない仮想環境でビジネス戦略の実験をしたり、ケーススタディーの学習における拡張手段として用いられる。
軍事教練におけるシミュレーション.
兵士が行軍や歩兵戦闘などをシミュレーションするもの。やから発展したVBS1・VBS2が米豪等の軍で採用されている。
班単位での射撃訓練が可能な大型シミュレータも登場しており、陸上自衛隊では10名が同時に利用できる「普通科部隊戦闘射撃訓練シミュレーター（GICCS）」を導入している。
危機管理シミュレーション.
　危機管理（crisis management)に際して、予測困難な事象に対して複数主体間でそれぞれの目標を達成しようとするシミュレーションが危機管理シミュレーションである。キューバ危機（1962年）で危機を回避した歴史をもとに、キューバ危機をめぐるゲーミング・シミュレーションがアメリカをはじめ過去に遡及し歴史をなぞる形で実施されてきた。他にも、台湾海峡危機、冷戦期の核戦争回避、北朝鮮の核開発をめぐる6カ国協議、2010年の漁船衝突事件、などが主題となる。
　現実世界は時間が連続し「一難去ってまた一難」ということがありうるが、ゲーミング・シミュレーションには1)必ず「終わり」があり、2)予定調和が埋め込まれ「箱庭」的である。そのためゲーミングの終了を見越して駆け込みで行動する（これ自体は合理的な行為である）プレイヤーが生まれ、勝ち逃げ（例えば「駆け込み核戦争」）が発生する一因となる。むろん現実の世界でも政治的な時間軸には「節目」があり（例えば大統領の任期）、駆け込み的行動がみられる。そのため、シミュレーション上で駆け込みの制御をいかに条件づけるが課題となる。
　ゲーミング上での想定外の行動（事象）をどのように評価するかがゲーミング・シミュレーションでは問われる。現実に多くの専門家が予想を外した朝鮮戦争（1950年）、ソ連崩壊（1991年）、911テロ事件（2001年）、対テロ戦争後のカブール陥落（2021年）、ロシアのウクライナ侵攻（2022年）といった「想定外」の事実に対抗して、仮想世界で同様な大規模な変化をアクターがおこすことがある。想定外ゆえに捨象したり除外するのでは危機管理の意味がない。しかし想定外が多発するのも現実的ではない。箱庭としてのゲーミングではとらえきれないルール・ジェネレート的発想が必要とされる所以である。
　また危機に際しては誤認・誤解、疑心暗鬼、相互不信が高まる中、短い時間での政策決定が後に甚大な惨禍をもたらすことがある。グレアム・アリソンの第2モデル（組織過程モデル）、第3モデル（政治過程モデル）に加えて、認知的アプローチが必要となる。集団思考(groupthink）の可能性も想定せねばならない。完備情報下の合理的行動とは異なる、こうした危機における行動の特性を理解するためにゲーミング・シミュレーションは有用である。
宇宙開発とシミュレーション.
宇宙開発の船外活動のシミュレーションとしては、ひとつはプールを使う方法がある。NASAなどで採用されている。水の浮力によって、宇宙空間の無重力状態に、若干似た状態を作りだすことができ、船外作業の体験・訓練を行うことができる。ロボットアームの動き、作業手順などのシミュレーションは、コンピュータを用いたものも用いられ、実際の操作レバーと、コンピュータ画面内に作りだされた映像で模倣・確認しつつ訓練を行うものである。
医療・救急用シミュレータ.
医療シミュレータは、医療に従事する者への治療法/診断法/概念/意思決定についての教育の目的で、近年開発が盛んになってきている。医療シミュレータによる訓練は、単純な血液採取から腹腔鏡手術まで各種存在する。また、新型医療機器の開発においてもシミュレーションは重要である。医療シミュレータでもコンピュータが重要な役割を担っている。実物大の人形を用いたシミュレータでは、人形への薬物投与などによって適切な反応を示すようにプログラムされている。視覚をコンピュータグラフィックスで擬似する場合、触覚は訓練者の動作に反応するようプログラムされたフィードバック機器で再現する。この場合、現実性を増すために実際の患者のCTやMRIのデータを用いることが多い。より簡便なシミュレーションとして、ウェブブラウザで操作できるものもあるが、触覚は再現されず、キーボードとマウスで操作することになる 。
経済・金融.
最近の経済学的研究によって、実際には（古典経済学とは異なって）人々の個々の行動の動機は実に様々であることが明らかになってきているが、仮に、古典経済学的なモデル、つまり「人は全て自分の利益追求だけを求める」とするような極端な（本当の科学としては、事実とは異なり、かなり問題含みの）モデルを採用した場合でも、社会全体としての動きを知る事は出来ない。単純が複数集まるとそこには、様々な性質が生まれるという複雑系であるためで、これもまた、コンピュータの膨大な計算のシミュレーションによって予想されうるものであるが、実際のところ株価や物価の変動など、経済の動きを予測することは容易ではない。
金融においては、コンピュータシミュレーションを用いてシナリオ立案が行われる。例えば、リスクを考慮した正味現在価値 (NPV) は計算方法は確立しているが、入力値は不明な場合がある。評価対象のプロジェクトの性能を擬似することで、シミュレーションによって様々な場合の NPV が求められる。
デザイン・都市景観.
コンピュータグラフィックス（CG）によって作成されたバーチャルリアリティ映像を、工業デザインや建築デザインの成果物を事前評価するのに用いる。例えば建築物や構造物による景観への影響を予測する景観シミュレーションの場合、実写風景の上で建物のCGと組み合わせたり、建物や背景の全てをCGで構築し、実際に建築した様子に近い景観を観察することが出来る。コンピュータの計算能力が実用に達するまでは、手作業により遠近法にそって書かれたパース画を作成し評価していた。
都市計画のツールとして都市シミュレータを使って、様々なポリシーの決定によって都市がどのように変わるかを把握することができる。大規模な都市シミュレータの例としては、UrbanSim（ワシントン大学で開発）、ILUTE（トロント大学で開発）、Distrimobs（ボローニャ大学で開発）などがある。都市シミュレータはエージェントに基づくシミュレーションが一般的で、土地の利用計画や交通機関などが入力として設定される。
景観シミュレータと都市シミュレータの開発を行う研究分野は、一般的に計画支援システムと呼ばれている。
工学（技術）シミュレーションとプロセスシミュレーション.
シミュレーションは、工学システムや多くのプロセスから構成されるシステムの重要な機能である。例えば電子工学では、遅延線を使って実際の伝送線路における遅延や位相のずれをシミュレートする。また、擬似負荷（ダミーロード）を用いてインピーダンスのシミュレートが行われる。シミュレータは一般にシミュレート対象の一部の操作や機能だけを擬似する。一方、エミュレータは対象の全機能を擬似するのが一般的である。
多くの工学シミュレーションは、数学的モデルを用いて、コンピュータを利用して行われる。しかし、その数学的モデルが信頼できない場合も多い。流体力学のシミュレーションは数学的なシミュレーションと物理的なシミュレーションの両方を必要とすることが多い（数値流体力学も参照）。この場合、物理的モデルは動的相似性（Dynamic Similitude）を要求される。物理的シミュレーションや化学的シミュレーションは、研究目的だけでなく、具体的な実用目的を持つ。例えば、化学工学におけるプロセスシミュレーションによって得られたプロセスのパラメータは、石油精製などの化学工場の運用に即座に活用できる。
離散事象シミュレーション.
生産技術・オペレーション・オペレーションズリサーチの分野でよく使われる離散事象シミュレーションは、様々なシステムのモデル化に使われる。例えば、ビジネスにおいて各個人が30のタスクを実行可能で、数千の製品やサービスがあり、各製品/サービスには数十のタスクを逐次的に行う必要があり、顧客がどの製品/サービスを求めるかは季節によって変動したり、将来的に変化していく。このような状況をシミュレーションすることで経営上の様々な意思決定の助けとなる。