モンテカルロではないシミュレーション方法はありますか?すべてのシミュレーション手法では、関数に乱数を代入して、関数の値の範囲を見つけます。それでは、すべてのシミュレーション手法は本質的にモンテカルロ法ですか?
モンテカルロではないシミュレーション方法はありますか?すべてのシミュレーション手法では、関数に乱数を代入して、関数の値の範囲を見つけます。それでは、すべてのシミュレーション手法は本質的にモンテカルロ法ですか?
回答:
モンテカルロではないシミュレーションがあります。基本的に、すべてのモンテカルロ法は大きな数の(弱い)法則を使用します。平均は期待に収束します。
次に、準モンテカルロ法があります。これらは、より高速な収束を実現するために、乱数と等間隔のグリッドの妥協によってシミュレートされます。
モンテカルロではないシミュレーションは、例えば、計算流体力学で使用されます。流体の単一部分の「マイクロスケール」で流体力学をモデル化するのは簡単です。これらの部分には初期速度、圧力、サイズがあり、隣接する部分からの力または固体の影響を受けます。シミュレーションは、すべての部分とそれらの相互作用を計算することにより、流体の全体の動作を計算します。これを効率的に行うと、これが科学になります。乱数は必要ありません。
気象学または気候研究では、物事は同様に行われます。しかし、現在、初期値は正確にはわかっていません。気象データは、測定されたいくつかのポイントでしか得られません。多くのデータを推測する必要があります。
これらの複雑な問題は多くの場合、入力データで連続的ではないため、異なる推測でシミュレーションを実行します。最終結果は、最も頻度の高い結果の中から選択されます。これは実際に、いくつかの天気予報が原則としてシミュレートされる方法です。
モンテカルロ法は、統計問題にコンピューターシミュレーションを使用する最初のアプローチでした。第二次世界大戦中にマンハッタンプロジェクトに取り組んでいたロスアラモス研究所のジョンフォンノイマン、スタニスワフウラム、ニコラスメトロポリスチームによって開発されました。これは1949年にMetropolis&Ulamによって最初に記述され、名前が初めて印刷物に登場しました。それを発見した科学者たちは、彼らが取り組んでいた最初のコンピューターの1つを使用することもできたので、それは可能でした。彼らの仕事では、物理問題のシミュレーションにモンテカルロ法を使用し、アイデアは、このプロセスのいくつかの例をサンプリングすることで複雑な問題をシミュレートできるというものでした。モンテカルロの歴史に関する興味深い記事が複数あります。例えばメトロポリス自身、または最近の、たとえばRobert&Casellaなど。
したがって、「モンテカルロ」は、統計的な問題を解決するためのコンピューターシミュレーションを目的として記述された最初の方法の名前でした。その後、この名前はシミュレーション手法のファミリー全体の一般的な名前になり、この方法で一般的に使用されています。
非モンテカルロと見なされるシミュレーション方法がありますが、モンテカルロはコンピューターシミュレーションの最初の使用でしたが、「コンピューターシミュレーション」と「モンテカルロ」は互換的に使用されるのが一般的です。
「シミュレーション」とは異なる定義があります。つまり、
3 a:別のシステムまたはプロセスの機能による1つのシステムまたはプロセスの機能の模倣表現b:シミュレーションデバイスによる直接的な実験の対象にならないことが多い問題の調査
ケンブリッジ辞書:
本物のように振る舞う、または見えるが本物ではない何かをする、または作る
長期にわたる実世界のプロセスまたはシステムの操作の模倣
シミュレーションが機能するために必要なのは、何らかのシステムまたはプロセスを模倣する能力です。これにはランダムな関係は必要ありません(モンテカルロの場合のように)が、すべての可能性が試される場合、手順はかなり網羅的な検索または一般的な最適化の問題です。ランダム要素が関与し、コンピューターを使用して何らかのモデルのシミュレーションを実行する場合、このシミュレーションは初期のモンテカルロ法の精神に似ています(たとえば、Metropolis&Ulam、1949)。シミュレーションの重要な部分としてのランダム要素は、たとえば、Ross(2006、Simulation。エルゼビア)。ただし、質問に対する答えは、想定するシミュレーションの定義に大きく依存します。たとえば、最適化または網羅的検索を使用する決定論的アルゴリズムが実際にシミュレーションであると想定する場合、さまざまなアルゴリズムをシミュレーションと見なす必要があり、これによりシミュレーション自体の定義が非常に不明瞭になります。
文字通り、すべての統計的手順は、何らかのモデルまたは現実の近似を採用し、「試行」および評価されます。これは、シミュレーションの辞書定義と一致しています。ただし、すべての統計がシミュレーションベースであるとは考えていません。質問と議論は、「シミュレーション」の正確な定義の欠如から生じるようです。モンテカルロはシミュレーションの典型的な(そして最初の)例のようですが、シミュレーションの非常に一般的な定義を考慮すると、多くの非モンテカルロ法が定義に含まれます。したがって、モンテカルロ以外のシミュレーションもありますが、明らかにシミュレーションベースの手法はすべて、モンテカルロの精神に似ているか、何らかの方法でそれに関連するか、それに触発されました。これが、「モンテカルロ」が「シミュレーション」の同義語としてよく使用される理由です。
すべてのシミュレーション手法では、関数に乱数を代入して、関数の値の範囲を見つけます。
シミュレーションのその定義について聞いたことがありません。たとえば、ウィキペディアのシミュレーションおよびコンピューターシミュレーションに関する記事では、ランダムや確率論などの用語について簡単に言及しています。
ランダム性を伴わない、したがって明らかにモンテカルロシミュレーションではないシミュレーションの簡単な例は、次のとおりです。
単純な振り子の振る舞いをシミュレートし、いくつかの単純化した仮定(質量のないコード、正確な質量、摩擦なし、コリオリ力のような外力なし)を行いたいです。次に、数学的振り子を取得し、その運動を記述する微分方程式を書き留めます。その後、ルンゲクッタ法などの微分方程式にソルバーを使用して、与えられた初期条件の軌道をシミュレートできます。(理論的には、さらに初期条件を考慮する必要がないと主張することもできます。)
このようにして、乱数を使用せずに実際の振り子のかなり良いシミュレーションを取得します。したがって、これはモンテカルロシミュレーションではありません。
別の例では、ロジスティックマップを考えます。これは、ランダム性のない単純な母集団モデルです。
簡単な説明で突き刺してみましょう。「what-if」モデルは(決定論的な)シミュレーションです。ウィジェット処理プラントのような複雑なシステムがあるとします。コストなどのパフォーマンスパラメータを推定できるようにしたい場合。プラントの数学モデルを構築してから、モデル内の特定の要因に対してさまざまな仮定を選択します。たとえば、ウィジェットがさまざまな操作をどの程度高速で移動するか、さまざまな方向に流れる割合、処理するウィジェットの数などです。モデルはプラントのシミュレーションであり、仮定の各セットはそのパフォーマンスパラメーターの推定値を提供します。
ここで不確実性を導入します。ウィジェットの需要が来月どうなるかはわかりませんが、コストを見積もる必要があります。したがって、需要が1,000ウィジェットになると言う代わりに、需要の確率分布を推定します。次に、その分布から需要値をランダムにサンプリングし、それらを仮定に使用します。その間、他の仮定に確率分布を使用することもできます。モデルを繰り返し使用し、さまざまな確率分布からサンプリングされた仮定をプラグインします。結果は、コストの推定値の分布になります。それがモンテカルロの側面です。
モンテカルロは、シミュレーションモデルの上に階層化された「機能」または「エンジン」です。単一の推定値に対して単一の仮定セットでシミュレートする代わりに、ランダムに選択された仮定を使用してシミュレーションのコレクションを実行します。
特にゲーム理論では、シミュレーションでランダム性を使用するアプローチはモンテカルロ法と呼ばれます。通常、最新のプログラムでモンテカルロツリー検索(MCTS)の一部として使用されます。
(元の質問では、「モンテカルロアルゴリズム」と「モンテカルロ法」を区別していなかったため、ここでの回答のいくつかについて意見の相違が生じる可能性があります。)
たとえば、囲gameのゲーム(およびMCTSを使用していることを知っている他のすべてのゲーム)では、シミュレーションはプレイアウトと呼ばれます。ランダム再生では、最も厳しいルールセットが使用されます。軽いプレイアウトは、ランダムなプレイアウトの同義語であるか、簡単に検出されたいくつかの悪い動きを除外します。重度のプレイアウトでは、より多くのヒューリスティックを使用して、より多くの動きを除外します。(ちなみに、プレイアウトは常にゲームの最後に行くため、各プレイアウトはほぼ同じ時間かかります。)しかし、すべては「モンテカルロ」シミュレーションと呼ばれます。