Miklix

ウィルソンのアルゴリズム迷路ジェネレーター

出版された: 2025年2月16日 19:32:00 UTC
最終更新日 2026年1月12日 9:03:18 UTC

ウィルソンのアルゴリズムを用いて完璧な迷路を作成する迷路ジェネレータです。このアルゴリズムは、与えられたサイズのすべての可能な迷路を同じ確率で生成するため、理論上は様々なレイアウトの迷路を生成できます。しかし、長い迷路よりも短い迷路の方が可能性としては高いため、実際には短い迷路の方が多く見られます。

このページは、できるだけ多くの人がアクセスできるように、英語から機械翻訳されたものです。残念ながら、機械翻訳はまだ完全な技術ではないため、エラーが発生する可能性があります。もしよろしければ、こちらでオリジナルの英語版をご覧ください:

Wilson's Algorithm Maze Generator

ウィルソンのアルゴリズムは、ループ消去型ランダムウォーク法であり、迷路作成のための一様全域木を生成します。これは、与えられたサイズのすべての可能な迷路が等確率で生成されることを意味し、偏りのない迷路生成手法となります。ウィルソンのアルゴリズムは、同一の特性を持つ迷路を生成するため、オルダス=ブローダーアルゴリズムの改良版と考えることができますが、実行速度がはるかに速いため、ここではオルダス=ブローダーアルゴリズムを実装していません。

完全な迷路とは、迷路のどの地点からどの地点へも、ちょうど1本の道がある迷路のことである。つまり、堂々巡りにはならないが、行き止まりにはしばしば遭遇し、引き返してくることを余儀なくされる。

ここで生成される迷路マップには、スタートとゴールの位置がないデフォルトバージョンも含まれています。迷路のどの地点からでも、他のどの地点からでも解があります。インスピレーションを得たい場合は、スタートとゴールの推奨位置を有効にし、その2つの間の解を見ることもできます。


新しい迷路の生成








ウィルソンのアルゴリズムについて

ループ消去ランダムウォールを使用して均一スパニングツリーを生成するウィルソンのアルゴリズムは、David Bruce Wilson によって作成されました。

ウィルソンは1996年、確率論におけるランダムスパニングツリーとマルコフ連鎖の研究中にこのアルゴリズムを初めて導入しました。彼の研究は主に数学と統計物理学の分野でしたが、このアルゴリズムは完全に均一な迷路を生成できることから、迷路生成に広く採用されています。

ウィルソンのアルゴリズムによる迷路生成の仕組み

ウィルソンのアルゴリズムは、ランダム ウォークを使用して未訪問のセルからパスを繰り返し作成することにより、最終的な迷路がループなしで完全に接続されることを保証します。

ステップ1: 初期化

  • 壁で埋め尽くされたグリッドから始めましょう。
  • すべての可能なパッセージセルのリストを定義します。

ステップ2: ランダムな開始セルを選択する

  • 任意のセルをランダムに選び、訪問済みとしてマークします。これは、生成時に迷路の開始点として機能します。

ステップ3: ループ消去によるランダムウォーク

  • 訪問されていないセルを選択し、ランダム ウォーク (ランダムな方向への移動) を開始します。
  • ウォークがすでに訪問したセルに到達した場合、パス内のループをすべて消去します。
  • ウォークが訪問済み領域に接続したら、パス内のすべてのセルを訪問済みとしてマークします。

ステップ4: すべてのセルが訪問されるまで繰り返します。

  • すべてのセルが迷路の一部になるまで、未訪問のセルを選択し、ランダム ウォークを実行し続けます。

さらに読む

この投稿が気に入った場合は、次の提案も気に入るかもしれません:


BlueskyでシェアFacebookでシェアLinkedInでシェアTumblrでシェアXでシェアLinkedInでシェアPinterest にピン留めする

ミケル・クリステンセン

著者について

ミケル・クリステンセン
ミッケルはmiklix.comの開発者でありオーナーです。プロのコンピューター・プログラマー/ソフトウェア開発者として20年以上の経験を持ち、現在はヨーロッパの大手IT企業に常勤している。ブログを書いていないときは、さまざまな興味、趣味、活動に余暇を費やしている。