7

我一直在玩递归回溯算法,但它总是会产生非常简单的迷宫。什么算法产生最难解决的迷宫(如果合适,请包括关于辫子和偏向方向的信息)?

4

5 回答 5

7

定量定义迷宫的“难度”并不容易。所以让我定性。

首先,Recursive Backtracker 是一种“完美迷宫”算法;它生成具有一种且只有一种解决方案的迷宫。大多数关于迷宫生成的工作都与生成完美迷宫有关,所以我将把我的答案限制在这些方面。

迷宫算法有很多很多变体和分支。但实际上,只有 12 种基本的迷宫算法。我将它们按照我个人(定性和传闻)认为最困难的顺序列出在这里:

  1. 克鲁斯卡尔的
  2. 普里姆
  3. 递归回溯
  4. 奥尔德斯-布罗德
  5. 生长的树
  6. 猎杀
  7. 威尔逊
  8. 埃勒的
  9. 元胞自动机 (简单)
  10. 递归除法 (非常简单)
  11. 响尾蛇 (可预测)
  12. 二叉树 (有缺陷)

我的榜单前四名的难度差别不大。对于那个很抱歉。您的实施中可能存在缺陷。很可能,你只是擅长做迷宫。尝试使它们更大。

于 2014-04-24T20:28:55.930 回答
4

虽然不是一个直接的答案,但这篇关于可视化迷宫生成算法的文章是必看的。

于 2014-11-21T00:47:44.760 回答
1

深度优先搜索可以产生非常复杂的迷宫。这是一个开源 C++ 实现:https ://github.com/corporateshark/random-maze-generator

尝试设置ImageSize为 4096 和NumCells2047。结果将非常困难。

于 2014-05-23T13:33:26.867 回答
1

您可以从这里检查迷宫生成算法:

迷宫分类

于 2013-02-13T07:32:42.167 回答
-1

洪水填充算法是 IEEE 推荐的。

这个算法有很多版本。我在谷歌上搜索了洪水填充算法的实现。
但我没有找到实现

于 2013-02-28T04:29:36.677 回答