辺の長さが2のべき乗である2次元および3次元の格子上でランダムな自己回避歩行を生成するコードはどこにありますか?ウォークはラティス上のすべてのポイントを通過する必要があります。具体的には、またはグリッドグラフ上でランダムなハミルトニアンパスを見つけるにはどうすればよいですか?
分布は完全に均一である必要はありませんが、一般的に格子はしわに見えるはずです。パスを生成するために使用される方法は、直線の非常に長いストレッチを生成する可能性が低い必要があります。
辺の長さが2のべき乗である2次元および3次元の格子上でランダムな自己回避歩行を生成するコードはどこにありますか?ウォークはラティス上のすべてのポイントを通過する必要があります。具体的には、またはグリッドグラフ上でランダムなハミルトニアンパスを見つけるにはどうすればよいですか?
分布は完全に均一である必要はありませんが、一般的に格子はしわに見えるはずです。パスを生成するために使用される方法は、直線の非常に長いストレッチを生成する可能性が低い必要があります。
回答:
手順については、長くコンパクトな格子鎖を効果的に生成するための組み合わせアルゴリズムで説明しています。
2次元グリッドグラフ上のハミルトニアンパスをサンプリングするアルゴリズムの2つのjavascript実装は次のとおりです:http : //clisby.net/projects/hamiltonian_path/およびhttp://clisby.net/projects/hamiltonian_path/hamiltonian_path_v1.html(これは私のコード。最初のリンクの実装にはより多くの機能がありますが、2番目のリンクでは、パスでアクセスした一連のサイトをダウンロードできます。
JavaScriptプログラムは、Richard Oberdorf、Allison Ferguson、Jesper L. Jacobsen、JanéKondev、Physによる論文「長いコンパクトポリマーの二次構造」で説明されているバックバイト移動を使用して、n×nグリッド上にハミルトニアンパスを生成します。Rev. E 74、051801(2006)。APS(サブスクリプションが必要)またはhttps://arxiv.org/abs/cond-mat/0508094のarXivのプレプリントとして入手可能な紙
コードには、サンプルがどの程度均一分布に近づくかを決定する調整可能なパラメーターが含まれており、わずかな作業で3Dグリッドグラフにメソッド(バックバイト移動を伴うマルコフ連鎖モンテカルロ)を適応させることができます。