A *与曼哈顿距离或欧几里德距离进行迷宫解决?

时间:2017-05-11 04:40:49

标签: path-finding maze euclidean-distance

我通过图像处理获得了所有可能的迷宫路径。现在,我想使用A *算法来找到迷宫的最短路径。但是,我对欧几里德距离是否是更好的启发式或曼哈顿距离感到困惑。它是依赖于迷宫类型还是独立于迷宫类型的启发式选择?哪个距离(曼哈顿或欧几里德)将是以下可能路径的好选择,为什么?请建议。

PS。 (如果您有任何参考,请添加您的参考。这将有所帮助)

enter image description here

2 个答案:

答案 0 :(得分:2)

Heuristic的目标是向探路者提供背景信息。这些信息越准确,探路者就越有效率。

你有两个相反的要求来获得一个好的启发式,这很好,因为它意味着有一个最佳点。他们在这里:

  • 启发式必须是admissible,这意味着永远不会高估距离。否则,算法将被破坏,并且可能返回甚至不是最佳的路径。
  • 启发式必须返回可能的最大距离。一个低估了细胞剩余路径的启发式方法,当另一个细胞可能更好时,它会支持该细胞。

当然,最佳启发式算法会返回准确,正确的长度(通常无法实现或无法达到目的),因为它无法在不停止允许的情况下返回更长的路径。

在您的情况下,看起来您正在处理4连接的网格。在这种情况下,曼哈顿距离将是比欧几里德距离更好的度量,因为与曼哈顿相比,欧几里得将低估所有位移的成本(由于Pythagorean Theorem)。

除了'图表是4连通网格'之外没有任何进一步的知识,没有比曼哈顿更好的指标。但是,如果你设法获得更多的数据(障碍物密度,“高速公路”等),那么你可以设计一个更好的启发式方法 - 尽管保持可接受性本身就是一个非常难的问题。

编辑仔细观察,看起来你左下角有一个倾斜的顶点。如果是这样,那你就不是4连通图,那么你必须使用欧几里德距离,因为曼哈顿是不可接受的。

答案 1 :(得分:-2)

尚不清楚在图形上对角移动是否可以提高物理速度:向上移动一个块与向右对角移动一个块是否需要相同的时间?如果是这样,切比雪夫距离最好https://en.wikipedia.org/wiki/Chebyshev_distance。否则使用欧几里得距离