1 / 10

启发式搜索 A-Star

启发式搜索 A-Star. 静态路网求最短路的有效方法. Made by Lighthawk. 什么是启发式搜索???. 启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行 评估 ,得 到 最好的位置,再从这个位置进行搜索直到目标。. 与盲目搜索对比一下的话~~. 就是搜索具有了 目的性!. 单向bfs、双向bfs和A*的比较:. 初识A*. A*算法的实质是一个启发函数 f (N),用来计算结点 N“前途如何”。. 通常把f (N) 设计成估计“一条经过N的路径”, 进而写成 f (N) = g(N) +h(N) ;

Télécharger la présentation

启发式搜索 A-Star

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 启发式搜索A-Star 静态路网求最短路的有效方法 Made by Lighthawk

  2. 什么是启发式搜索??? 启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。 与盲目搜索对比一下的话~~ 就是搜索具有了目的性!

  3. 单向bfs、双向bfs和A*的比较:

  4. 初识A* A*算法的实质是一个启发函数 f (N),用来计算结点 N“前途如何”。 通常把f (N) 设计成估计“一条经过N的路径”, 进而写成 f (N) = g(N) +h(N) ; g(N) --- 由起点搜到 N 点时的最小步数 (相当于已知条件); h(N) --- 对N到终点的接近程度的估计 ; 强调! h(N)与搜索过程无关,仅仅是状态的函数。当然了,要满足某些条件。

  5. 估值函数h(N)应该具有什么性质??? 可接纳性 0 <= h(N) <= h*(N) 以八数码为例: No.1 f1(N) = N不在目标位置的滑块数目; No.2 f2(N) = N所有数字到终点的Manhattan距离; No.3 f3(N) = N的逆序数对。 只有前两个可接纳

  6. A*算法 定义f(N) = g(N) + h(N) , 其中g(N)是从初始状态到N的最优路径代价,h(N)是一个可接纳的启发函数,所有边权为c(N,N') > ε > 0 , 如果把搜索边界按照f(N)从小到大排序,则修改后的搜索算法称为A*算法。 结论一:如果重复结点全部保存,则A* 是完全的,也是最优的。 结论二:若启发函数h是单调的,则每扩展一个结点N时,就已经找到了起点到它的最优路径。 结论三:设启发函数h2比h1更精确,采用h1的A*算法称为A1*,采用h2的A*算法称为A2*,则被A2*扩展的非目标结点一定会被A1*扩展。 详细证明 --- lrj内功心法 4.4.4

  7. A*算法 结论一:如果重复结点全部保存,则A* 是完全的,也是最优的。 完全 --- 如果问题有解,搜索边界上一定存在点 X,使得从 X 到终点存在最优路径。因为 c(N,N') > ε , 所以每次扩展h(N)后,f(N)一定会增加;如果 c(N,N') == 0 , 每次扩展h(N)后 , f(N) 都不会变,一直是最小值,就会无止境地扩展点N。 最优 --- 假设 C* 是最优解; 1、X' 为搜索边界上的非最优目标结点,则X'满足:f(X') = g(X') + h(X') > C*; 2、K为搜索边界上、任意一个在最优路径上的节点,则K满足:f(K) = g(K) + h(K) <= C*; h可接纳性带来的好处:最优路径上的点先扩展。

  8. A*算法 结论二:若启发函数h是单调的,则每扩展一个结点N时,就已经找到了起点到它的最优路径。

  9. A*算法 结论三:设启发函数h2比h1更精确,采用h1的A*算法称为A1*,采用h2的A*算法称为A2*,则被A2*扩展的非目标结点一定会被A1*扩展。

  10. Thank you ~~~~~

More Related