【发布时间】:2012-06-18 06:52:08
【问题描述】:
我搜索了 A* 的算法/伪代码,我按照它进行了编码。我使用曼哈顿距离作为 h(n)。 ( f(n) = g(n) + h(n) ) 这就是结果,
当没有墙挡路时,总是会发生这种情况,但是当我放置很多墙时,它似乎走的是最短路径。这是最短路径吗?我的意思是为什么它不像下面这个?
这个也是 A* 曼哈顿,它们的尺寸相同 (19x19)。这是来自http://qiao.github.com/PathFinding.js/visual/
【问题讨论】:
-
嗯,同样的距离,33 个立方体……除非我数错了。
-
因为你不能走对角线,所以你不会比第一个例子更短。您可以获得许多其他方式(例如第二种方式),它们具有相同的距离并且看起来更短,但事实并非如此。您始终必须向右传递 16 个块,向下传递 16 个块(对于您给出的示例)。
-
啊,还有其他最短路径。
-
我的意思是,第一个也是最短路径,但第二个看起来更短,因为路径直接通往目标。 :)
-
这是最佳距离,因为您不使用对角线。如果您为每个单元格取 8 个邻居,则您的案例中的路径将是从头到尾的对角线。
标签: distance path-finding shortest-path a-star heuristics