モンテカルロ法
このページではモンテカルロ法を説明しまています。
メトロポリス法については他のページで説明しているので、ここでは Hybrid Monte-Carlo 法を取り扱います。
(メトロポリス法の具体的なコードについては xy 模型もしくは Potts 模型のコードを参照するとよいでしょう)
Hybrid Monte-Carlo 法は格子QCD計算を実行するために開発された手法です。もちろんそれ以外にも使えます。
*詳しくは https://www.sciencedirect.com/science/article/abs/pii/037026938791197X?via=ihub 参照
量子色力学(QCD)は場の量子論のため原理的に無限次元の積分(つまり多重積分)を評価しなければなりません。
そのため時空間を離散化しても自由度が非常に大きく、単純な積分法は使えないという訳です。
以下に(不親切なほど)簡単な説明を載せておきます。
また[サンプルコード]に作成例を載せておきます。
* 使用言語は python で、規格化されたガウス関数の積分を実行しています(つまり解析解は1)。
Monte-Carlo 法
積分を確率に基づく統計和を用いて評価する手法で、特に直接的な評価の難しい多重積分に適しています。
確率の生成の仕方には様々な手法があり、Hybrid Monte-Carlo 法は効率の良い手法の一つです。
* スピン模型のような初めから積分でなく和を取る必要のある理論ではひと手間必要です。
例えば https://www.sciencedirect.com/science/article/abs/pii/S0010465521000904?via=ihub 参照。
Hamiltonian dynamics
Hybrid Monte-Carlo 法では fictitious な Hamiltonian dynamics を利用して(運動方程式を解いて)Markov chain を生成します。
Hamiltonian は理論の作用に動的変数の共役な運動量からなる項を加えたものを取ります。
その際、運動量は初め正規分布に従って生成して蛙飛び法を用いて動的変数と供に更新していきます。
そして最後に Metropolis test を行って動的変数の更新の accept/reject の評価をします。
(これにより効率よく、さらに運動方程式の離散化誤差を気にすることなく計算ができます)
Metropolis test
ΔE を Hamiltonian dynamics による動的変数の変更後と変更前の差としたとき、
minimum[1. exp(-ΔE)]
の確率で動的変数を更新することを Metropolis test と言います。
これにより離散化による誤差を補正できます。