【问题标题】:By how much suboptimal can be path found with A* using heuristic which overestimates the remaining distance a little?使用 A* 可以找到多少次优的路径,使用启发式方法高估了剩余距离?
【发布时间】:2014-12-20 11:23:50
【问题描述】:

假设您使用 A* 算法,其中启发式算法可以将剩余距离高估几米。最终路径会比真正最短的路径长几公里吗?你能举一个发生这种情况的图的例子吗?它是什么样的图? 欧几里得(直线)距离会高估剩余距离的一个场景是:

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

在给定 A* 启发式算法高估剩余距离的上限的情况下,是否有一个公式可以说明最终路径的次优性上限?

【问题讨论】:

  • 是算法题,还有相关题:stackoverflow.com/questions/1012691/…
  • 有趣的问题!我不知道为什么这被否决了。
  • 一个有趣的问题,但是:(1)我看不出最终路径中的错误如何大于启发式高估距离的量,否则无论如何都会检查错误估计的路径(假设实际距离的测量是准确的),并且(2)这似乎与SO无关,可能更适合cs.stackexchange.com甚至@987654323 @.
  • cs.stackexchange.com 是 beta 版本,而 Stackoverflow 不是,Stackoverflow 有标签“算法”、“图形”、“最短路径”和“a-star”。维基百科有一些东西,但我认为它并没有说明一切:“搜索算法因此找到的路径的成本最多可以是图中成本最低路径的 ε 倍”。

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


【解决方案1】:

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

假设一个答案的启发式方法实际上最终的总距离 T 可以达到 KT,其中 K > 1。如果 A* 检索到成本为 KT 的答案并认为它已经成功,因为答案达到了目标,那么它可能不是最好的答案。我们知道仍然在池中的每个部分答案的成本至少为 KT,但由于启发式,具有启发式 KT 的答案实际上可能会变成总成本 T

这实际上在 Wikipedia 条目http://en.wikipedia.org/wiki/A_search_algorithm#Bounded_relaxation 中进行了总结 - 故意使用这种启发式方法是加速 A 的一种方法,但代价是返回更差的答案。

【讨论】:

  • 这个解释我想了很久。这是否也意味着如果 A* 启发式高估剩余距离不超过 1 米,那么 A* 找到的结果路径不能比最短路径长不超过 1 米?
  • 我希望这也是出于同样的原因 - 当您返回成本 K 的答案时,池中的所有内容都具有至少 K 的启发式,因此会导致带有成本的完整答案至少 K-1。
猜你喜欢
  • 2013-06-02
  • 1970-01-01
  • 2020-01-14
  • 2012-02-26
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 2011-08-06
相关资源
最近更新 更多