迷宫算法产生最困难的迷宫?

时间:2013-02-04 18:11:05

标签: algorithm maze

我正在使用递归回溯算法,但它总是产生非常容易的迷宫。什么算法产生最难解决的迷宫(如果合适,请包括有关编织和偏向的信息)?

5 个答案:

答案 0 :(得分:4)

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

首先,Recursive Backtracker是一个“完美的迷宫”算法;它只用一个解决方案生成迷宫。大多数关于迷宫生成的工作都与生成完美的迷宫有关,因此我将限制我的答案。

迷宫算法有很多很多变种和副作用。但实际上,只有12种基本的迷宫算法。我把它们列在这里的顺序是我个人(定性和传闻)发现最难到的:

  1. Kruskal's
  2. Prim's
  3. Recursive Backtracker
  4. Aldous-Broder
  5. Growing Tree
  6. Hunt-and-Kill
  7. Wilson's
  8. Eller's
  9. Cellular Automaton(简单)
  10. Recursive Division(非常简单)
  11. Sidewinder(可预测)
  12. Binary Tree(有缺陷)
  13. 我名单上前四名的难度没有太大差别。对于那个很抱歉。也许你的实施存在缺陷。最有可能的是,你擅长做迷宫。尝试将它们做大。

答案 1 :(得分:1)

虽然不是直接回答,this article on visualizing maze generation algorithms是必须注意的。

答案 2 :(得分:0)

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

Maze Classification

答案 3 :(得分:0)

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

尝试将ImageSize设置为4096,将NumCells设置为2047.结果将非常艰难。

答案 4 :(得分:-1)

泛洪填充算法是IEEE推荐的
这个算法有很多版本。 我谷歌了解洪水填充算法的实现 但我没有找到实施方法