モンテカルロ法はいつ使用する必要がありますか?
たとえば、なぜ Joelは過去 1 年間のすべてのユーザー データを体系的に処理するのではなく、エビデンス ベースのスケジューリングにモンテカルロ法を使用することにしたのでしょうか?
モンテカルロ法はいつ使用する必要がありますか?
たとえば、なぜ Joelは過去 1 年間のすべてのユーザー データを体系的に処理するのではなく、エビデンス ベースのスケジューリングにモンテカルロ法を使用することにしたのでしょうか?
モンテカルロ法は、問題の次元が従来の方式では高すぎる場合に一般的に使用されます。このテーマに関する優れた入門書は、Persi Diaconis のThe Markov Chain Monte Carlo Revolutionです。
関心のある量を見積もりたいとします。ジョエルの例では、'出荷日' が見積もりたいものです。そのような状況のほとんどでは、見積もりに影響を与えるランダムな要因があります。
乱数がある場合、通常、適切なアクションを実行できるように、その平均値と標準偏差を知りたいと考えます。単純な状況では、量を標準分布 (正規分布など) としてモデル化できます。この分布には、平均と標準偏差の分析式が存在します。しかし、分析式が存在しない状況も数多く存在します。このような状況では、平均と標準偏差の分析ソリューションの代わりに、シミュレーションを使用します。アイデアは次のとおりです。
ステップ 1: 適切な分布を使用して、関心の量に影響を与える要因を生成する
ステップ 2: 対象数量の計算
手順 1 と 2 を何度も繰り返し、知りたいことの経験的平均と標準偏差を計算します。
上記は、モンテカルロ アプリケーションの典型的なアプリケーションです。Jarrod が提供するウィキペディアのリンクを参照して、そのようなアプリケーションのいくつかと、固有のランダム性がない興味深いアプリケーションの例 (pi の推定など) を参照してください。
場合によっては、すべてのオプションをチェックすることは単に法外なことです。
ウィキペディアには、モンテカルロ シミュレーション方法に関する優れた記事があります。私はモンテカルロを数回使用しました。一言で言えば、MC 法は、かなりランダムなサンプル セットを使用して結果を予測しようとすると、正確な答えを与える傾向があり、誰かが直感を使用してトレンドを推測しようとするのが一般的です。残念ながら、MC メソッドを説明しようとするとかなり難しいので、記事をチェックしてください。
プログラミング タスクをスケジュールするとき、推定値は通常かなり広く分布しているため、推定値を統計的に扱う方が理にかなっています。
数百のタスクを伴うプロジェクトを採用した場合、見積もりの誤差は均等になり、プロジェクトの完了の可能性を範囲として示す分布になります。
また、タスクのバッファリングや結果をさらにゆがめる学生症候群などの深刻な問題も回避できます。