目次

前のトピックへ

概要

次のトピックへ

インストール手順

このページ

原理・アルゴリズム

経路積分サンプリング

DSQSSでは,分配関数を

\[{\small Z\equiv \mbox{Tr}\,e^{-\beta H}=\sum\limits_S {W\left( S \right)} }\]

と経路積分表示したのち,マルコフ過程によって状態 S を確率的時系列的に発生し,これをサンプリングしている.ここで H は系を記述するハミルトニアンであり,「状態」とは d+1 次元時空上で定義された古典変数の場である.(モデルが定義されている空間次元を d として,これに虚数時間軸を加えたものを d+1 次元時空と呼ぶことにする.)「状態」を1つ定めることは,スピンや粒子の空間的な配置が虚数時間の増加に伴って変化する経路を1つ定めることと等価であることから,状態 S は「経路」とも呼ばれる.ボーズ粒子系のように局所的な粒子数保存則が成立する場合に,状態を粒子の存在位置を実線でつないだ軌跡(=世界線)の集まりとして視覚化することが多いため,経路積分のサンプリングによるモンテカルロ法は「世界線モンテカルロ法」とも呼ばれる.マルコフ過程の遷移確率は,定常分布における状態の出現頻度が上記の経路積分表示における重み W(S) に比例するように定義される.マルコフ過程で順次出現する状態を St(t=1,2,3....) としたとき,演算子 Q の期待値

\[{\small \left\langle Q \right\rangle \equiv {\mbox{Tr}\left({e^{-\beta H}Q} \right)}/ \mathord{\mbox{Tr}\left({e^{-\beta H}} \right)}}\]

Q に対応する観測量 Q(S) の統計的期待値

\[{\small \left\langle Q \right\rangle_{\mbox{MC}} =\frac{1}{N_{\mbox{smp}} }\sum\limits_{t=N_{\mbox{eq}} +1}^{N_{\mbox{smp}} +N_{\mbox{eq}} } {Q\left({S_{t} } \right)}}\]

によって近似される.この近似は初期条件の影響による系統誤差と,サンプリングによる統計誤差を含む.系統誤差が無視できるためには, Neq が初期緩和時間よりも大きいことが必要であり,その限りで収束は指数関数的に速やかである.一方統計誤差はサンプル数を大きくしたときに,この 1/2 乗に逆比例して小さくなることが期待される.

ワーム更新法

マルコフ過程の遷移確率の構成方法すなわち状態更新方法にはいろいろな種類があり,それぞれ利点・欠点がある.スピン系,ボーズ系のシミュレーションで用いられる代表的な更新方法はループ更新とワーム更新である.ループ更新は全系をループに分割してループごとに状態更新するものであり,時空分割による並列化が可能であるが,一様磁場中での反強磁性体やボーズ系では効率が著しく低下して使えない.一方ワーム更新は,全系に保存則を破る点(ワーム)を2つ導入して,これらの点を移動させることで状態を更新する方法である.ワームは非対角成分のみをもつ演算子に対応している.代表的な例は,各点での粒子数が対角化されている表示を用いたボーズ系のシミュレーションであり,この場合には生成消滅演算子に対応するワームが用いられる.そのとき,ワームの前後の虚数時刻では粒子数が1だけ異なる.つまりこのワームが移動すると,ワームが通過した部分の粒子数は通過前と1だけ異なることになり,ワームの移動によって状態が更新されていく.ワーム更新法は,上記のループ更新に比べると広い範囲のモデルで有効だが,時空分割による並列化ができない.DSQSS ではワーム更新法を採用しているので,磁場のかかっていないスピン系の問題などループ更新でも対応可能な問題について,大規模かつ高速の計算を必要とする場合には,ALPS/Looper など,ループ更新に基づくプログラムの利用を検討すべきである.

固定バーテックス法

ワーム更新法では,ワームの生成,ワームの時間方向の移動,ワームの空間方向の移動(散乱),ワームの消滅などからなるサイクルが更新の時間的単位となる.このサイクルを繰り返すことで逐次状態が更新されていく.このうちワームの空間方向の移動を実現する仕方として,移動の起こる場所(バーテックス)をあらかじめ全系に配置しておくやり方とワームの進行方向に必要に応じて配置する方法があるが,DSQSS では,バーテックスをあらかじめ配置しておく方式を採用している.したがって,DSQSS における状態更新の基本的単位(1モンテカルロステップ)は,(1)バーテックスの配置,(2)ワームの生成から消滅までの(複数)サイクル,の2つのフェーズからなる.一般に1ワームサイクルでは系の一部しか更新されないために,1サイクルごとに全系のバーテックス配置を更新するのは無駄である.このため,上記(2)のワームによる状態更新フェーズでは,複数回ワームサイクルを繰り返して,結果として1モンテカルロステップ内に,系のすべての時空点を平均して1回ワームが通過するようにすべきである.DSQSS では,サイクル数を NCYC として自動計算している.

バーテックス配置

分配関数に現れる重み W(S) は格子点 i,j 間の相互作用を Hij として,

\[{\small W\left( S \right)=\prod\limits_{(ij),\tau } {\left\langle {S_{i} \left( {\tau +\Delta \tau } \right)S_{j} \left( {\tau +\Delta \tau } \right)\left|{e^{-\Delta \tau \,H_{ij} }}\right|S_{i} \left( \tau \right)S_{j} \left(\tau \right)} \right\rangle }}\]

と書ける.ここで,虚数時間 τ に関する積は Δτ を単位として離散化されているとする.(これは説明のためであって,実際の計算の連続虚数時間で行われる.) Hij で相互作用する2実空間の2点 i,j に関して,虚数時間区間 [0,β) は状態 Si(τ)Sj(τ) に不連続変化がある時刻によって有限個の区間に分割される.各区間内では,2点の状態は (Si,Sj) は一定であり,密度

\[{\small \left\langle {S_{i} S_{j} \left| {E_{0} -H_{ij} } \right|S_{i} S_{j} } \right\rangle}\]

でバーテックスが一様ランダムに確率的に配置される.ここで, E0 はある定数であり,上記の密度が正である限り任意にとることができる.状態一定の区間に配置されるこれらのバーテックスに加えて,状態変化(キンク)のある虚数時刻に対しては,確率1でその時刻にバーテックスが配置される.バーテックスはファインマンダイアグラムを用いた分配関数の展開における相互作用グラフに対応している.

ワームの生成・消滅

ワームの生成はまず時空から一様ランダムに1点を選び,この点にワーム対を生成するかどうかを判定する.消滅はこの逆過程であり,ワーム対が同じ時空点に来た時に一定の確率で消滅する.生成と消滅の間には詳細つり合いが満たされなければならない.(一様ランダムに時空点が選択されたとして)生成が選択される確率を Pcreate ,(ワーム対が同じ時空点にきたとして)消滅が選択される確率 Pannihilate とすると,詳細つり合いは,

\[{\small \frac{1}{MN}\times p_{\mbox{create}} =p_{\mbox{annihilate}} \times \eta ^{2}\times \left\langle {S_{i} \left( \tau \right)\left| {Q_{i} }\right|S_{i}^{\prime }\left( \tau \right)} \right\rangle \left\langle{S_{i}^{\prime }\left( \tau \right)\left| {Q_{i}^{\dagger }} \right|S_{i}\left( \tau \right)} \right\rangle}\]

である.ここで, は任意に選ぶことのできるすべての生成消滅過程に共通の定数である.DSQSS では,標準として, Pannihilate=1 ととり,

\[{\small p_{\mbox{create}} ={\left| {\left\langle {S_{i} \left( \tau \right)\left| {Q_{i} } \right|S_{i}^{\prime }\left( \tau \right)} \right\rangle }\right|^{2}} /max {\left| {\left\langle {S_{i} \left( \tau \right)\left| {Q_{i} } \right|S_{i}^{\prime }\left( \tau \right)} \right\rangle }\right|^{2}}}\]

とすることで詳細釣り合いをみたしているが, algorithm.xmldla_alg を使わずにユーザが独自に編集することによって,ユーザの指定した生成消滅確率でシミュレーションを行うことも可能である.

ワームの散乱

バーテックスにおけるワームの散乱はバーテックス自体の重みとワームの持つ重みの間に詳細つり合いが成立するように決定される.たとえば,虚数時刻が増加する方向にサイト i 上を移動してきたワームが虚数時刻 τ にあるバーテックスにあたったとし,衝突後はサイト j を虚数時刻が減少する方向に出ていく過程を考えると,この場合,このような衝突が選ばれる確率 P と,逆向きの衝突が選ばれる確率 P’ との間には

\[\begin{split}{\small \begin{array}{l}P\times \left\langle {S_{i} \left( {\tau +0} \right)S_{j} \left( {\tau +0}\right)\left| {E_{0} -H_{ij} } \right|S_{i} \left( \tau \right)S_{j} \left( \tau \right)} \right\rangle \left\langle {S_{i} \left( \tau \right)\left| {Q_{i} } \right|S_{i}^{\prime }\left( \tau \right)} \right\rangle \\ \,\,\,\,\,\,\,\,={P}'\times \left\langle {S_{i} \left( {\tau +0} \right)S_{j} \left( {\tau +0} \right)\left| {E_{0} -H_{ij} } \right|S_{i} ^{\prime }\left( \tau \right)S_{j}^{\prime }\left( \tau \right)} \right\rangle \left\langle {S_{j}^{\prime }\left( \tau \right)\left| {Q_{j} } \right|S_{j} \left( \tau \right)} \right\rangle \\ \end{array}}\end{split}\]

の関係が満たされなければならない.ここで Qi,Qj はワームを表す非対角演算子, Si’(τ),Sj’(τ) はワームが通過した後のそれぞれのサイ,時刻の状態である.DSQSSでは, algorithm.xml ファイルをユーザが直接編修することによって,任意の散乱確率を指定できるほか,ハミルトニアンを指定したときに,このような条件を満たす散乱確率を自動的に計算する機能を持っている.