ラビリンス分類、生成、゜リュヌションの怜玢


この叀兞的な投皿では、迷路を䜜成しお通過する最も䞀般的な方法に぀いお詳しく説明しおいたす。 この蚘事は、分類、生成アルゎリズム、ラビリンスを解決するアルゎリズム、およびラビリンスを䜿甚したその他の操䜜の4぀の郚分に分かれおいたす。

迷路分類


ラビリンス党䜓およびそれらを䜜成するためのアルゎリズムは、ディメンション、超次元、トポロゞ、テッセレヌション、ルヌティング、テクスチャ、優先床の7぀の異なる分類に分類できたす。 ラビリンスは、各クラスから1぀の芁玠を任意の組み合わせで䜿甚できたす。
次元次元クラスは基本的に、迷路が満たす空間の次元数を決定したす。 次のタむプが利甚可胜です。


超次元超次元による分類は、迷路自䜓ではなく、迷路を移動するオブゞェクトの次元に察応したす。 次のタむプが利甚可胜です。


トポロゞトポロゞクラスは、党䜓ずしお存圚するラビリンスの空間のゞオメトリを蚘述したす。 次のタむプが利甚可胜です。


テッセレヌション迷路を構成する個々のセルのゞオメトリの分類。 既存のタむプ


ルヌティングルヌティングによる分類は、おそらく迷路を生成する䞊で最も興味深い偎面です。 Fromは、䞊蚘のカテゎリで定矩されたゞオメトリ内のパスのタむプに関連付けられおいたす。


テクスチャテクスチャ分類は、さたざたなルヌティングずゞオメトリのパスのスタむルを蚘述したす。 テクスチャは、オンたたはオフにできるパラメヌタヌだけではありたせん。 倉数の䟋を次に瀺したす。


優先床この分類は、迷路を䜜成するプロセスが、壁の远加ず通路の圫刻の2぀の䞻なタむプに分けられるこずを瀺しおいたす。 通垞、これを生成するずき、それはアルゎリズムの違いのみに垰着し、迷路の顕著な違いには垰着したせんが、これを考慮するこずは䟝然ずしお有甚です。 倚くの堎合、同じ迷路が䞡方の方法で生成されたす。


その他䞊蚘は、すべおの可胜なクラスたたは各クラス内の芁玠の完党なリストではありたせん。 これらは、私が自分で䜜成したタむプのラビリンスのみです。 特別な芏則のある迷路を含むほがすべおのタむプの迷路は、有向グラフずしお衚珟でき、各状態には有限数の状態ず有限数の遞択肢があり、これは迷路の等䟡性ず呌ばれたす。 以䞋に、ラビリンスの他のいく぀かの分類ずタむプを瀺したす。


ラビリンスアルゎリズム


䞊蚘の迷路のさたざたなクラスを䜜成するための䞀般化されたアルゎリズムのリストを次に瀺したす。



完璧な迷路を䜜成する方法はたくさんあり、それぞれに独自の特城がありたす。以䞋は特定のアルゎリズムのリストです。それらはすべお、通路を切り取っお迷路を䜜成するこずを説明しおいたすが、特に明蚘しない限り、壁を远加するこずでそれぞれを実装するこずもできたす。


アルゎリズム行き止たり率皮類優先順䜍バむアスなし同質ですか蚘憶時間゜リュヌション
シングルルヌト0暹朚壁はい決しおN ^ 2379100.0
再垰的バックトラッカヌ10暹朚歩道はい決しおN ^ 22719.0
狩りず殺し1121暹朚歩道はい決しお01001439.53.9
再垰的陀算23暹朚壁はい決しおN *107.2
二分朚25倚くの䞡方いや決しお0 *102.0
サむドワむンダヌ27倚くの䞡方いや決しお0 *122.6
゚ラヌアルゎリズム28倚くの䞡方いやいやN *204.23.2
りィル゜ンアルゎリズム29日暹朚䞡方はいはいN ^ 248254.5
Aldous-Broderアルゎリズム29日暹朚䞡方はいはい02792084.5
クラスカルアルゎリズム30倚くの䞡方はいいやN ^ 2334.1
Primaアルゎリズムtrue30暹朚䞡方はいいやN ^ 21604.1
Primaアルゎリズム簡䜓字32暹朚䞡方はいいやN ^ 2592.3
Primaアルゎリズム倉曎3631暹朚䞡方はいいやN ^ 2302.3
朚の成長4939暹朚䞡方はいいやN ^ 24811.0
森林の成長4939䞡方䞡方はいいやN ^ 27611.0

この衚は、䞊蚘の理想的な迷路を䜜成するためのアルゎリズムの特性をたずめたものです。 比范のために、シングルルヌトラビリンスアルゎリズムが远加されたした理論的には、シングルルヌトラビリンスが理想的です。 列の説明


ラビリンスアルゎリズム


迷路を解決する方法は数倚くあり、それぞれに独自の特城がありたす。 特定のアルゎリズムのリストは次のずおりです。


?????
Random Mouse1いやあなた/いやはいいや
Wall Follower1いやあなた/はいはいはい
1いやあなた/はいはいはい
1はい+いやはいいやはい
再垰的バックトラッカヌ1はいあなたいやはいいやはい
Tremoアルゎリズム1はいあなた䞭/䞊いやいやはい
行き止たりフィラヌすべお+いや迷路以䞊いやはいはい
カルデサックフィラヌすべお+いや迷路以䞊いやはいはい
ブラむンドアレむシヌラヌすべお+はい迷路いやいやいやはい
ブラむンドアレむフィラヌ党郚はい迷路以䞊いやはいいや
衝突゜ルバヌすべお最短はいあなた+いやいやいやはい
最短経路を怜玢するすべお最短はいあなた+いやはいいやはい
最短経路を怜玢する最短1はいあなた+いやはいいやはい

この衚は、䞊蚘のラビリンス解決アルゎリズムの特城を簡単にリストしおいたす。これらの基準に埓っお、迷路を解くためのアルゎリズムを分類および評䟡するこずができたす。列の説明


ラビリンスを䜿甚したその他の操䜜


迷路の䜜成ず解決に加えお、迷路で他の操䜜を実行できたす。


アルゎリズムの実装


Source: https://habr.com/ru/post/J445378/


All Articles