Monte Carlo Method
乱数(サイコロ)が切り拓く「不確実性の評価」と「大域的最適化」
1. イントロダクション:決定論から確率論へ
微分方程式やニュートン法、あるいはシンプレックス法のようなアルゴリズムは、入力が定まれば常に「たった一つの正しい答え(決定論的な解)」を導き出します。しかし、現実世界の物理現象や電子部品には、予測不可能なノイズ(ばらつき)が必ず存在します。
「計算上は正しいはずの設計」が現実のノイズにどう耐えるのか、あるいは「複雑すぎて微分の計算が破綻する方程式」をどう解くのか。ここで登場するのが、乱数を用いて数千・数万回のシミュレーションを力技で実行し、確率と統計の力で近似解を導き出す「モンテカルロ法」です。
本稿では、この強力な手法の実用例を「エンジニアリング(歩留まり評価)」と「数学(大域的最適化)」の2つの側面から解説します。
2. 実践①:部品公差と歩留まりシミュレーション
入力電圧 $V_{in} = 10\text{V}$ を、2つの抵抗 $R_1, R_2$(理論値 $1000\Omega$)で分圧する回路を考えます。オームの法則による決定論的な出力はピタリ $5.0\text{V}$ ですが、現実の抵抗器には $\pm 5\%$ 程度の公差(製造ばらつき)が存在します。
出力電圧の合格スペックを $4.85\text{V} \sim 5.15\text{V}$ としたとき、この部品のばらつきによって「どれくらいの不良品が発生するのか」を、モンテカルロ法でシミュレーションしてみましょう。乱数を用いて仮想的な抵抗器を生成し、20個の製品をテスト(計算)します。
グラフを見ると、理想である $5.0\text{V}$(緑の点線)を中心に結果が散らばり、いくつかの点が赤い限界線を無慈悲に突破していることがわかります。
複雑な確率密度の積分計算を行わずとも、「サイコロを振って方程式に代入し、結果を数え上げる」という単純なループ処理だけで、設計の堅牢性(歩留まり)をダイレクトに評価できるのがモンテカルロ法の強みです。
3. 実践②:大域的最適化による非線形方程式の求解
次に、モンテカルロ法を「数学的なソルバー」として使ってみましょう。以下の2変数の連立非線形方程式の解(交点)を求めます。
ニュートン法は強力ですが、初期値を間違えると偽の谷(ローカルミニマム)にトラップされてしまいます。そこで、微分の計算を一切放棄し、問題をつぎの「目的関数 $E(x,y)$ の最小化問題」へすり替えます。
空間全体に無差別に2,000回の乱数(ダーツ)をばら撒き、$E(x,y)$ が最もゼロに近くなる場所を力技で探し出します。以下のグラフは、その探索プロセスを可視化したものです。
Dr.WataWata Insight:ハイブリッド手法の美学
上のグラフを見ると、空間に打ち込まれたグレーの点の中から、方程式を満たす優秀な点(オレンジ)が抽出され、最も解に近いベストな近似解(赤い大きな丸)が、円と直線の交点を見事に探し当てていることが確認できます。
モンテカルロ法単体で高精度な解を狙うと計算量が爆発しますが、「まず乱数で大域的な当たりをつけ、見つけた近似解を『初期値』としてニュートン法を起動する」ことで、悪条件の方程式でも一瞬で真理を射抜くことができます。泥臭い乱数と、洗練された微分のハイブリッド。これこそが数値計算における最強のアルゴリズム設計です。