

コンピュータシミュレーションとは、コンピュータ上で数学モデルを実行することであり、モデルは現実世界または物理システムの挙動または結果を表すように設計されています。一部の数学モデルの信頼性は、その結果を予測しようとしている現実世界の結果と比較することで判断できます。コンピュータシミュレーションは、物理学(計算物理学)、天体物理学、気候学、化学、生物学、製造業における多くの自然システム、および経済学、心理学、社会科学、医療、工学における人間システムの数学モデル化に役立つツールになっています。システムのシミュレーションは、システムのモデルの実行として表されます。これは、新しいテクノロジーを探索して新しい洞察を得たり、分析ソリューションには複雑すぎるシステムのパフォーマンスを推定したりするために使用できます。[1]
コンピュータシミュレーションは、小さなデバイスでほぼ瞬時に実行される小さなプログラムから、ネットワークベースのコンピュータグループで数時間または数日間実行される大規模なプログラムまで、コンピュータプログラムを実行することで実現されます。コンピュータシミュレーションでシミュレートされるイベントの規模は、従来の紙と鉛筆による数学モデルを使用して可能な範囲(想像できる範囲)をはるかに超えています。1997年には、ある勢力が別の勢力に侵攻する砂漠での戦闘シミュレーションで、国防総省の高性能コンピュータ近代化プログラムの複数のスーパーコンピュータを使用して、クウェート周辺のシミュレートされた地形で66,239台の戦車、トラック、その他の車両のモデル化が行われました。 [2] その他の例としては、10億原子の材料変形モデル、[3] 2005年の、すべての生物の複雑なタンパク質生成器官であるリボソームの264万原子モデル、[4] 2012年のマイコプラズマ・ジェニタリウム のライフサイクルの完全なシミュレーションなどがあります。 2005年5月に開始されたスイス連邦工科大学ローザンヌ校( EPFL )のブルーブレインプロジェクトでは、分子レベルに至るまで人間の脳全体の初のコンピューターシミュレーションを作成することを目指している。[5]
シミュレーションの計算コストのため、不確実性の定量化などの推論にはコンピュータ実験が使用されます。[6]
シミュレーションとモデル
モデルは、システムの動作を捉えるために使用される方程式で構成されています。対照的に、コンピュータ シミュレーションは、多くの場合近似的な方法でそれらの方程式を解くアルゴリズムを実行するプログラムを実際に実行することです。したがって、シミュレーションはモデルを実行するプロセスです。したがって、「シミュレーションを構築する」のではなく、「モデル (またはシミュレータ) を構築」してから、「モデルを実行する」か、同等に「シミュレーションを実行する」ことになります。
歴史
コンピュータシミュレーションは、第二次世界大戦中のマンハッタン計画で核爆発の過程をモデル化するために初めて大規模に導入されて以来、コンピュータの急速な成長とともに発展してきた。これはモンテカルロアルゴリズムを使用した12個の剛体球のシミュレーションであった。コンピュータシミュレーションは、単純な閉形式の解析解が不可能なモデリングシステムの補助または代替としてよく使用される。コンピュータシミュレーションには多くの種類があるが、それらの共通の特徴は、モデルのすべての可能な状態を完全に列挙することが禁止または不可能な場合に、モデルの代表的なシナリオのサンプルを生成しようとすることである。[7]
データ準備
シミュレーションやモデルの外部データ要件は多岐にわたります。入力が数個の数値のみの場合もありますが (たとえば、電線上の交流電気の波形のシミュレーション)、テラバイト単位の情報が必要な場合もあります (気象モデルや気候モデルなど)。
入力ソースも多岐にわたります。
- モデルに接続されたセンサーやその他の物理デバイス。
- 何らかの方法でシミュレーションの進行を制御するために使用される制御サーフェス。
- 手動で入力された現在のデータまたは履歴データ。
- 他のプロセスからの副産物として抽出された値。
- 他のシミュレーション、モデル、またはプロセスによって目的のために出力される値。
最後に、データが利用可能になる時間は異なります。
- 「不変」データは、値が本当に不変であるため (たとえば、π の値)、または設計者が値がすべての対象ケースで不変であると見なしているため、モデル コードに組み込まれることがよくあります。
- シミュレーションの起動時に、たとえば 1 つ以上のファイルを読み取ったり、プリプロセッサからデータを読み取ったりして、データをシミュレーションに入力できます。
- データは、たとえばセンサー ネットワークによってシミュレーション実行中に提供される場合があります。
この多様性と、さまざまなシミュレーション システムには多くの共通要素があるため、多数の特殊なシミュレーション言語が存在します。最もよく知られているのはSimulaでしょう。現在では、他にも多くの言語が存在します。
外部ソースからデータを受け取るシステムは、受け取るデータが何であるかを注意深く把握する必要があります。コンピューターがテキスト ファイルやバイナリ ファイルから値を読み取るのは簡単ですが、値の精度(測定解像度や精度と比較して) を把握するのははるかに困難です。多くの場合、それらは「エラー バー」、つまり真の値 (が期待される) が含まれる値の範囲からの最小および最大偏差として表現されます。デジタル コンピューターの数学は完璧ではないため、丸め誤差や切り捨て誤差によってこの誤差が増大します。そのため、「エラー分析」[8]を実行して、シミュレーションによって出力される値が依然として有効な精度であることを確認することが有用です。
種類
コンピュータ シミュレーションに使用されるモデルは、次のようないくつかの独立した属性のペアに従って分類できます。
- 確率的または決定論的(決定論的の特殊なケースとして、カオス的) - 確率的シミュレーションと決定論的シミュレーションの例については、以下の外部リンクを参照してください。
- 定常状態または動的
- 連続または離散(離散、離散イベント、またはDEモデルの重要な特別なケースとして)
- 動的システム シミュレーション(例: 電気システム、油圧システム、マルチボディ メカニカル システム (主に DAE で記述))、またはフィールド問題の動的シミュレーション (例: FEM シミュレーションの CFD (PDE で記述))。
- ローカルまたは分散。
モデルを分類する別の方法は、基礎となるデータ構造を見ることです。時間ステップ シミュレーションの場合、主に 2 つのクラスがあります。
- データを規則的なグリッドに保存し、次の隣接データへのアクセスのみを必要とするシミュレーションは、ステンシル コードと呼ばれます。多くのCFDアプリケーションはこのカテゴリに属します。
- 基礎となるグラフが通常のグリッドでない場合、モデルはメッシュフリー メソッドクラスに属する可能性があります。
定常状態シミュレーションでは、方程式によってモデル化されたシステムの要素間の関係が定義され、システムが平衡状態にある状態を見つけようとします。このようなモデルは、動的シミュレーションを試みる前に、より単純なモデリング ケースとして物理システムをシミュレートする際によく使用されます。
- 動的シミュレーションは、(通常は変化する)入力信号に応じてシステム内の変化を捉えようとします。
- 確率モデルは、乱数ジェネレータを使用して偶然またはランダムなイベントをモデル化します。
- 離散イベント シミュレーション(DES) は、イベントを時間的に管理します。ほとんどのコンピューター、ロジック テスト、およびフォールト ツリー シミュレーションはこのタイプです。このタイプのシミュレーションでは、シミュレーターは、発生するはずのシミュレーション時間でソートされたイベントのキューを維持します。シミュレーターはキューを読み取り、各イベントが処理されるたびに新しいイベントをトリガーします。シミュレーションをリアルタイムで実行することは重要ではありません。多くの場合、シミュレーションによって生成されたデータにアクセスし、設計またはイベントのシーケンスのロジックの欠陥を発見できることの方が重要です。
- 連続動的シミュレーションは、微分代数方程式または微分方程式(偏微分方程式または常微分方程式)の数値解法を実行します。シミュレーション プログラムは定期的にすべての方程式を解き、数値を使用してシミュレーションの状態と出力を変更します。アプリケーションには、フライト シミュレータ、建設および管理シミュレーション ゲーム、化学プロセス モデリング、電気回路のシミュレーションなどがあります。当初、これらの種類のシミュレーションは実際にはアナログ コンピューターで実装されていました。アナログ コンピューターでは、微分方程式をオペアンプなどのさまざまな電気部品で直接表現できました。しかし、1980 年代後半までに、ほとんどの「アナログ」シミュレーションは、アナログ コンピューターの動作をエミュレートする従来のデジタル コンピューターで実行されるようになりました。
- 離散シミュレーションの特殊なタイプは、基礎方程式を持つモデルに依存せず、それにもかかわらず形式的に表現できるもので、エージェント ベース シミュレーションです。エージェント ベース シミュレーションでは、モデル内の個々のエンティティ (分子、細胞、木、消費者など) は、密度や濃度ではなく直接表現され、内部状態と、エージェントの状態が 1 つのタイム ステップから次のタイム ステップに更新される方法を決定する一連の動作またはルールを持ちます。
- 分散モデルは、インターネットを介して相互接続されたコンピュータのネットワーク上で実行されます。このように複数のホスト コンピュータに分散されたシミュレーションは、多くの場合、「分散シミュレーション」と呼ばれます。分散シミュレーションには、集約レベル シミュレーション プロトコル(ALSP)、分散インタラクティブ シミュレーション(DIS)、高レベル アーキテクチャ (シミュレーション) (HLA)、テストおよびトレーニング対応アーキテクチャ(TENA) など、いくつかの標準があります。
視覚化
以前は、コンピュータ シミュレーションからの出力データは、シミュレーションパラメータの多数の変更によってデータがどのように影響を受けるかを示す表またはマトリックスで提示されることがありました。マトリックス形式の使用は、数学モデルにおけるマトリックス概念の従来の使用に関連していました。しかし、心理学者などは、人間はグラフや、コンピュータ生成画像(CGI) アニメーションで表示されるデータから生成された動画や映画を見ることで、傾向をすばやく認識できることに注目しました。観察者は必ずしも数字を読み上げたり数式を引用したりすることはできませんでしたが、動く天気図を観察することで、雨雲座標の表に目を通すよりもはるかに速くイベントを予測 (および「雨が自分の方向に向かっていることが分かる」) できる可能性があります。数字と数式の世界を超越したこのような強力なグラフィック表示は、数値データの表示から大きく逸脱したかのように、座標グリッドが欠落したり、タイムスタンプが省略された出力につながることもありました。今日の天気予報モデルは、移動する雨雲や雪雲のビューと、イベントの数値座標と数値タイムスタンプを使用する地図とのバランスを取る傾向があります。
同様に、 CAT スキャンの CGI コンピューター シミュレーションでは、長期間の治療中に腫瘍がどのように縮小または変化するかをシミュレートし、腫瘍が変化するにつれて、目に見える人間の頭部の回転ビューとして時間の経過を提示することができます。
CGI コンピュータ シミュレーションの他のアプリケーションは、シミュレーション実行中に変化が発生したときに、大量のデータを動的な状態でグラフィカルに表示するために 開発されています[現在? ] 。
科学では

基礎となる数学的記述から導き出される科学におけるコンピュータ シミュレーションの種類の一般的な例:
- 解析的に解くことのできない微分方程式の数値シミュレーション、物理宇宙論における現象、流体力学(気候モデル、道路騒音モデル、道路空気拡散モデルなど)、連続体力学、化学反応速度論などの連続システムを伴う理論がこのカテゴリに分類されます。
- 確率的シミュレーション。典型的には、イベントが確率的に発生し、微分方程式では直接記述できない離散システムに使用される(これは上記の意味での離散シミュレーションである)。このカテゴリの現象には、遺伝的浮動、生化学[9]、または少数の分子による遺伝子制御ネットワークが含まれる。(モンテカルロ法も参照)。
- 熱弾性および熱力学的特性をモデル化するために、複数のスケールで加えられた力に対するナノ材料の応答の多粒子シミュレーション。このようなシミュレーションに使用される手法には、分子動力学、分子力学、モンテカルロ法、およびマルチスケールグリーン関数があります。
コンピュータ シミュレーションの具体的な例は次のとおりです。
- 多数の入力プロファイルの集約に基づく統計シミュレーション。たとえば、受水域の平衡温度の予測などです。これにより、特定の地域についてさまざまな気象データを入力できます。この技術は、熱汚染の予測のために開発されました。
- エージェント ベース シミュレーションは生態学で効果的に使用されており、しばしば「個体ベース モデリング」と呼ばれ、サケやマスの個体群動態など、エージェントの個々の変動を無視できない状況で使用されます(ほとんどの純粋に数学的なモデルでは、すべてのマスが同じように動作すると想定されています)。
- 時間ステップの動的モデル。水文学には、河川水質予測のために米国環境保護庁が開発したSWMMモデルやDSSAM モデルなど、このような水文学輸送モデルがいくつかあります。
- コンピュータシミュレーションは、 ACT-Rなど、人間の認知とパフォーマンスの理論を正式にモデル化するためにも使用されてきました。
- 分子モデリングを用いた創薬のためのコンピュータシミュレーション[10]
- 哺乳類細胞におけるウイルス感染をモデル化するコンピュータシミュレーション。[9]
- 有機分子の粉砕中の機械化学による結合の選択的感受性を研究するためのコンピュータシミュレーション。[11]
- 数値流体力学シミュレーションは、流れる空気、水、その他の流体の挙動をシミュレートするために使用されます。1 次元、2 次元、3 次元のモデルが使用されます。1 次元モデルは、パイプ内のウォーター ハンマーの影響をシミュレートします。2 次元モデルは、飛行機の翼の断面にかかる抗力をシミュレートするために使用されます。3 次元シミュレーションは、大規模な建物の暖房と冷房の要件を予測します。
- 統計熱力学的分子理論を理解することは、分子溶液を評価する上で不可欠です。ポテンシャル分布定理 (PDT) の開発により、この複雑な主題を分子理論の現実的な表現に簡略化できます。
科学で使用されている注目すべき、そして時には物議を醸すコンピュータ シミュレーションには、成長の限界で使用されているDonella MeadowsのWorld3、James Lovelock のDaisyworld、Thomas Ray のTierraなどがあります。
社会科学では、コンピュータシミュレーションは、データパーコレーション手法[12]によって促進される5つの分析角度の不可欠な要素であり、定性的および定量的方法、文献レビュー(学術的なものを含む)、専門家へのインタビューも含まれ、データの三角測量の延長を形成します。もちろん、他の科学的方法と同様に、複製は計算モデリングの重要な部分です[13]
実際の状況では
コンピュータ シミュレーションは、次のようなさまざまな実用的な状況で使用されます。
- 大気拡散モデルを用いた大気汚染物質拡散の分析
- 動物の権利を尊重し、生きた動物を使った実験に代わる人道的な方法として。
- 航空機や物流システムなどの複雑なシステムの設計。
- 道路騒音の軽減に効果のある防音壁の設計
- アプリケーションパフォーマンスのモデリング[14]
- パイロットを訓練するためのフライトシミュレーター
- 天気予報
- リスクの予測
- 電気回路のシミュレーション
- 電力システムシミュレーション
- 他のコンピュータのシミュレーションをエミュレーションといいます。
- 金融市場における価格の予測(例えばAdaptive Modeler)
- ストレスやその他の条件下での構造物(建物や工業部品など)の挙動
- 化学処理プラントなどの産業プロセスの設計
- 戦略管理と組織研究
- 石油工学における地下貯留層をモデル化する貯留層シミュレーション
- プロセスエンジニアリングシミュレーションツール。
- ロボットの設計とロボット制御アルゴリズムのためのロボットシミュレータ
- 都市開発の動的パターンと都市の土地利用および交通政策への対応をシミュレートする都市シミュレーション モデル。
- 都市の単一の交差点から国道網、輸送システムの計画、設計、運用に至るまで、道路網の一部を計画または再設計する交通工学。輸送におけるシミュレーションに関する詳細な記事を参照してください。
- 新しい車両モデルの安全機構をテストするために自動車衝突をモデル化します。
- 専用ソフトウェアフレームワーク( BioMA、OMS3、APSIMなど)を介した農業における作物土壌システム
コンピュータ シミュレーションに対する信頼性と信用は、シミュレーションモデルの妥当性によって決まるため、検証と妥当性確認はコンピュータ シミュレーションの開発において極めて重要です。コンピュータ シミュレーションのもう 1 つの重要な側面は、結果の再現性です。つまり、シミュレーション モデルは実行ごとに異なる答えを出すべきではありません。これは明らかなように思われるかもしれませんが、確率的シミュレーションでは、乱数は実際には半乱数であるべきであるため、これは特別な注意点です。再現性の例外は、フライト シミュレーションやコンピュータ ゲームなどの人間が関与するシミュレーションです。ここでは、人間がシミュレーションの一部であるため、正確に再現することが困難、あるいは不可能な方法で結果に影響を与えます。
自動車メーカーは、新しい設計の安全機能をテストするためにコンピューターシミュレーションを利用しています。物理シミュレーション環境で車のコピーを作成することで、独自のプロトタイプを構築してテストするのに必要な数十万ドルを節約できます。エンジニアは、シミュレーションを数ミリ秒ずつ実行して、プロトタイプの各セクションにかかる正確なストレスを判断できます。[15]
コンピュータ グラフィックスは、コンピュータ シミュレーションの結果を表示するために使用できます。アニメーションは、トレーニング シミュレーションなどで、シミュレーションをリアルタイムで体験するために使用できます。場合によっては、アニメーションはリアルタイムよりも高速なモードや、リアルタイムよりも低速なモードでも役立ちます。たとえば、リアルタイムよりも高速なアニメーションは、建物から避難する人間のシミュレーションで行列の形成を視覚化するのに役立ちます。さらに、シミュレーション結果は、さまざまな科学的視覚化方法を使用して静止画像に集約されることがよくあります。
デバッグでは、テスト中のプログラム実行をシミュレートすると (ネイティブ実行ではなく)、ハードウェア自体が検出できるよりもはるかに多くのエラーを検出できると同時に、命令トレース、メモリ変更、命令数などの有用なデバッグ情報をログに記録できます。この手法では、バッファオーバーフローや同様の「検出が難しい」エラーも検出できるほか、パフォーマンス情報やチューニングデータも生成できます。
落とし穴
コンピュータシミュレーションでは無視されることもありますが、感度分析を実行して結果の精度が適切に理解されるようにすることは非常に重要です。たとえば、油田探査プログラムの成功を決定する要因の確率的リスク分析では、モンテカルロ法を使用してさまざまな統計分布からのサンプルを組み合わせます。たとえば、主要なパラメータの 1 つ (石油含有層の純比率など) が 1 つの重要な数字にしか知られていない場合、シミュレーションの結果は 4 つの重要な数字があるように (誤解を招くように) 提示される可能性がありますが、1 つの重要な数字よりも正確ではない可能性があります。
参照
参考文献
- ^ ストロガッツ、スティーブン (2007)。「洞察の終焉」。ブロックマン、ジョン (編)。あなたの危険な考えは何ですか?。ハーパーコリンズ。ISBN 9780061214950。
- ^ 「研究者が史上最大の軍事シミュレーションを実施」ジェット推進研究所カリフォルニア工科大学1997年12月4日。2008年1月22日時点のオリジナルよりアーカイブ。
- ^ 「マクロ現象の分子シミュレーション」。IBM Research - Almaden。2013年5月22日時点のオリジナルよりアーカイブ。
- ^ Ambrosiano, Nancy (2005 年 10 月 19 日)。「最大の計算生物学シミュレーションが生命の最も重要なナノマシンを模倣」。ロスアラモス、ニューメキシコ州:ロスアラモス国立研究所。2007 年 7 月 4 日時点のオリジナルよりアーカイブ。
- ^ Graham-Rowe, Duncan (2005年6月6日). 「シミュレートされた脳を構築するミッションが始まる」. New Scientist . 2015年2月9日時点のオリジナルよりアーカイブ。
- ^ Santner, Thomas J; Williams, Brian J; Notz, William I (2003).コンピュータ実験の設計と分析. Springer Verlag.
- ^ Bratley, Paul; Fox, Bennet L.; Schrage, Linus E. (2011-06-28). シミュレーションガイド。Springer Science & Business Media。ISBN 9781441987242。
- ^ ジョン・ロバート・テイラー (1999)。誤差分析入門: 物理的測定における不確実性の研究。大学科学図書。pp. 128–129。ISBN 978-0-935702-75-02015年3月16日時点のオリジナルよりアーカイブ。
- ^ ab Gupta, Ankur; Rawlings, James B. (2014年4月). 「確率的化学反応速度論モデルにおけるパラメータ推定法の比較: システム生物学における例」. AIChE Journal . 60 (4): 1253–1268. Bibcode :2014AIChE..60.1253G. doi : 10.1002/aic.14409. ISSN 0001-1541. PMC 4946376. PMID 27429455.
- ^ アタナソフ、AG;ウォルテンバーガー、B;フェルシー・ウェンツィヒ、EM;リンダー、T;ヴァロッシュ、C;ウーリン、P;テムル、V;ワン、L;シュワイガー、S;ハイス、EH;ローリンジャー、JM。シュスター、D;ブルース、JM。ボチコフ、V;ミホヴィロビッチ医学博士。コップ、B;バウアー、R;ディルシュ、VM;ストゥップナー、H (2015)。 「薬理活性のある植物由来天然物の発見と再供給:総説」。バイオテクノロジーAdv . 33 (8): 1582–614。土井:10.1016/j.biotechadv.2015.08.001。PMC 4748402。PMID 26281720。
- ^ 水上 浩一; 斉藤 文夫; ミシェル バロン。コンピュータシミュレーションによる医薬品の粉砕に関する研究 Archived 2011-07-21 at the Wayback Machine
- ^ メスリー、オリヴィエ(2015)。心理学研究におけるモデルの作成。米国:シュプリンガー心理学:126ページ。ISBN 978-3-319-15752-8
- ^ Wilensky, Uri; Rand, William (2007). 「モデルのマッチング: エージェントベースモデルの複製」. Journal of Artificial Societies and Social Simulation . 10 (4): 2.
- ^ Wescott, Bob (2013). 『Every Computer Performance Book』、第 7 章: コンピュータ パフォーマンスのモデリング。CreateSpace。ISBN 978-1482657753。
- ^ Baase, Sara. A Gift of Fire: Social, Legal, and Ethical Issues for Computing and the Internet. 3. Upper Saddle River: Prentice Hall, 2007. 363–364 ページ。ISBN 0-13-600848-8。
さらに読む
- ヤング、ジョセフ、フィンドレー、マイケル。2014年。「紛争とテロリズムの研究のための計算モデル化」。ジョセフ・ソーターズ、パトリシア・シールズ、セバスチャン・リーチェンス編『軍事研究における研究方法のハンドブック』。pp. 249-260。ニューヨーク:ラウトレッジ、
- R. Frigg と S. Hartmann、「科学におけるモデル」。スタンフォード哲学百科事典の項目。
- E. ウィンズバーグ「科学におけるシミュレーション」。スタンフォード哲学百科事典の項目。
- S. ハートマン、「プロセスとしての世界:自然科学と社会科学におけるシミュレーション」、R. ヘグゼルマン他編『科学哲学の観点から見た社会科学におけるモデリングとシミュレーション』、理論と意思決定ライブラリ。ドルドレヒト:クルーワー1996、77-100 ページ。
- E. ウィンズバーグ『コンピュータシミュレーション時代の科学』シカゴ:シカゴ大学出版局、2010年。
- P. ハンフリーズ、「Extending Ourselves: Computational Science, Empiricism, and Scientific Method」オックスフォード:オックスフォード大学出版局、2004年。
- James J. Nutaro (2011)。シミュレーション用ソフトウェアの構築: 理論とアルゴリズム、C++ でのアプリケーション。John Wiley & Sons。ISBN 978-1-118-09945-2。
- デサ、WLHM、カマルディン、S.、およびナワウィ、MKM (2012)。シミュレーションを使用した航空機複合部品のモデリング。先端材料研究、591–593、557–560。
外部リンク
- コンピュータシミュレーション口述歴史アーカイブガイド 2003-2018
