与えられた境界ボックス内のランダムな自己回避格子サイクル


25

Slither Linkパズルに関連して、私は疑問に思っていました:正方形のセルのグリッドがあり、すべての可能な単純なサイクルの中で均一にランダムにグリッドエッジの単純なサイクルを見つけたいとします。n×n

これを行う1つの方法は、状態が正方形の集合であるマルコフチェーンを使用することです。境界は単純なサイクルであり、遷移は、反転するランダムな正方形を選択し、修正された正方形のセットがその境界。この方法で、単純なサイクルから他のサイクルに到達することができます(砲撃の存在に関する標準的な結果を使用)。これにより、最終的に均一な分布に収束しますが、どのくらいの速さですか?

または、より良いマルコフ連鎖、または単純なサイクルを選択するための直接的な方法がありますか?

ETA:私が探しているサイクルの数を計算するコードと、これらの数のいくつかのOEISへのポインターについては、このブログ投稿を参照してください。私たちが知っているように、カウントはランダム生成とほぼ同じであり、これらの数値の因数分解に明らかなパターンがなく、OEISエントリに式が存在しないことから、既知の単純な直接法はありそうにないことを推測します。しかし、それでも、このチェーンが収束する速さや、より良いチェーンが広くオープンしているかどうかという疑問が残ります。


1
OEISシーケンスによってカウントされるセットの境界は、必ずしも単純なサイクルではありません。たとえば、3x3の場合、218の1つは中央以外のすべての正方形を持ち、別の4つはさらに1つのコーナーを削除することによって与えられます。
コリンマッキーラン

1
2xnグリッドの場合、数値はoeis.org/A059020に記載されているとおりです。3xnについては、6,40,213,1049,5034,23984,114069,542295,2577870,12253948,58249011,276885683,1316170990,6256394122,29739651711,141366874247、...(OEISではない)であると確信しています。手動で計算するために転送行列を設定しましたが、機械生成の行列と比較し、それらが異なる唯一のエントリは、手動のものが正しく、機械のものが間違っていました。(これは3x3の場合に表示されます。マシンマトリックスでは、中央に穴のあるオクトミノが許可されていました。)
デビッドエップスタイン

1
そのシーケンスをNeil Sloaneに送信して、OEISに入れるようにしてください。
ピーターショー

1
@David:ありがとう。おそらく、転送マトリックス法をより徹底的に学ぶ時が来たのでしょう。
岡本芳雄

2
@David:パズルへのリンクで私の人生の2時間を無駄にしただけです。
domotorp

回答:


1

グラフのサイクル数のカウントのみを使用してサイクルをランダムに選択しているため、この数のランダム近似があれば、ほぼ均一にサイクルを選択できるようです。

グラフのサイクル数ように注意エッジが含まれている、、のサイクル数に等しいに加えてから、単純なパスの数のにおける。したがって、 -パスの数の多項式時間近似では、一度に1エッジずつ増分的に構築していくと、多項式時間近似を実現できます。 G(u,v)G(u,v)uvG(u,v)uvG

実際には、サイクルを選択するためのより簡単な方法があると思います。ましょう周りの縁の全体グラフであるの正方形のグリッド。各エッジに対してそのエッジを含むサイクル数見つける(の数である -内のパス -)。次に、それを含むサイクル数で重み付けされたエッジをランダムに選択します。これは、ランダムに選択されたサイクルの最初のエッジになります。他のすべてのエッジは、一度に1つのエッジを拡張することにより選択されます。Gn×n(u,v)uvG(u,v)

ランダムサイクルの一部であるパスを選択したと仮定します。このパス上の頂点のセットをし、とパスの終点にします。また、ないの近傍のセットをとします(この特定のグラフには最大3つしかありません)。各について、誘導グラフ内の -パスの数を数えます。すると隣人、選択したの、だけ数えパスに加重を。エッジを追加CvsveNveCuNuvsG[V(C{vs,ve})]uve(ve,u) 選択したパスに1つ拡張します。

このようにして、多項式の数のエッジが選択され、それぞれが少数の多項式時間近似アルゴリズムの計算を必要とします。したがって、サイクルは均一に選択できます。

現在、高速パスカウント近似アルゴリズムのリファレンスを要求するstackexchangeの質問があります。これらのアルゴリズムは存在するが、まだ見つかっていないことをいくつかの場所で読みました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.