2013-02-04 96 views
4

我正在玩递归回溯算法,但它总是产生非常容易的迷宫。什么算法产生最难的迷宫来解决(如果合适,请包括关于辫子和偏向的信息)?迷宫算法生成最困难的迷宫?

+5

定义“最难”。 –

+0

需要最长的时间来解决一个人:)。 – John

+1

好的,但是在您有机会找到它的算法之前,您需要将其转换为客观度量标准! –

回答

-1

洪水填充算法就是IEEE建议。

该算法有很多版本。 我谷歌填充算法的实现。
但我没有找到实施

4

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

首先,递归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(有瑕疵)

没有在难度很大的差异我名单上的前四名。对于那个很抱歉。您的实施可能存在缺陷。最有可能的是,你只是擅长做迷宫。尝试让它们变大。

+3

完美的迷宫更困难的假设是错误的。在死胡同里,你可以回溯,如果有相对观点的解决方案,一个带有循环的迷宫就很难解决,因为它不会如此明显,你走在圈子里反对走进死胡同。 – Madmenyo

+0

这是一个有趣的观点。但是我发现关于生成非完美迷宫的信息很少,所以我修改了我的答案以表明这一点。 – theJollySin

+0

大声笑,我实际上正在寻找一个。现在我只记得当我开始回溯瓷砖并在稍后切割墙壁时。它有点作用,但它不觉得很干净。 – Madmenyo

1

虽然不是一个直接的答案,this article on visualizing maze generation algorithms是一个必须的手表。

+0

总结每个人。如果该链接死亡,你的答案也会如此。 –

+1

认真吗?总结一个可视化?你想每个可视化的文字描述?一般来说, –

+0

解释它显示的内容。 – Ajay