1 / 19

二、启发式搜索

§ 2.3. 二、启发式搜索. 启发函数(估价函数)——把当前的状态映射为到达目标的花费(愈小愈好)或到达目标的希望程度(愈大愈好) 旅行商问题(距离和) 八数码问题(未归位牌数). 愈小愈好. 井字棋: 4 2阶差+1阶差 象 棋: 我方棋子总值-对方棋子总值 +我方棋势-对方棋势. 愈大愈好. 0. 1. 2. 2. 3. 3. 6. 1. 8. 8. 4. 0. 7. 7. 5. 6. 5. 4. § 2.3. 二、启发式搜索.

Télécharger la présentation

二、启发式搜索

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. §2.3 二、启发式搜索 • 启发函数(估价函数)——把当前的状态映射为到达目标的花费(愈小愈好)或到达目标的希望程度(愈大愈好) 旅行商问题(距离和) 八数码问题(未归位牌数) 愈小愈好 井字棋:4 2阶差+1阶差 象 棋:我方棋子总值-对方棋子总值 +我方棋势-对方棋势 愈大愈好

  2. 0 1 2 2 3 3 6 1 8 8 4 0 7 7 5 6 5 4 §2.3 二、启发式搜索 • 估价函数算法很重要,以八数码为例: 粗算:未归位牌数N 细算:距离总和M N=3 M=3 N=1 M=2

  3. begin n(0)s,J0 生成n(J)子结点表 有子结点=目标? Y 输出解PATH end N 在子结点表中找h’最小结点,记入n(J) J=J+1 §2.3 爬山法(局部最佳优先)

  4. S n(0)=S n(1)=2 n(2)=3 n(3)=2 n(4)=1 §2.3 爬山法(局部最佳优先) • 沿梯度最大方向,以最小机时到达目标——无搜索算法,特别快。

  5. §2.3 爬山法(局部最佳优先) • 但是不能保证到达目标 局部极值 平台 h算法不准 • 解决方法:迈一大步

  6. h’: h 的估计值 §2.3 全局最佳优先图搜索法 • 包括A算法,A*算法 耗费函数 f = g + h g: S到当前结点(已发生)的耗费 当前节点到目标结点的耗费 h: 估价函数 f ’= g + h’

  7. open closed S S g: 2 4 1 open表 A B C h’: 3 6 3 f ’: 5 10 4 §2.3 全局最佳优先图搜索法 示例: 第一步: 第二步:

  8. closed 第三步: S g: 2 4 1 A B C h’: 3 6 3 10 5 open表 f ’: 1 2 D E 4 6 6 9 §2.3 全局最佳优先图搜索法

  9. 第四步: S g: 2 4 1 A B C h’: 6 10 f ’: 1 2 1 2 F G D E 6 4 4 6 9 8 9 6 §2.3 全局最佳优先图搜索法 open表

  10. 第五步: S 2 4 1 A B C 6 10 1 2 1 2 F G D E 6 4 6 9 8 9 2 3 H I 2 4 §2.3 全局最佳优先图搜索法 open表 6 9

  11. §2.3 全局最佳优先图搜索法的优点 与爬山法比,可随时换枝,所以可以在全局(open表中)找到最佳解 (全局最佳优先图搜索法见word文档)

  12. B E CLOSED OPEN begin OPEN表=[初始结点S] CLOSED=[ ] g(s):=0 B:=1 E:=1 OPEN=[ ] FAIL 在OPEN表中找f ’最小的结点m m=目标? Y N 输出PATH M移入CLOSED B=B+1 END 生成m的一个子结点n,令P(n)=m(使其指向m,以便找到解后输出PATH) 计算g(n)=g(m)+Δg f ’(n)=g(n)+h ’(n) Y(与结点old同) g(n) < g(old) N 修改P(old)=P(n); g(old)=g(n); f ’(old)=f ’(n) n记入OPEN表 E=E+1 Y 改进传至old的后裔结点(用深度优先法搜索) n出现过? old在CLOSE中? m还有子结点? N A算法

  13. 2 8 3 1 6 4 7 5 1 2 3 8 4 7 6 5 §2.3 一个A算法的例子 定义评价函数: f ’(n) = g(n) + h’(n) g(n)为从初始节点到当前节点的耗费值(步数) h’(n)为当前节点“不在位”的牌数

  14. 2 8 3 1 6 4 7 5 §2.3 一个A算法的例子 • h ’计算举例 “不在位”的牌数 h ’(n) =4

  15. s(4) 2 8 3 1 6 4 7 5 1 2 2 8 3 1 6 4 7 5 2 8 3 1 4 7 6 5 2 8 3 1 6 4 7 5 A(6) C(6) B(4) 4 3 2 8 3 1 4 7 6 5 2 3 1 8 4 7 6 5 2 8 3 1 4 7 6 5 D(5) E(5) F(6) 5 8 3 2 1 4 7 6 5 2 8 3 7 1 4 6 5 2 3 1 8 4 7 6 5 2 3 1 8 4 7 6 5 I(5) J(7) G(6) H(7) 6 1 2 3 8 4 7 6 5 K(5) 1 2 3 8 4 7 6 5 1 2 3 7 8 4 6 5 M(7) L(5) 目标 §2.3

  16. 1 1 h =3 h ’=300 h =5 h ’=5 x y §2.3 全局最佳优先图搜索法讨论 1. 若令Δg ≡1,h ’ ≡ 0,为宽度优先(无启发信息的搜索) 2.若令g ≡0(只考虑h ’) ,则以最少的机时求解,但路径不一定最优 3.(1)若h ’ (精确) =h,很快达最优解(最优路径达到目标,此时不会走错枝,用爬山法即可) (2)若h ’ (可能) >h,不保证解最优,例: 可能引入y而丢失x (3)若h ’ ≯ h,可保解最优——A*算法

  17. §2.3 全局最佳优先图搜索法讨论(Cont.) 4. A(A*)为图搜索,但择优保留单一连接弧,生成的是无重复结点的树,而不是图。 若采用树搜索,不查重复结点, 则: a) 费空间; b) 虽然省了查重时间,但是重复扩展更麻烦。 所以采用图搜索。

  18. 计算估价函数的工作量 搜索工作量 0 1 启发程度 §2.3 启发函数的适度使用 工作量 总工作量

  19. 深度优先 宽度优先 A(A*)算法 爬山法 局部最佳优先 全局最佳优先 启发式 §2.3 • 对比:

More Related