【问题标题】:Weighted A* on wikipedia维基百科上的加权 A*
【发布时间】:2013-10-12 03:01:44
【问题描述】:

我想我在这个 wiki page 上发现了一个问题:

我认为是`

成本最多为 ε 倍

加权A*算法部分应该是

成本小于 ε 倍

改为。

因为这里假设 ε > 1。但我不确定,只是想听听任何人对此的看法..

提前感谢您的帮助:)

【问题讨论】:

  • @pnuts 不是最具描述性的原因...

标签: algorithm a-star


【解决方案1】:

我相信以“加权 A*。如果 ha(n) 为”开头的段落是正确的,并且保证找到的路径的成本最多是 eta 乘以最佳路径的成本是对您的一种保证想要 - 因为您正在寻找成本最低的路径并试图减少 CPU 时间,所以您正在接受次优(更高成本)的解决方案,但要保证成本不会太差 - 最多 eta 乘以成本最佳路径。

我确实认为在本段中使用 eta 与在上段中使用不一致 - 我不知道这是否是一个错误,或者它是否源于加权 A* 之间的不幸约定差异以及更一般的近似解的定义。

该段落与http://inst.eecs.berkeley.edu/~cs188/sp11/slides/SP11%20cs188%20lecture%204%20--%20CSPs%206PP.pdf的注释一致 - pdf第5页的底部并带有粗略的证明。当加权 A* 认为它有一个成本为 g(x) 的解决方案时,所有仍在运行的节点必须至少有一个预测成本 g(y) + eh(y)。为了获得最大可能的误差,假设 g(y) 为零并且 eh(y) = g(x) 得到正确的解 y,我们看到 A* 认为它找到的解是 y 的 e 倍——因为我们假设原始的 h() 是可接受的,因此是成本的上限。

【讨论】:

  • 谢谢你的帮助..其实我是想证明这个结论:在选择goal_node的时候,如果当前g(goal_node)不是最优的,那么一定有一个节点'm'在开集(边界)上的最优路径,这样:g(goal_node)+ωh(goal_node)=g(goal_node)+0 ≤ g(m)+ωh(m)c 所以我们得到g(goal_node ) c 如你所见,我只能证明严格相等,因为 ω(g(m)+h(m)) 应该大于 g(m)+ωh(m) (不会相等),给定 ω 严格大于 1。
  • w(g(m)+h(m)) = g(m) + wh(m) if w>1 恰好当 g(m) = 0 时,这是可能的,如果 m 是源,或者如果从源到 m 的路由成本为零。
  • 您最初的评论是,也许上限应该是下限。我注意到,在某些图上,即使是糟糕的算法也可能返回正确的答案——例如,一个图有一条边连接源和目的地,而没有其他可能的边或路线。
  • 但是这里有一件相当有趣的事情。在选择goal_node时,如果当前g(goal_node)不是最优的,我认为最优路径必须至少遍历一个未探索的节点(因为现在保证g(goal_node)在探索集中是最优的)。因此 m 不应该是源,因为如果它是源,m 将在 A 算法的第一次迭代之后被放入探索列表中。
  • 但是如果从源到 m 的成本为零,我认为您的观点是有道理的。但是要考虑该图应该让每条边的成本都超过某个小的正常数 ε 以保证搜索算法的完整性,这样如果存在一条具有无限序列的零成本边的路径,搜索就不会陷入无限循环.因此,似乎 A 搜索算法的图应该没有零成本边。如果是这种情况,我认为 g(m)+ωh(m) 应该小于 ω(g(m)+h(m )) 严格。
猜你喜欢
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 2019-05-24
  • 1970-01-01
  • 2017-07-06
  • 1970-01-01
  • 2016-08-16
  • 2010-10-12
相关资源
最近更新 更多