モンテカルロ法とは?
モンテカルロ法とは、数値計算手法の一つのことである。乱数を用いた試行を繰り返すことにより、近似解を求める手法である。確率論的な事象についての推定値を得る場合を特に、「モンテカルロシミュレーション」と呼ぶ。名称の由来は、カジノで有名なモナコ公国のモンテカルロ地区とされている。
モンテカルロ法のあれこれ!
モンテカルロ法では、ある事象をモデル化した数式や関数があるとき、その定義域に含まれる値をランダムにたくさん生成して実際に計算をして、得られた結果を統計的に処理することで推定値を得ることが可能である。数式を解析的に解くのが困難、あるいは不可能な場合でも数値的に近似解を求めることができるのである。
例えば、円周率を求める場合、-1から1までの間に含まれるランダムな値を2つ生成し、これを平面上の点の座標に見立てて原点(0,0)からの距離を計算する。距離が1以下ならその点は原点を中心とする半径1の円に含まれ、1を超えていれば点は円の外にある。この計算を何度も繰り返し行い、n回試行した結果k個の点が円に含まれていたら、円周率(この円の面積に等しい)はk/nであると推定することができる。
確率論の大数の法則により、試行の回数を増やせば増やすほど解の精度は高まり、無限回の試行を行うと誤差は0に収束する。
コンピュータでモンテカルロ法の計算を行う場合は、値が毎回異なる、分布が完全にランダムな真の乱数列を得るためには専用のハードウェアが必要になる。そのため、分布の乱雑さは乱数とほぼ変わらないが、一定の計算手順によって確定的に与えられる疑似乱数を用いることが多い。
○乱数(random value)
乱数とは、サイコロの出目のように規則性がなく予測不能な数値のことを意味する。何度も生成した時に、すでに分かっている値の列から次に現れる値を予測できないような数値の列を乱数列と呼び、その中の個々の値を乱数と呼ぶ。
○擬似乱数(pseudorandom numbers)
一見乱数のように規則性のない数の並びのように見えるが、一定の計算手順によって確定的に与えられる数値の列のこと。また、その中の個々の数値を指す場合もある。
乱数は規則性がなく予測不可能な数値の列で、真にランダムな乱数を得るには物理現象の観測などによらなければならない。このため、コンピュータでランダムな数値列が必要となると、初期値から一定の手順で計算を繰り返すことで統計的な偏りや前後の規則性が少ない数値列を生成し、乱数の代用とすることがある。