拡散モンテカルロ法

拡散モンテカルロ法（かくさんモンテカルロほう）または拡散量子モンテカルロ法（かくさんりょうしモンテカルロほう、英: Diffusion (quantum) Monte Carlo, DMC）は、シュレディンガー方程式を解く際にグリーン関数を使用する量子モンテカルロ法の1つ。DMCは理論的には数値厳密解を得ることが可能なアルゴリズムである。すなわち、所与の許容誤差の下で任意の量子系の正確な基底状態エネルギーを見つけることが理論的には可能である。実際には、ボソンについては系のサイズに対して多項式スケールの計算量が必要とされる一方、フェルミオンについては、DMCは系のサイズに対して指数関数スケールの計算量が必要となる。したがって、原子や分子などの複数のフェルミオンからなる系について大規模DMCシミュレーションを行い厳密解を得ることは現実的には不可能である。ただし、固定ノード近似として知られる巧妙な近似を用いれば、非常に正確な結果を計算できる。 このアルゴリズムの開発動機を見るため、まず1次元ポテンシャル下の粒子のシュレディンガー方程式を考える。 i ∂ Ψ ( x , t ) ∂ t = − 1 2 ∂ 2 Ψ ( x , t ) ∂ x 2 + V ( x ) Ψ ( x , t ) {\displaystyle i{\frac {\partial \Psi (x,t)}{\partial t}}=-{\frac {1}{2}}{\frac {\partial ^{2}\Psi (x,t)}{\partial x^{2}}}+V(x)\Psi (x,t)} 方程式の表記を簡略化するため、下式で定義される演算子を導入する。 H = − 1 2 ∂ 2 ∂ x 2 + V ( x ) {\displaystyle H=-{\frac {1}{2}}{\frac {\partial ^{2}}{\partial x^{2}}}+V(x)} すると、前式は以下のように書ける。 i ∂ Ψ ( x , t ) ∂ t = H Ψ ( x , t ) , {\displaystyle i{\frac {\partial \Psi (x,t)}{\partial t}}=H\Psi (x,t),} ここで、 H {\displaystyle H} は演算子であり、単純な数値や関数とは異なることに注意が必要である。Eを数値として、HΨ = EΨを満たす、固有関数と呼ばれる特別な関数があり、これらの関数は定常状態と呼ばれる状態を表わしている。 すなわち、任意の点xにおいて、波動関数の振幅が時間経過により変化しない。波動関数全体にかかる位相は測定できないため、系は時間経過により変化しない。 通常、最も関心があるのはエネルギー固有値が最も低い波動関数、すなわち基底状態である。次式はシュレーディンガー方程式と同じエネルギー固有値を持つが、シュレーディンガー方程式の解関数が振動するのに対しこの方程式の関数は収束する。 − ∂ Ψ ( x , t ) ∂ t = ( H − E 0 ) Ψ ( x , t ) {\displaystyle -{\frac {\partial \Psi (x,t)}{\partial t}}=(H-E_{0})\Psi (x,t)} シュレーディンガー方程式と上式の差は、時間微分の係数が虚数単位ではなく−1であることと、基底状態エネルギーE0だけエネルギーオフセットが追加されている点である。 基底状態エネルギーは実際には方程式を解く前には未知だが、後述するように自己無撞着的に基底状態エネルギーを決定する方法がある。修正された方程式（虚時間シュレディンガー方程式とも呼ばれる) には、いくつかの優れた特性がある。まず、基底状態波動関数の推測が成功すれば、 H Φ 0 ( x ) = E 0 Φ 0 ( x ) {\displaystyle H\Phi _{0}(x)=E_{0}\Phi _{0}(x)} により時間導関数はゼロとなる。ここで、基底状態とは一致しないが基底状態と直交もしていない別の波動関数( Ψ {\displaystyle \Psi } )は、次のように固有関数の線形和として書ける。 Ψ = c 0 Φ 0 + ∑ i = 1 ∞ c i Φ i {\displaystyle \Psi =c_{0}\Phi _{0}+\sum _{i=1}^{\infty }c_{i}\Phi _{i}} これは線型微分方程式であるから、各要素のふるまいを個別に見ることができる。既に述べたとおり、 Φ 0 {\displaystyle \Phi _{0}} は定常である。 Φ 1 {\displaystyle \Phi _{1}} を考えると、 Φ 0 {\displaystyle \Phi _{0}} が最低エネルギー固有関数であることから、 Φ 1 {\displaystyle \Phi _{1}} に対応する固有値は E 1 > E 0 {\displaystyle E_{1}>E_{0}} を満たす。したがって、 c 1 {\displaystyle c_{1}} についての時間微分は負であり、最終的にはゼロに収束するので、基底状態のみが残る。このことから、 E 0 {\displaystyle E_{0}} を決定する方法も考えることができる。時間発展にともなう波動関数の振幅の変化を見守り、増加している場合にはエネルギーオフセットの推定値を減少させ、振幅が減少する場合は、エネルギーオフセット推定値を増加させればよい。 このように、適切に E 0 {\displaystyle E_{0}} を調整しながら時間発展させると任意のハミルトニアンの基底状態を得ることができる方程式が得られた。しかし、これを解くことは古典力学系を解くよりも依然難しい。なぜなら、単一粒子の一を時間発展させるだけでなく、波動関数全体を時間発展させなければならないからである。古典力学では、幅 τ {\displaystyle \tau } の時間間隔にわたり力が一定であると仮定すると、 x ( t + τ ) = x ( t ) + τ v ( t ) + 0.5 F ( t ) τ 2 {\displaystyle x(t+\tau )=x(t)+\tau v(t)+0.5F(t)\tau ^{2}} のようにして運動する粒子の軌跡をシミュレートすることができる。ひるがえって、虚時間シュレディンガー方程式では、グリーン関数と呼ばれる特殊関数を使用した畳み込み積分を使用して、 Ψ ( x , t + τ ) = ∫ G ( x , x ′ , τ ) Ψ ( x ′ , t ) d x ′ {\displaystyle \Psi (x,t+\tau )=\int G(x,x',\tau )\Psi (x',t)dx'} のようにして波動関数を時間発展させる。古典力学の場合と同様、時間間隔は微小にしなければグリーン関数が不正確になってしまう。粒子の数が増えると、すべての粒子のすべての座標を積分する必要があるため、積分の次元も増加してしまう。このような積分は、モンテカルロ積分（英語版）により評価することができる。 ^ Reynolds, Peter J.; Tobochnik, Jan; Gould, Harvey (1990). “Diffusion Quantum Monte Carlo”. Computers in Physics 4 (6): 662–668. Bibcode: 1990ComPh...4..662R. doi:10.1063/1.4822960.  ^ Anderson, James B. (1976). “Quantum chemistry by random walk. H 2P, H+3 D3h 1Aʹ1, H2 3Σ+u, H4 1Σ+g, Be 1S”. The Journal of Chemical Physics 65 (10): 4121. Bibcode: 1976JChPh..65.4121A. doi:10.1063/1.432868.  Grimm, R.C; Storer, R.G (1971). “Monte-Carlo solution of Schrödinger's equation”. Journal of Computational Physics 7 (1): 134–156. Bibcode: 1971JCoPh...7..134G. doi:10.1016/0021-9991(71)90054-4.  Anderson, James B. (1975). “A random-walk simulation of the Schrödinger equation: H+3”. The Journal of Chemical Physics 63 (4): 1499. Bibcode: 1975JChPh..63.1499A. doi:10.1063/1.431514.  B.L. Hammond, W.A Lester, Jr. & P.J. Reynolds (1994). Monte Carlo Methods in Ab Initio Quantum Chemistry. World Scientific Lecture and Course Notes in Chemistry. 1. World Scientific. doi:10.1142/1170. ISBN 978-981-4317-24-5