A *搜索动态加权的优势

时间:2017-05-31 02:35:12

标签: search a-star

我正在阅读关于A *搜索算法的变体,我遇到了动态加权。据我了解,权重应用于搜索方程,随着搜索越接近目标节点,权重会减小。我特意看了这篇文章:http://theory.stanford.edu/~amitp/GameProgramming/Variations.html

有谁能告诉我这有什么好处?为什么你不关心你在一开始扩展的节点?是否可以帮助那些不一定具有良好启发式的搜索?

谢谢

1 个答案:

答案 0 :(得分:3)

对于TLDNR人群:

动态加权会牺牲解决方案的最优性来加速搜索。重量越大,搜索越贪婪。

我的同学们:

动机

来自维基百科的A-star文章: A-star的可接受性标准保证了最佳解决方案路径,但这也意味着A *必须检查所有同样有价值的路径以找到最佳路径。我们可以通过放宽可接受性标准来获得近似解决方案,从而以牺牲最优性为代价来加速搜索。通常我们想要限制这种放松,这样我们就可以保证解决方案路径不会比最佳解决方案路径的(1 +ε)倍。这种新保证被称为ε-可接受。

静态加权

在我们讨论动态加权之前,让我们将A-star与最简单的ε-允许放松进行比较:静态加权A-star。

在静态加权A星中,f(n)= g(n)+ w·h(n),对于某些ε> 0,w =(1 +ε)。为了说明对最优性和搜索速度的影响,请比较以下每个插图中展开的节点数。空心圆代表开放集中的节点;填充的圆圈位于关闭集中。

A-star Static weighted A-star with weight 4.0(=epsilon)

A-star(左)与加权A-star,ε= 4(右)

正如您所看到的,加权A-star扩展了更少的节点并且完成了大约3倍的速度。然而,由于我们使用ε= 4,加权A-star理论上可以返回一个解决方案,即(1 +ε)=(1 + 4)=最佳路径的5倍。

动态加权

动态加权是一种使启发式权重成为搜索状态函数的技术,即f(n)= g(n)+ w(n)·h(n),其中w(n)=(1 + ε - (ε* d(n))/ N),d(n)是当前搜索的深度,N是搜索深度的上限。

通过这种方式,动态权重A-Star最初的行为与贪婪的最佳优先搜索非常相似,但随着搜索深度(即图中的跳数)的增加,算法采用了更为保守的方法,表现得很好更像是传统的A-star算法。

Amit Patel's page

  

使用动态加权,您可以假设在您的开头   搜索,快速获得(任何地方)更重要;在......的最后   搜索,更重要的是达到目标。

他是正确的,但我会说,通过动态加权,你会认为在搜索开始时,遵循你的启发式更为重要;在搜索结束时,同样重要的是考虑路径的长度。

其他材料和链接:

  1. 助理。 Ira Pohl教授 - The Avoidance of (Relative) Catastrophe, Heuristic Competence, Genuine DYnamic Weighting and Computational Issues in Heuristic Problem Solving
  2. Dynamic Weighting关于Amit Patel的变种A *
  3. 维基百科 - Bounded Relaxation for the A* Search Algorithm