Ansysは次世代の技術者を支援します
学生は、世界クラスのシミュレーションソフトウェアに無料でアクセスできます。
未来をデザインする
Ansysに接続して、シミュレーションが次のブレークスルーにどのように貢献できるかを確認してください。
モンテカルロシミュレーションは、入力がランダムに変化するプロセスの起こりうる結果の確率を予測するために使用される一連のアルゴリズムです。このアルゴリズムは、確率論的シミュレーションの一種で、「モンテカルロ法」、「モンテカルロ解析」、または「モンテカルロ実験」とも呼ばれます。
モンテカルロシミュレーションでは、起こりうる結果の分布を理解するために、それぞれが異なるランダムな入力のセットを使用して、多数の試行を繰り返します。これらの試行ごとにシミュレーション結果を解析して、不確実変数の確率分布を決定します。
モンテカルロシミュレーションの概念は、マンハッタン計画とその後の核兵器開発プログラムから生まれました。1946年、Stanislaw Ulam氏とJohn Von Neumann氏は、中性子が原子核と衝突したときに放出されるエネルギーの確率分布を求めることを試みていました。「モンテカルロ」という名称は、彼らの同僚から提案されたものです。彼の叔父がモナコのモンテカルロカジノでギャンブルをしていたことと、入力変数のランダムな選択がルーレットのランダム性を連想させたことに由来しています。
ほとんどのプロセスは、特定の入力セットに対して出力が既知であるため、決定論的です。たとえば、温度・量が既知の水に既知の量の熱を加えると、温度がどの程度上昇するかを計算できます。しかし、入力がランダムで、そのプロセス自体が複雑であるシステムでは、結果を予測することは非常に難しくなります。エンジニア、科学者、数学者、経済学者は、そうした複雑なシステムで起こりうる結果の予測にランダム性を組み込むために、モンテカルロシミュレーションを活用しています。
この優れたシミュレーションツールをより深く理解するために、シンプルな例を見てみましょう。ここでは典型的な問題として、4つのコインを投げたときに、0個、1個、2個、3個、または4個の表が出る回数を予測します。
入力変数は、コインの数です。そして予測したい出力変数は、表が出る各組み合わせの確率です。Excelを使用した単純なモンテカルロシミュレーションでは、乱数関数rand()を使用して、乱数が0.5未満の場合はセルを1(表)に設定し、0.5を超える場合は0(裏)に設定して、表または裏を予測します。このモデルは、1つの列が1つのコイン、1つの行が1回の試行、そして表が出たコインの数を計算するための合計列を含むテーブルで構成されます。このモデルでは、確率を計算するために、countif()を使用して、起こりうる結果が発生した回数をカウントし、それを試行回数で除算します。
Microsoft Excelを使用した4つのコインによるシンプルなモンテカルロシミュレーション。上の画像には結果、下の画像には数式が示されている。スプレッドシートが更新されるたびに、新しい結果が計算される。
モンテカルロシミュレーションでは、アルゴリズムを使用して、大量のランダム入力からサンプリングを行うことで問題を解きます。このツールを使用するユーザーは、シミュレーションの対象となるプロセスを定義し、入出力を特定して、シミュレーションを実行し、結果を確認する必要があります。
具体的な手順は以下のとおりです。
モデル化するプロセスを定義して、シミュレーションを開始します。対象となるのは、物理学の問題、株式市場、特定の地域の天候、または生物学的なプロセスなどです。
次に、すべての独立変数を特定します。これらは、変数で表現できるプロセスの特性です。また、変化したときにプロセスの挙動を変化させる特性でもあります。独立変数は、「入力変数」、「入力値」、または単に「入力」とも呼ばれます。
このステップでは、各独立変数の最小値と最大値、さらにはその値の範囲内の分布(ばらつき)も定義する必要があります。分布にはさまざまな種類があります。以下に一般的なものを挙げます。
3つ目のステップは、プロセスの従属変数を定義することです。従属変数とは、入力変数の変化に応じて変動する測定可能な特性を指します。従属変数は、設計評価において重要な指標でなければなりません。最適化解析では、一般的に従属変数を最小化または最大化することが目標となります。または、起こりうる結果に基づいて意思決定を行うこともできます。従属変数は、「出力変数」、「出力値」、または「結果値」とも呼ばれます。
このステップでは、プロセスをコンピュータアルゴリズムとして正確に表現することが重要です。単純式やルックアップテーブル、あるいは数値モデルとして、より複雑な表現が可能です。シミュレーションは、可能な限り、迅速かつ効率的に実行する必要があります。
モンテカルロシミュレーション自体は、シミュレーションモデルを使用した多数の試行の繰り返しです。このアルゴリズムでは、各入力の値の範囲と分布を使用して、入力変数ごとにランダム値を作成します。ツールは試行ごとに異なる結果を記録します。
調査対象のプロセスによって、出力値の正確な分布を得るために必要なシミュレーション回数が異なります。問題によっては、1,000~10,000回の実行が必要となります。また、プロセスによっては、10万回以上の試行が必要となることもあります。
すべての出力値を収集したら、統計的手法を適用して、起こりうる結果ごとの確率を推定します。出力変数が正規分布である場合、平均値と標準偏差値が確率分布を表します。単純なケースでは、ある値の確率は、特定の結果が発生した回数を試行回数で割った値となります。
より複雑なシステムや応用分野、特に機械学習モデルのトレーニングでは、ベイズ解析を使用します。
モンテカルロシミュレーションは、さまざまな業界で確率論的モデリングに使用されています。以下に、最も一般的な応用分野を挙げます。
エンジニアは、履歴データや単純で決定論的なモデルがない状態で複雑なシステムを設計しなければならないことが多いため、さまざまな分野でモンテカルロ法を採用しています。設計以外にも、たとえば、プロジェクト計画の感度解析とリスク管理を行うためにプロジェクト管理に導入することもあります。最も一般的な用途は複雑なシステムの数値シミュレーションであり、製品の統計的な挙動や入出力変数間の関係を把握するために使用されます。典型的な導入例は、中性子がどのように通過し、原子炉内の構造部品と相互作用するかを計算する中性子輸送です。
地中から天然資源を採取する際、数多くの不確定要素がある中でプロジェクトの採算性を予測することが必要です。これらの業界ではモンテカルロシミュレーションを導入して、資源が埋蔵されている場所の大きさ、空隙率、採掘資源の品質、さらにはその商品の将来の価格を予測しています。最も一般的な用途の1つは、潜在的な油田の地質をモデル化することです。具体的には、岩石の各層の組成・空隙率・厚さに確率分布を設定し、組み合わせごとの石油分布を求めます。その後で、モンテカルロシミュレーションを実行して、潜在的な石油濃度の分布を取得します。特定の場所に埋蔵されている正確な石油量を予測する代わりに、石油の確率分布を計算します。
金融市場ほど複雑でランダムなものもないでしょう。エコノミストや金融アナリストは、株価、ボラティリティ、金利、消費者物価、その他の主要な経済変数を予測するためにモンテカルロ法を使用しています。コモディティトレーダーは、保有する商品の価格が時間の経過とともにどのように変動する可能性があるかを評価するために、モンテカルロ法を用いたストレステストを実施しています。市場に影響を及ぼす数十種類のさまざまな変化に対する価格感応度をモデル化し、時間の経過とともに事象をランダムに選択して、毎日の想定価格の分布を取得します。その結果が、ポートフォリオのバリューアットリスク(VAR)となります。
モンテカルロ法は、当初は原子核物理学のために開発されましたが、現在では原子炉・放射線療法・検出器などのシステムにおける放射線モデル化で重要な役割を担っています。化学者は、化学反応のモデル化や新しい分子の開発において、メカニズムを解析的に計算することが不可能なため、計算化学および統計力学の基礎としてモンテカルロ法を使用します。バイオテクノロジーにおいても同様であり、研究者はモンテカルロ法を用いて治験結果の解釈、患者の奏効率の評価、新薬の設計を行います。
創薬では、分子ドッキングシミュレーションでモンテカルロ法がよく採用されます。ここでは、タンパク質(錠前)に嵌る低分子(鍵)を見つけることが目的です。分子がタンパク質に嵌った場合は、不要な化学反応を抑制できます。低分子のすべての形状と回転をモデル化するのではなく、両方のランダムな分布を用いて、研究者が注目できる最低エネルギーの組み合わせを特定します。
モンテカルロシミュレーションは、多くのメリットがあることからさまざまな分野で採用されています。しかし、実際の問題に適用する前に考慮しなければならないデメリットもいくつかあります。
以下に、最も一般的なメリットとデメリットを挙げます。
モンテカルロシミュレーションに使用されるツールには、数学ソフトウェア、カスタムプログラム、シミュレーションソフトウェアの3種類があります。
以下に示すように、それぞれに独自の利点と課題があります。
Microsoft Excel、Googleスプレッドシート、Mathematica、MATLABなどのソフトウェアは、計算を実行し、入力変数と出力変数の統計的分布を処理できる優れたツールです。スプレッドシートには専用のモンテカルロ機能がないため、ユーザーはゼロからシミュレーションを構築する必要があります。数学に特化したツール、特に強力な統計モジュールを備えたツールを使用することで、確率変数の作成が容易になり、試行が自動化され、結果に対して確率論的解析を実行できるようになります。このクラスのツールの最大の課題は、プロセスの正確なモデルを作成することです。
カスタムプログラムは、プログラミング言語のサブルーチンでプロセスを表現できる場合に適しています。ほとんどの言語では、確率変数の入力分布の作成や、結果として得られる従属変数の処理といったタスクをサポートするライブラリが提供されています。このアプローチの欠点は、ユーザーが調査対象となるプロセスのモデルを含め、応用事例ごとにカスタムプログラムを作成する必要があることです。Pythonなどのプログラミングプラットフォームを使用すれば容易になりますが、シミュレーションを設定して実行するまでに、ある程度の時間がかかります。
実世界への応用でよく採用されている最も優れたツールセットはシミュレーションソフトウェアです。これらのプログラムは調査対象のプロセスをモデル化するもので、多くの場合、モンテカルロの設定を簡略化し、試行ケースの実行を自動化するツールが組み込まれています。
代表的なツールはAnsys Optics製品群で、光学システムのモンテカルロシミュレーションを実行するための光学システム設計および解析ソフトウェアであるAnsys Zemax OpticStudioと、フォトニクスで見られる高度な確率論的な振る舞いに対応したAnsys Lumericalで構成されます。どちらのツールも、モンテカルロシミュレーションをサポートするパラメトリックモデルの作成に役立ちます。
Ansys Lumericalの最適化インターフェース
また、Ansysのフラッグシップシミュレーションソフトウェア(構造の有限要素法解析ソフトウェアのAnsys Mechanical、非線形動的構造シミュレーションソフトウェアのAnsys LS-DYNA/LS-Opt、流体シミュレーションソフトウェアのAnsys Fluent、高度な電磁界ソルバーのAnsys Maxwell、高周波電磁界シミュレーションソフトウェアのAnsys HFSS)についても同様です。これらのツールはそれぞれ、特定の物理現象のシミュレーションに特化しています。どのツールも入力変数や出力変数のパラメータ化をサポートし、モンテカルロシミュレーションツールを提供して、統計的なポストプロセスをサポートします。
特定のシミュレーションプラットフォームに対して組込みツールが不十分な場合は、プロセス統合および設計最適化ソフトウェアであるAnsys optiSLangなどの最適化ツールと統合できます。この最適化およびプロセス統合のための汎用ツールは、モンテカルロシミュレーションの実行に適した優れた機能を備えており、Ansys, part of Synopsysが提供するツールとAnsys以外のシミュレーションツールの両方と統合でき、単一の自動化プラットフォームを提供します。また、ロバストなPythonインターフェースを活用することで、プログラムを他のソフトウェアやPythonルーチンに接続することもできます。
光学システム設計および解析ソフトウェアであるAnsys Zemax OpticStudio用のモンテカルロ公差インターフェース
研究者や数学者は、モンテカルロシミュレーションをさまざまなAIアプリケーションに使用してきました。以下に、いくつかの例を挙げます。
シミュレーション用のクラウド対応AIプラットフォームであるAnsys SimAIは、モンテカルロシミュレーションを活用してモデルのトレーニングデータを生成する最新のAIツールの一例です。
エンジニアリング課題に直面している場合は、当社のチームが支援します。豊富な経験と革新へのコミットメントを持つ当社に、ぜひご連絡ください。協力して、エンジニアリングの障害を成長と成功の機会に変えましょう。ぜひ今すぐお問い合わせください。