星形算法最佳路径准则

时间:2018-08-14 15:51:51

标签: algorithm a-star

A star算法是否肯定以较低的成本返回路径? 我正在运行此算法,它提出了一条没有最低成本的路径(我发现了另一条成本较低的路径) 为什么它提出了这条道路而不是另一条(成本较低)? 除了成本标准外,它还有其他标准来选择提议的路径吗? 这是我要问的关于绿色路径成本较低的示例,但算法建议使用橙色路径 enter image description here

2 个答案:

答案 0 :(得分:2)

  

A star算法是否绝对返回路径少   费用?

是的,只要您使用了一致的启发式方法即可。如果是这样,有两种选择,

  1. 您的A *实现错误,因此该算法返回了次优路径。
  2. 您使用的启发式函数不一致,即,它不会为每个节点提供小于或等于到达目标的实际最短路径的估计。

它必须是这两者之一,因为事实证明,无论何时使用consistent heuristic function,A *总是会找到最佳路径。

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

  

f(绿色_1)= g(绿色_1)+ h(绿色_1)= 1 + 20 = 21

对应于橙色路径的所有f(n)值将具有较小的f(n)值,因此将不会选择green_1进行扩展。目标节点也将使用f(B) = g(B) + h(B) = 11 + 0添加到OPEN列表中并进行扩展,并且由于我们的启发式方法仅向我们承诺了一条绿色边的成本为21的路径,因此比已经发现的橙色路径还差,该算法将完成并返回次优解决方案。

答案 1 :(得分:1)

试探法必须返回小于或等于实际最小成本的值。否则,算法可能会返回错误的结果。