メトロポリス法を熱平衡状態の系のシミュレーションの観点から導入する。
熱平衡状態からの導入
確率分布 P(x)を、熱平衡状態の系における自由度 x の分布とする。
P(x)=Z1exp(−βE(x))
エネルギー状態 E(x) から別のエネルギー状態 E(y) への遷移が発生する頻度を W(y∣x) と表すことにしよう。系は熱平衡状態であるという仮定により、詳細釣り合い条件が成立する。
P(x)W(y∣x)=P(y)W(x∣y)
これを変形すると、Wが満たすべき条件式を以下のように表すことができる。
W(x∣y)W(y∣x)===P(x)P(y)exp(−β(E(y)−E(x)))exp(−βΔE)
これを満たすような遷移の頻度 W(y∣x) として、例えば次のようなものを考えることができる。
W(y∣x)==min(exp(−βΔE),1){1exp(−βΔE)(ΔE≤0)(ΔE>0)
すなわち、エネルギーが低くなるような場合には確実に遷移し、エネルギーが高くなるような場合には確率 exp(−βΔE) で遷移する。定義式から明らかなように、遷移先のエネルギーが高ければ高いほど遷移する確率は低くなる。
シミューレーション
以上を再現するために、次のようなものを考える。まず、2つのエネルギー状態 E(x)、E(y) における自由度 x と y の差分を Δx として表す。そして、遷移後の自由度をサンプルする代わりに、この差分の各成分を一様分布からサンプルする。
y=x+ΔxΔxi∼U(−ci,+ci)
その上でエネルギーの差分 ΔE=E(x+Δx)−E(x) を計算した上で、
-
もしも ΔE≤0 ならば遷移後の自由度を受け入れる: x←x+Δx
-
さもなくば、確率 exp(−βΔE) で x←x+Δx
とする。こうして生成される自由度の系列 {xi}i=1n は、確率分布 P(x) に従う。
メトロポリス法
以上の考察から、次のようなアルゴリズムが得られる。
Algorithm 1: Metropolis method.
1.2.3.4.5.6.7.8.9.10.X←{}for t∈{1,2,…,n}:for i∈{1,2,…,N}:Δxi∼U(Δxi∣−ci,ci)ΔE←E(x+Δx)−E(x)r∼U(r∣0,1)if exp(−βΔE)>r:x←x+ΔxX←X∪{x}returnX
このアルゴリズムにより確率分布 P(x) に従う乱数列 {xi}i=1n を生成する方法をメトロポリス法という。ここに P(x)=exp(−βE(x)) を用いて書き換えを行なえば次のアルゴリズムに帰着する。