星型算法最优路径准则

A star algorithm optimal path criteria

A星算法return一定是成本最低的路径吗? 我是 运行 这个算法,它提出了一条没有最低成本的路径(我找到了另一个成本更低的路径) 为什么它提出这条路径而不是另一条路径(成本更低)? 除了成本标准之外,它是否还有其他标准来选择建议的路径? 这是我要问的关于绿色路径成本较低但算法建议使用橙色路径的示例

启发式必须 return 一个小于或等于实际最小成本的值。否则算法可能 return 一个错误的结果。

Does the A star algorithm return definitely the path with the less cost ?

是的,只要您使用了一致的启发式算法。如果是,有两种选择,

  1. 您的 A* 实现是错误的,因此算法 return 是次优路径。
  2. 您使用的启发式函数不一致,即它没有对小于或等于到达目标的实际最短路径的每个节点进行估计。

它必须是这两者之一,因为 A* 被证明总是在使用 consistent heuristic function 时找到最佳路径。

假设绿色路径中的第一个节点,从 A 到达的成本为 1,根据您使用的函数 h(green_1) = 20 具有启发值。该值高估了从该节点到目标节点 B 的真实最短路径,即 6。现在让我假设橙色路径中所有节点的启发式估计对应于从该节点到 B 的真实最短路径。因此,

f(green_1)= g(green_1) + h(green_1) = 1 + 20 = 21

所有橙色路径对应的f(n)值都会有较小的f(n)值,因此不会选择green_1进行扩展。目标节点也将被添加到带有 f(B) = g(B) + h(B) = 11 + 0 的 OPEN 列表中并展开,并且由于我们的启发式只向我们承诺了一条从绿色端开始的成本为 21 的路径,这比已经找到的橙色路径更差,该算法将完成并且 return 次优解决方案。
.