ビジネスにおけるMonte Carloシミュレーション

Monte Carloシミュレーションとは?

Monte Carloシミュレーションは、不確実性を処理する際に正確な推定値を取得する方法です。ランダム性を使用して意味のある情報を取得し、ビジネスリスクを計算し、コストやスケジューリングの超過などの障害を予測するのに効果的です。

Stanislav Ulam
Stanislav Ulam

この技術は、1940年代にManhattan Projectの一環として核兵器に関する極秘の研究を行っていたStanislav UlamとJohn von Neumannによって開発されました。Monte Carloの名前は、特定の技術にコードワードを割り当てる必要があることに由来しており、Monte Carloの名前は偶然に決定されたものではありません。

Ulamの同僚であるNicholas Metropolisは、Monte Carloで親戚のお金を賭けたUlamの叔父の話に触発された可能性があり、公国の有名なカジノにちなんでこの技術に名前を付けることを提案しました。その名がつき、それ以来この技術は広く利用されてきました。

この技術は、意思決定を改善するための強力な方法であり、正確な長期予測を行うために使用できます。これは、Monte Carlo Methodおよび多重確率シミュレーションとしても知られています。

Monte Carlo とExcelまたはシミュレーションモデリングとは?

数式で簡単に取得できるようないくつかの課題については、通常のスプレッドシートを使用してMonte Carloシミュレーションを実行できます。Microsoftは、Excel使用したMonte Carloシミュレーション概要で、取り組むことができる問題の種類の例を示しています。これらの問題には、需要確率に関して注文するアイテムの数を見つけるなどのタスクが含まれています。

Excelで作成されたモデルは、単純な数学的関係と数式によって駆動されます。そのため、Monte Carlo実験は、分布からの乱数をモデルの数式に繰り返し差し込んで、可能性のある結果のスペクトルが形成されるという形をとります。

ただし、目前の課題を数式で十分に表現することが非常に難しいか不可能な場合は、別の方法が必要です。そこで、AnyLogicなどのシミュレーションソフトウェアが登場します。

基礎となるモデルが動的シミュレーションである場合、モデルは複雑で非線形であり、時間とともに変化する可能性があります。さらに、モデルは内部ランダム性を持つことができるため、入力がランダムまたは決定論的であるかどうかに関係なく、モデルの内部動作もランダム要素を持つことができます。このように、たとえば、コールセンターモデルの入力パラメータには、人員と発信者の数が含まれる場合がありますが、モデルの内部では、通話の長さは実行ごとにランダムに変化します。

Andrei BorschsevとIlya Grigoryevの Big Book of Simulation Modelingは、AnyLogicモデルのランダム性のトピックを詳細にカバーしています [PDF、第15章(2020年更新)]。

システムがシミュレーションモデルにキャプチャされると、システムの各部分とその動作がモデル化されるため、シミュレーションを実行すると、システムの動作が時間の経過とともに明らかになります。このようにシステムを表現するということは、Excelのように、すべてのシステムのプロセスを数式で記述する必要がないことを意味します。これにより、非常に複雑なシステムやシナリオを分析できるようになります。

クラウドでMonte Carloの実行

UlamがMonte Carlo法を開発できた理由のひとつは、von Neumannと働くことで、新しく開発された高度なコンピュータを利用できたからです。

Monte Carloシミュレーションで、有用な結果を生成するには、高速なコンピュータ処理能力を利用して、多くの繰り返し計算する必要があります。モデルが非常に複雑で動的な場合、処理能力がとても重要で、実行時間が非常に長くなる可能性があります。これにより、what-if実験の可能性が減り、意思決定におけるモデルの有用性が制限される可能性があります。

AnyLogicは、マルチコアプロセッサを自動的に利用し、Monte Carlo反復を並行実行し、実験時間を短縮します。さらに多くの処理能力を得るために、AnyLogic Cloudを利用すると、高度なコンピュータリソースを使用して、複雑なシミュレーションモデルの実験と多くの反復を、高速に実行することが可能となります。

無料で利用可能なバージョンのAnyLogic Cloud には、Monte Carloシミュレーションとクラウドコンピューティングの機能を示すいくつかの例があります。

以下に示すInterconnected Call Centersクラウドモデルは、Monte Carlo実験を特徴としています。

このモデルのMonte Carloシミュレーションの例を表示するには、モデルのダッシュボードに移動します

AnyLogic Cloudは、Monte Carlo 2nd Order実験も備えています。この実験では、複数の複製と反復が可能であるため、実験の入力パラメータと内部パラメータの両方が確率分布に従ってランダムに設定されます。たとえば、消費者信用アプリケーションモデルでは、オンラインアプリケーションとオフラインアプリケーションの比率(入力パラメーター)、およびアプリケーションの処理時間(内部パラメーター)を変えることができます。Monte Carlo 1st Order実験では、モデルの内部パラメータのみがランダム化されます。

消費者信用ビジネスのオンラインおよびオフラインアプリケーションの配布に関するデータが限られている場合、Monte Carlo 2nd Order実験は、さまざまなアプリケーション比率シナリオに対する人員配置レベルの分析に役立ちます。これにより、アプリの傾向変化に、より弾力的に対応でき、会社計画策定の助けになります。

以下に示す Consumer Credit Applicationのクラウドシミュレーションは、Monte Carlo 2nd Order実験を特徴としています。

消費者信用申請モデル。Monte Carlo 2nd Order実験は、このモデルのダッシュボードで利用できます。

上記の例は、無料で公開されているAnyLogic Cloudでホストされており、ウェブブラウザーを介してアクセスできます。AnyLogic Cloudプラットフォームは、高度な適応性と構成可能性を備えています。企業は、プライベートまたは社内にホストを置き、カスタムインターフェイスを使用して、RESTful APIからアクセスできる独自のクラウドシミュレーションソリューションを作成できます(JavaScriptおよび Pythonについてはブログを参照してください)。AnyLogic Monte Carloシミュレーションを実行する方法の詳細については、オンラインのAnyLogicヘルプおよびAnyLogic Cloudヘルプを参照してください。

ビジネスにおけるモンテカルロシミュレーション

Monte Carloシミュレーションは、予想される製品需要の比較的単純な決定や複雑なビジネスリスクの計算など、ビジネスにおける幅広い課題に役立ちます。Monte Carloシミュレーションアプリケーションは、最新のコンピュータリソースを使用することで可能になりました。企業がより強力なマルチコアプロセッサとクラウドコンピューティングへのアクセスを拡大するにつれて、シミュレーションとMonte Carlo最適化で満たすことができる課題は拡大し続けています。

AnyLogicは、非常に複雑なシステムのMonte Carloシミュレーションを可能にします。シミュレートされたシステムは複雑で、動的で、さらに非線形になる可能性があります。このようなシミュレーションモデルは、AnyLogic Cloudの並列処理と強力なクラウドコンピューター環境を利用することで、早く結果を得ることができます。また、APIやカスタムUI等を使用することも可能です。

Monte Carloシミュレーションの詳細と、AnyLogicで複雑なビジネス上の課題に対処する方法については、当社までお問い合わせください

関連記事