使用启发式算法在A *中找到多少次优路径可能会过高估计剩余距离?

时间:2014-10-24 15:19:30

标签: algorithm optimization graph shortest-path a-star

考虑使用A *算法,其中启发式可以高估几米的剩余距离。可能会发生最终路径比最短路径长几公里吗?你能给出一个图形的例子,它会发生什么样的图形? 欧几里德(直线)距离可能高估剩余距离的情况是:

  • 图形顶点位于平面上的(x,y)坐标中,其中x和y是浮点
  • 图形的某些顶点之间存在一些浮点长度的弧。弧的长度不小于其顶点之间的欧几里德距离(但对于弯曲/非直弧可以更大)
  • 然而,在运行A *算法时,你使用整数运算和向下舍入,而A *估计是向上舍入的(这是不合理的,但只是差异有多小的一个例子):所以你围绕每个弧的长度降至整数米数,并且您将A *估计值舍入到整数米数

是否存在一个公式,该公式表明最终路径的次优性的上限给出了A *启发式高估剩余距离的上限?

1 个答案:

答案 0 :(得分:3)

A *在它检索到的部分答案时返回(这是到达目标的最小估计总距离的部分答案)实际上达到了目标。标准A *保证找到正确答案,因为通过启发式的定义,到达目标的所有估计总距离都是下限,因此其他答案都不能做得更好。

假设答案的启发式实际上将以总距离T结束,可以达到KT,其中K> 1。 1.如果A *以成本KT检索答案并认为答案已成功,因为答案达到目标,则可能不是最佳答案。我们知道仍然在池中的每个部分答案至少花费KT,但是由于启发式,启发式KT的答案实际上可能变成总成本T <1的答案。 KT(但不能以任何更便宜的成本变成答案)。因此,使用这种启发式方法,A *返回的答案可能是最佳答案的K倍,但不会更多。

这实际上总结在维基百科条目http://en.wikipedia.org/wiki/A _search_algorithm #Bounded_relaxation中 - 故意使用这种启发式方法来加速A ,但代价是返回更糟糕的答案。