気象研究予測モデルを用いた台風マワールの48時間コンピュータシミュレーション
コンピュータモデル構築のプロセス、および実験、シミュレーション、理論の相互作用コンピュータシミュレーションとは、現実世界または物理システムの挙動や結果を表すように設計された数学モデルをコンピュータ上で実行することです。一部の数学モデルの信頼性は、その結果を予測しようとしている現実世界の成果と比較することによって判断できます。コンピュータシミュレーションは、物理学(計算物理学)、天体物理学、気候学、化学、生物学、製造業における多くの自然システム、および経済学、心理学、社会科学、医療、工学における人間システムの数学的モデリングのための有用なツールとなっています。システムのシミュレーションは、システムのモデルを実行することとして表されます。これは、新しい技術を探求して新たな洞察を得たり、解析的解法では複雑すぎるシステムの性能を推定したりするために使用できます。[ 1 ]
コンピュータシミュレーションは、小型デバイスでほぼ瞬時に実行される小規模なプログラム、またはネットワークベースのコンピュータグループで数時間または数日かけて実行される大規模なプログラムのいずれかを実行することによって実現されます。コンピュータシミュレーションによってシミュレートされるイベントの規模は、従来の紙と鉛筆による数学的モデリングを使用して可能であったもの(あるいは想像できたもの)をはるかに超えています。1997年、ある勢力が別の勢力に侵攻する砂漠戦のシミュレーションでは、国防総省高性能コンピュータ近代化プログラムの複数のスーパーコンピュータを使用して、クウェート周辺の模擬地形上で66,239台の戦車、トラック、その他の車両をモデル化しました。[ 2 ] 他の例としては、10億個の原子からなる材料変形モデル、[ 3 ] 2005年に作成されたすべての生物の複雑なタンパク質生成オルガネラであるリボソームの264万個の原子からなるモデル、[ 4 ] 2012年に作成されたマイコプラズマ・ジェニタリウム のライフサイクルの完全なシミュレーションなどがあります。また、スイスのEPFLで2005年5月に開始されたBlue Brainプロジェクトは、分子レベルまで含めた人間の脳全体の初のコンピュータシミュレーションを作成することを目的としています。[ 5 ]
シミュレーションの計算コストが高いため、不確実性定量化などの推論を実行するためにコンピュータ実験が使用される。[ 6 ]
シミュレーションとモデルの比較
モデルとは、システムの挙動を捉えるために使用される方程式の集合です。一方、コンピュータシミュレーションとは、それらの方程式を解くアルゴリズムを実行するプログラムを実際に実行することであり、多くの場合、近似的な方法で解かれます。したがって、シミュレーションとはモデルを実行するプロセスです。そのため、「シミュレーションを構築する」のではなく、「モデル(またはシミュレータ)を構築する」と言い、その後「モデルを実行する」か、あるいは同等に「シミュレーションを実行する」と言うことになります。
データ準備
シミュレーションやモデルに必要な外部データ量は多岐にわたる。入力が数個の数値だけで済むもの(例えば、電線上の交流電流の波形シミュレーション)もあれば、テラバイト規模の情報が必要となるもの(例えば、気象モデルや気候モデル)もある。
入力ソースも多岐にわたる。
- モデルに接続されたセンサーやその他の物理デバイス。
- シミュレーションの進行を何らかの方法で制御するために使用される制御面。
- 現在または過去のデータを手入力する。
- 他のプロセスから副産物として抽出された値。
- 他のシミュレーション、モデル、またはプロセスによって、その目的のために出力される値。
最後に、データが入手可能になる時期は様々です。
- 「不変」データは、その値が真に不変である場合(例えば、πの値)や、設計者がその値を対象となるすべてのケースで不変であると考える場合など、多くの場合モデルコードに組み込まれています。
- シミュレーションの起動時に、例えば1つ以上のファイルを読み込むか、プリプロセッサからデータを読み込むことによって、シミュレーションにデータを入力できます。
- データは、例えばセンサーネットワークによって、シミュレーション実行中に提供される。
こうした多様性、そして多様なシミュレーションシステムに共通する要素が多いことから、数多くの専門的なシミュレーション言語が存在する。最もよく知られているのはSimulaだろう。現在では他にも多くの言語が存在する。
外部ソースからデータを受け入れるシステムは、受信するデータの内容について非常に注意を払う必要があります。コンピュータがテキストファイルやバイナリファイルから値を読み込むのは簡単ですが、値の精度(測定分解能や精度と比較して)を知ることははるかに困難です。多くの場合、値は「誤差範囲」として表され、真の値が存在すると予想される値の範囲からの最小偏差と最大偏差を示します。デジタルコンピュータの数学は完璧ではないため、丸め誤差や切り捨て誤差によってこの誤差が増幅されます。そのため、シミュレーションによって出力される値が依然として有用な精度であることを確認するために、「誤差解析」[ 8 ]を実行することが有用です。
種類
コンピュータシミュレーションに使用されるモデルは、以下のようないくつかの独立した属性の組み合わせに基づいて分類できます。
- 確率的シミュレーションと決定論的シミュレーション(決定論的シミュレーションの特殊なケースとしてカオス的シミュレーション) – 確率的シミュレーションと決定論的シミュレーションの例については、以下の外部リンクを参照してください。
- 定常状態または動的
- 連続または離散(そして離散の重要な特殊ケースとして、離散イベントまたはDEモデル)
- 動的システムシミュレーション、例えば電気システム、油圧システム、多体機械システム(主にDAEで記述)や、現場問題の動的シミュレーション、例えばCFDやFEMシミュレーション(PDEで記述)など。
- ローカルまたは分散型。
モデルを分類するもう一つの方法は、基となるデータ構造に着目することです。時間ステップシミュレーションの場合、主に2つのクラスがあります。
- データを規則的なグリッドに格納し、近傍ノードへのアクセスのみを必要とするシミュレーションは、ステンシルコードと呼ばれます。多くのCFDアプリケーションはこのカテゴリに属します。
- 基となるグラフが規則的なグリッドでない場合、そのモデルはメッシュフリー法クラスに属する可能性があります。
定常状態シミュレーションでは、方程式によってモデル化されたシステムの要素間の関係が定義され、システムが平衡状態にある状態を見つけようとします。このようなモデルは、動的シミュレーションを行う前のより単純なモデル化ケースとして、物理システムのシミュレーションによく用いられます。
- 動的シミュレーションは、(通常は変化する)入力信号に対するシステムの応答としての変化を捉えようとするものである。
- 確率モデルは、乱数発生器を用いて偶然やランダムな事象をモデル化する。
- 離散イベントシミュレーション(DES)は、時間軸に沿ってイベントを管理します。コンピュータシミュレーション、ロジックテストシミュレーション、フォールトツリーシミュレーションのほとんどはこのタイプです。このタイプのシミュレーションでは、シミュレータは、シミュレーションで発生するべき時間順にソートされたイベントのキューを保持します。シミュレータはキューを読み取り、各イベントが処理されるたびに新しいイベントをトリガーします。シミュレーションをリアルタイムで実行することは重要ではありません。多くの場合、シミュレーションによって生成されたデータにアクセスし、設計やイベントシーケンスにおける論理的な欠陥を発見できることの方が重要です。
- 連続動的シミュレーションは、微分代数方程式または微分方程式(偏微分または常微分)の数値解法を実行します。シミュレーションプログラムは、定期的にすべての方程式を解き、その数値を使用してシミュレーションの状態と出力を変更します。アプリケーションには、フライトシミュレータ、建設および管理シミュレーションゲーム、化学プロセスモデリング、電気回路のシミュレーションなどがあります。元々、これらの種類のシミュレーションは、微分方程式をオペアンプなどのさまざまな電気部品で直接表現できるアナログコンピュータ上で実際に実装されていました。しかし、1980年代後半には、ほとんどの「アナログ」シミュレーションは、アナログコンピュータの動作をエミュレートする従来のデジタルコンピュータ上で実行されるようになりました。
- 基礎となる方程式を持つモデルに依存しないが、形式的に表現できる特殊なタイプの離散シミュレーションとして、エージェントベースシミュレーションがある。エージェントベースシミュレーションでは、モデル内の個々のエンティティ(分子、細胞、樹木、消費者など)は、密度や濃度ではなく直接的に表現され、内部状態と、エージェントの状態がタイムステップごとにどのように更新されるかを決定する一連の動作またはルールを持つ。
- 分散モデルは、インターネットなどを介して相互接続されたコンピュータのネットワーク上で実行されます。このように複数のホストコンピュータに分散されたシミュレーションは、「分散シミュレーション」と呼ばれることがよくあります。分散シミュレーションには、集約レベルシミュレーションプロトコル(ALSP)、分散対話型シミュレーション(DIS)、高レベルアーキテクチャ(シミュレーション)(HLA) 、テストおよびトレーニング支援アーキテクチャ(TENA)など、いくつかの標準規格があります。
視覚化
かつて、コンピュータシミュレーションの出力データは、シミュレーションパラメータの様々な変更がデータにどのような影響を与えるかを示す表やマトリックス形式で表示されることがありました。マトリックス形式の使用は、数学モデルにおけるマトリックス概念の伝統的な使用法に関連していました。しかし、心理学者らは、人間はグラフや、コンピュータグラフィックス(CGI)アニメーションで表示されるようなデータから生成された動画や映像を見ることで、傾向を素早く把握できることを指摘しました。観察者は必ずしも数字を読み上げたり、数式を引用したりすることはできませんでしたが、動く天気図を見ることで、雨雲の座標表をスキャンするよりもはるかに速く事象を予測し(「雨が近づいていることに気づく」)ことができました。このような、数字や数式の世界を超越した視覚的な表示は、数値データ表示からかけ離れすぎているかのように、座標グリッドが欠落していたり、タイムスタンプが省略されていたりする出力につながることもありました。今日では、天気予報モデルは、動く雨雲や雪雲の視覚情報と、事象の数値座標と数値タイムスタンプを用いた地図とのバランスを取る傾向があります。
同様に、 CTスキャンのCGIコンピュータシミュレーションでは、長期間の治療中に腫瘍がどのように縮小または変化するかをシミュレートすることができ、腫瘍の変化に伴い、目に見える人間の頭部が回転する様子として時間の経過を表現することができる。
CGIコンピュータシミュレーションの他の応用例としては、シミュレーション実行中に発生する変化に応じて、大量のデータを動的なグラフィックで表示するためのものが開発されている。
科学において
浸透過程のコンピュータシミュレーション科学におけるコンピュータシミュレーションの一般的な例(基礎となる数学的記述から導き出されるもの):
コンピュータシミュレーションの具体的な例としては、以下のようなものがある。
- 多数の入力プロファイルを集約した統計シミュレーションに基づく手法で、例えば受水域の平衡温度予測などに用いられ、特定の地域におけるあらゆる気象データを入力として利用できる。この技術は、熱汚染予測のために開発された。
- エージェントベースシミュレーションは生態学において効果的に使用されており、しばしば「個体ベースモデリング」と呼ばれ、サケやマスなどの個体群動態のように、エージェントの個体差を無視できない状況で使用されています(ほとんどの純粋な数学モデルでは、すべてのマスが同じように行動すると仮定されています)。
- 時間ステップ動的モデル。水文学には、米国環境保護庁が河川水質予測のために開発したSWMMモデルやDSSAMモデルなど、このような水文輸送モデルがいくつか存在する。
- コンピュータシミュレーションは、ACT-Rなどの人間の認知とパフォーマンスの理論を正式にモデル化するためにも使用されてきました。
- 創薬のための分子モデリングを用いたコンピュータシミュレーション。[ 10 ]
- 哺乳類細胞におけるウイルス感染をモデル化するためのコンピュータシミュレーション。[ 9 ]
- 有機分子の粉砕中のメカノケミストリーによる結合の選択的感受性を研究するためのコンピュータシミュレーション。[ 11 ]
- 計算流体力学シミュレーションは、空気、水、その他の流体の流れの挙動をシミュレートするために使用されます。1次元、2次元、3次元のモデルが使用されます。1次元モデルは、パイプ内のウォーターハンマー現象をシミュレートするために使用できます。2次元モデルは、航空機の翼の断面にかかる抗力をシミュレートするために使用できます。3次元シミュレーションは、大型建物の暖房および冷房の必要量を推定するために使用できます。
- 統計熱力学分子理論の理解は、分子溶液を理解する上で不可欠です。ポテンシャル分布定理(PDT)の開発により、この複雑なテーマを、分子理論の分かりやすい説明へと簡略化することが可能になりました。
科学で使用されている注目すべき、そして時には物議を醸すコンピュータシミュレーションには、ドネラ・メドウズの『成長の限界』で使用されたWorld3、ジェームズ・ラブロックのDaisyworld、トーマス・レイのTierraなどがある。
社会科学では、コンピュータシミュレーションは、データパーコレーション手法によって促進される分析の 5 つの角度の不可欠な要素であり、[ 12 ]定性的および定量的方法、文献のレビュー (学術的なものを含む)、専門家へのインタビューも含まれ、データ三角測量の拡張を形成します。もちろん、他の科学的方法と同様に、再現は計算モデリングの重要な部分です[ 13 ] 。
実際の状況では
コンピュータシミュレーションは、以下のような幅広い実用的な場面で利用されています。
コンピュータシミュレーションの信頼性と、人々がそれに抱く信頼は、シミュレーションモデルの妥当性に依存するため、検証と妥当性確認はコンピュータシミュレーションの開発において極めて重要です。コンピュータシミュレーションのもう1つの重要な側面は、結果の再現性です。つまり、シミュレーションモデルは実行ごとに異なる結果を出力してはなりません。これは当然のことのように思えるかもしれませんが、確率的シミュレーションでは特に注意すべき点です。確率的シミュレーションでは、乱数は実際には半乱数であるべきです。再現性の例外は、フライトシミュレーションやコンピュータゲームなどの人間参加型シミュレーションです。これらのシミュレーションでは、人間がシミュレーションの一部となり、結果に影響を与えるため、完全に再現することは困難、あるいは不可能です。
自動車メーカーは、新しい設計の安全機能をテストするためにコンピュータシミュレーションを利用しています。物理シミュレーション環境で車のコピーを作成することで、独自のプロトタイプを作成してテストするのに必要となる数十万ドルを節約できます。エンジニアは、シミュレーションをミリ秒単位で進めて、プロトタイプの各セクションにかかる正確な応力を特定できます。[ 15 ]
コンピュータグラフィックスは、コンピュータシミュレーションの結果を表示するために使用できます。アニメーションは、例えばトレーニングシミュレーションのように、シミュレーションをリアルタイムで体験するために使用できます。場合によっては、アニメーションはリアルタイムよりも速いモード、あるいはリアルタイムよりも遅いモードでも役立つことがあります。例えば、リアルタイムよりも速いアニメーションは、建物から避難する人間のシミュレーションにおける行列の発生を視覚化するのに役立ちます。さらに、シミュレーション結果は、さまざまな科学的可視化手法を用いて静止画像に集約されることがよくあります。
デバッグにおいて、テスト対象プログラムの実行を(ネイティブに実行するのではなく)シミュレートすることで、ハードウェア自体が検出できるよりもはるかに多くのエラーを検出できるだけでなく、命令トレース、メモリ変更、命令数といった有用なデバッグ情報をログに記録することも可能です。この手法は、バッファオーバーフローなどの「検出が困難な」エラーを検出できるだけでなく、パフォーマンス情報やチューニングデータも生成できます。
落とし穴
コンピュータシミュレーションでは見落とされがちですが、結果の精度を正しく理解するためには、感度分析を行うことが非常に重要です。例えば、油田探査プログラムの成功を左右する要因の確率的リスク分析では、モンテカルロ法を用いて様々な統計分布からサンプルを組み合わせます。例えば、重要なパラメータの一つ(例えば、油層の総比率)が有効数字1桁までしか分からない場合、シミュレーションの結果は有効数字1桁以上の精度ではない可能性があり、あたかも有効数字4桁であるかのように(誤解を招く形で)表示されるかもしれません。
参考文献
- ↑ストロガッツ、スティーブン(2007)。「洞察の終焉」。ブロックマン、ジョン(編)『あなたの危険な考えは何ですか?』所収。ハーパーコリンズ。ISBN 9780061214950。
- ↑ 「研究者らが史上最大規模の軍事シミュレーションを実施」。ジェット推進研究所。カリフォルニア工科大学。1997年12月4日。2008年1月22日にオリジナルからアーカイブ済み。
- ↑ 「巨視的現象の分子シミュレーション」。IBMリサーチ - アルマデン。 2013年5月22日にオリジナルからアーカイブ済み。
- ↑ 「ロスアラモス国立研究所は、私たちの周りの世界を理解するためにコンピュータシミュレーションを開発・利用する分野で世界をリードしてきました」。ニューメキシコ州ロスアラモス:ロスアラモス国立研究所。2020年12月。2007年7月4日のオリジナルからアーカイブ。
- ↑ダンカン・グラハム=ロウ(2005年6月6日)「シミュレーション脳構築ミッション開始」ニュー・サイエンティスト。2015年2月9日時点のオリジナルよりアーカイブ。
- ↑サントナー、トーマス J; ウィリアムズ、ブライアン J; ノッツ、ウィリアム I (2003).コンピュータ実験の設計と分析. Springer Verlag.
- ↑ブラトリー、ポール;フォックス、ベネット L.;シュラーゲ、リナス E. (2011年6月28日)。シミュレーションガイド。シュプリンガー・サイエンス&ビジネス・メディア。ISBN 9781441987242。
- ↑ジョン・ロバート・テイラー (1999). 『誤差解析入門:物理測定における不確実性の研究』 ユニバーシティ・サイエンス・ブックス、128–129頁。ISBN 978-0-935702-75-02015年3月16日にオリジナルからアーカイブされました。
- 1 2 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。
- ↑水上浩一、斎藤文雄、バロン・ミシェル「コンピュータシミュレーションを用いた医薬品の粉砕に関する研究」Wayback Machineに2011年7月21日にアーカイブ済み
- ↑メスリー、オリヴィエ (2015).心理学研究におけるモデルの作成.米国: Springer Psychology: 126 ページ. ISBN 978-3-319-15752-8
- ↑ Wilensky, Uri ; Rand, William (2007). "モデルを一致させる: エージェントベースモデルの複製" . Journal of Artificial Societies and Social Simulation . 10 (4): 2.
- ↑ウェスコット、ボブ (2013)。 『すべてのコンピュータのパフォーマンスブック』第7章:コンピュータのパフォーマンスのモデリング。CreateSpace。ISBN 978-1482657753。
- ↑サラ・バーゼ著『火の贈り物:コンピューティングとインターネットにおける社会的、法的、倫理的問題』第3巻、アッパー・サドル・リバー:プレンティス・ホール、2007年、363~364ページ、 ISBN 0-13-600848-8。
さらに読む
- Young, Joseph および Findley, Michael. 2014. 「紛争とテロリズムを研究するための計算モデリング」。Soeters , Joseph、Shields, Patricia、Rietjens, Sebastiaan 編『軍事研究における研究方法のラウトレッジ・ハンドブック』、 pp. 249–260。ニューヨーク:Routledge、
- R. Frigg および S. Hartmann、「科学におけるモデル」 。スタンフォード哲学百科事典の項目。
- E. ウィンズバーグ「科学におけるシミュレーション」 。スタンフォード哲学百科事典の項目。
- S. ハートマン、「プロセスとしての世界:自然科学と社会科学におけるシミュレーション」、R. ヘグセルマン他編、『科学哲学の観点から見た社会科学におけるモデリングとシミュレーション』 、理論と意思決定ライブラリー、ドルトレヒト:クルーワー、 1996年、77-100頁。
- E. ウィンズバーグ著『コンピュータシミュレーション時代の科学』シカゴ:シカゴ大学出版局、2010年。
- P. ハンフリーズ著『自己拡張:計算科学、経験主義、科学的方法』オックスフォード:オックスフォード大学出版局、2004年。
- ジェームズ・J・ヌタロ(2011)。シミュレーションのためのソフトウェア構築:理論とアルゴリズム、C++による応用。ジョン・ワイリー・アンド・サンズ。ISBN 978-1-118-09945-2。
- デサ、WLHM、カマルディン、S.、およびナワウィ、MKM (2012)。シミュレーションを使用した航空機複合部品のモデリング。先端材料研究、591–593、557–560。
外部リンク
- コンピュータシミュレーション口述歴史アーカイブ(2003年~2018年)ガイド