モンテカルロ法 ( モンテカルロほう 、( 英 : Monte Carlo method 、MC )とはシミュレーション や数値計算 を乱数 を用いて行う手法の総称。元々は、中性子が物質中を動き回る様子を探るためにスタニスワフ・ウラム が考案しジョン・フォン・ノイマン により命名された手法。カジノ で有名な国家モナコ 公国の4つの地区(カルティ)の1つであるモンテカルロ から名付けられた。ランダム法とも呼ばれる。
計算理論
計算理論 の分野において、モンテカルロ法とは誤答する確率の上界が与えられる乱択アルゴリズム (ランダム・アルゴリズム)と定義される。一例として素数判定問題 におけるミラー-ラビン素数判定法 がある。このアルゴリズムは与えられた数値が素数の場合は確実に Yes と答えるが、合成数の場合は非常に少ない確率ではあるが No と答えるべきところを Yes と答える場合がある。一般にモンテカルロ法は独立な乱択を用いて繰り返し、実行時間を犠牲にすれば誤答する確率をいくらでも小さくすることができる。またモンテカルロ法の中でも任意の入力に対して最大時間計算量 の上界が入力サイズの多項式で与えられるものを効率的モンテカルロ法という。
なお、これとは対照的に理論上必ずしも終了するとは限らないが、もし答えが得られれば必ず正しい乱択アルゴリズムをラスベガス法 と呼ぶ。
計算複雑性理論 では、確率的チューリング機械 によるモデル化によってモンテカルロ法を用いて解決できる問題のクラス をいくつか定義している。代表的なところでは RP やBPP 、PP などがある。これらのクラスと P や NP との関連性を解明していくことによって、モンテカルロ法のようにランダム性を含むアルゴリズムによって解ける問題の範囲が拡大しているのか(P ≠ BPP なのか)、それとも単に決定的アルゴリズム で解ける問題の多項式時間の次数を減らしているだけなのか(P=BPP なのか)は計算複雑性理論における主要課題の1つである。現在、NP ⊂ PP 、RP ⊆ NP であることはわかっているが BPP と NP との関係はわかっていない。
準モンテカルロ法
一様乱数ではなく、超一様分布列 (英語版 ) を使用する方法を準モンテカルロ法 (英語版 ) という。乱数を利用するよりも収束が早くなる場合がある。ただし、純粋にランダムな方法ではないので、正解を得られる可能性が確率論的に低下する場合がある。
超一様分布列としては、以下などがある。
数値積分
モンテカルロ法を円周率 πの値の近似に適用した例。30,000点をランダムに置いたとき、πの推定量は実際の値から0.07%以下の誤差の範囲内にあった。
数値解析 の分野においてはモンテカルロ法はよく確率を近似的に求める手法として使われる。n 回シミュレーションを行い、ある事象が m 回起これば、その事象の起こる確率は当然ながら m /n で近似される。試行回数が少なければ近似は荒く、試行回数が多ければよい近似となる。
また、この確率を利用すれば、積分 (面積)の近似解を求めることが可能となる。領域 R の面積 S は、領域 R を含む面積 T の領域内でランダムに点を打ち、領域 R の中に入る確率 p をモンテカルロ法で求めれば、S = pT で近似される。
n 重積分
I
=
∫
0
1
⋯
∫
0
1
f
(
x
1
,
x
2
,
…
,
x
n
)
d
x
1
⋯
d
x
n
{\displaystyle I=\int _{0}^{1}\dotsi \int _{0}^{1}f(x_{1},x_{2},\dotsc ,x_{n})dx_{1}\dotsm dx_{n}}
をサンプルサイズ N のモンテカルロ法で計算するには、0 以上 1 以下の値をとる n × N 個の一様乱数
X
i
,
j
,
1
≤
i
≤
n
,
1
≤
j
≤
N
{\displaystyle X_{i,j},\quad 1\leq i\leq n,1\leq j\leq N}
を生成して、
I
N
=
1
N
∑
j
f
(
X
1
,
j
,
X
2
,
j
,
…
,
X
n
,
j
)
{\displaystyle I_{N}={\frac {1}{N}}\sum _{j}f(X_{1,j},X_{2,j},\dotsc ,X_{n,j})}
とすれば、IN が積分の近似値となる。一様乱数を超一様分布列に置き換えると準モンテカルロ法になる。
これに層化抽出法 を行うよう改良を加えた MISER 法や、加重サンプリングを行う VEGAS 法といった改良版のアルゴリズムがある。MISER 法では、積分範囲を分割し、それぞれの領域中でランダム・サンプリングを行い、被積分関数値の分散が最も大きくなる領域をより小さな領域に分割して、そこでさらにサンプリングを行うことで精度を上げる。VEGAS 法では、被積分関数値の大きな場所にサンプリング点を増やし、積分値に寄与の大きなところに集中することで精度を上げる。
積分の計算法には他に台形公式 ・シンプソンの公式 ・二重指数関数型数値積分公式 等があるが、モンテカルロ法はこれらの手法より多次元問題の際に利用しやすく、誤差が少ない。
強化学習
機械学習 の強化学習 の文脈では、モンテカルロ法とは行動によって得られた報酬経験だけを頼りに状態価値、行動価値を推定する方法のことを指す[ 8] 。
統計学
統計学におけるモンテカルロ法の1つとして、ブートストラップ法 を参照。
乱数(列)の選択
モンテカルロ法では状況に応じた乱数列 の選択が重要である。また、結果の品質には使用する乱数の品質によるところがある。
擬似乱数列
擬似乱数 列は初期状態によって未来の数列がすべて決定されるので、いわゆる「真にランダム」ではないが、シミュレーションなどでは(他に非決定的な要素が無ければ)再現性がある、という重要な特性がある。
物理乱数
真の乱数が必要な場合や、擬似乱数列生成系の初期状態の設定のために良質の乱数が必要な場合は、物理現象を利用して物理乱数(真性乱数)を生成するハードウェアを利用する(ダイオード のPN接合部に生じる熱雑音を利用する方法がよく使われる。放射性元素を使うものもある)。
超一様分布列
逆に規則性の強い数列であり、数値積分に用いられる[ 9] 。超一様分布列を用いたモンテカルロ法を準モンテカルロ法という。超一様分布列のことを、低食い違い量列 や準乱数列 [ 10] と呼ぶこともある。超一様分布列を数値積分に用いる目的は精度を高めることである。
精度
また、精度の良い結果を得るためには多くの試行回数が必要となる。しかし、1回の試行に膨大な時間がかかる場合、多くの試行を行うことは物理的に不可能となる。そのため、モンテカルロ法の精度は1回の試行に掛かる時間にも制限を受ける。
モンテカルロ法による数値積分の精度はサンプルサイズ N を増やせばほとんどの場合によくなることが確率論 によって保証される。サンプルが真にランダムな乱数列である場合には、モンテカルロ法で得られる積分の近似値の真値からの誤差
|
I
−
I
N
|
{\displaystyle |I-I_{N}|\,}
は、サンプルサイズ N を限りなく増大させればほとんど確実に 0 に収束する(大数の法則 )。この収束の速さに関しては、
|
I
−
I
N
|
<
C
log
log
N
N
{\displaystyle |I-I_{N}|<C{\sqrt {\frac {\log \log N}{N}}}}
となる(重複対数の法則 (英語版 ) )。すなわち、誤差の大きさを10分の1倍に低減するにはサンプル数 N を100倍に増すことが必要となる。
これに対して、ある準モンテカルロ法では 積分変数の数を n とするとき,
|
I
−
I
N
|
<
C
′
(
log
N
)
n
N
{\displaystyle |I-I_{N}|<C'{\frac {(\log N)^{n}}{N}}}
となるので、誤差の大きさを10分の1倍に低減するにはサンプル数 N を約10倍に増すだけでよくなる。これが、準モンテカルロ法を用いる利点である[ 9] 。
ただし高次元の積分を行う場合には次元の数 n が大きいので効果が減り、単純なモンテカルロの方が良い結果を与えることが多い。
脚注
参考文献
P.J. Davis and P.Rabinowitz、森正武(訳):「計算機による数値積分法」、日本コンピュータ協会(1981年2月15日)。
Motwani, Rajeev; Raghavan, Prabhakar (1995). Randomized algorithms . Cambridge University Press. ISBN 0-521-47465-5 . MR 1344451 . Zbl 0849.68039 . https://books.google.co.jp/books?id=QKVY4mDivBEC
Jan van Leeuwen 編、「コンピュータ基礎理論ハンドブックⅠ:アルゴリズムと複雑さ」、廣瀬 健、野崎昭弘、小林孝次郎 監訳、丸善、1994年、ISBN 4-621-03921-0
電気学会 GA・ニューロを用いた学習法とその応用調査専門委員会 編、『学習とそのアルゴリズム』、森北出版、2002年、ISBN 4-627-82751-2
杉原・室田:「数値計算法の数理」、岩波書店 2003年、ISBN 978-4000055185
伏見正則 ・逆瀬川浩孝(監訳):「モンテカルロ法ハンドブック」、朝倉出版、ISBN 978-4254280050 (2014年8月25日)。原著はDirk P.Kroese, Thomas Taimre, Zdravko I.Botev:Handbook of Monte Carlo Methods , John Wiley & Sons, Inc.,ISBN 978-0470177938 (2011年1月28日)。
鈴木航介、合田隆「準モンテカルロ法の最前線 」『日本応用数理学会論文誌』第30巻第4号、日本応用数理学会、2020年、320-374頁、doi :10.11540/jsiamt.30.4_320 、ISSN 2424-0982 。
Müller, Fabio; Christiansen, Henrik; Schnabel, Stefan; Janke, Wolfhard (2023-07). “Fast, Hierarchical, and Adaptive Algorithm for Metropolis Monte Carlo Simulations of Long-Range Interacting Systems” . Phys. Rev. X (American Physical Society) 13 (3): 031006. doi :10.1103/PhysRevX.13.031006 . https://doi.org/10.1103/PhysRevX.13.031006 .
K.K. Sabelfeld: Monte Carlo Methods: In Boundary Value Problems , Springer-Verlag, ISBN 978-3-642-75979-6 (1991).
鈴木航介、合田隆:「重点解説 モンテカルロ法と準モンテカルロ法」、サイエンス社(SGC 197)、ISBN 978-4-7819-1623-1 (2025年1月25日)。
関連項目
ウィキメディア・コモンズには、
モンテカルロ法 に関連するカテゴリがあります。