- 1、本文档共112页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * 突破口:H值估计的要合理,即应该满足单调条件。考虑到h满足A*条件,所以父子节点的h值差,应该小于等于c才合理。 * * 说明了P中有一个节点nj,他自己在closed中,nj+1在open中 * nk=n * 注意:nj+1是在open中 * 非子节点的情况,肯定后扩展的f值不会小,因为如果小的话,就先扩展了,不会后扩展。 * * * 定理5的证明(续2) 重写上式:f(nj+1) ≤ g*(n)+h(n) 另一方面,A*选n扩展,必有: f(n) = g(n)+h(n) ≤ f(nj+1) 比较两式,有: g(n) ≤ g*(n) 但已知g*(n)是最佳路径的耗散值,所以只有:g(n) = g*(n)。得证。 * h单调的性质(续) 定理6: 若h(n)是单调的,则由A*所扩展的节点序列其f值是非递减的。即f(ni) ≤ f(nj)。 其中nj在ni的后面扩展。 只需证明nj是ni的子节点的情况。 * 定理6的证明 由单调限制条件,有: h(ni) – h(nj) ≤ C(ni, nj) = f(ni)-g(ni) = f(nj)-g(nj) f(ni)-g(ni) - f(nj)+g(nj) ≤ C(ni, nj) = g(ni)+C(ni, nj) f(ni)-g(ni) - f(nj)+ g(ni)+C(ni, nj) ≤ C(ni, nj) f(ni) - f(nj) ≤ 0,得证。 * h单调的例子 8数码问题: h为“不在位”的将牌数 1 h(ni) - h(nj) = 0 (nj为ni的后继节点) -1 h(t) = 0 c(ni, nj) = 1 满足单调的条件。 * 对算法加以改进 一些结论: OPEN表上任以具有f(n) f*(s)的节点定会被扩展。 A*选作扩展的任一节点,定有f(n)≤f*(s)。 当h(n)恒等于0时,h为单调的。 * 改进的出发点 OPEN = ( … … … … ) f*(s) f值小于f*(s)的节点 f值大于等于f*(s)的节点 fm:到目前为止已扩展节点的最大f值,用fm代替f*(s) * 修正过程A 1, OPEN:=(s), f(s)=g(s)+h(s), fm:=0; 2, LOOP: IF OPEN=( ) THEN EXIT(FAIL); 3, NEST:={ni|f(ni)fm} IF NEST ≠ ( ) THEN n:=NEST中g最小的节点 ELSE n:=FIRST(OPEN), fm:=f(n); 4, …, 8: 同过程A。 * s(10) A(1) B(5) C(8) G 目标 6 3 1 1 1 8 前面的例子: OPEN表 CLOSED表 fm s(0+10) s(0+10) 10 A(6+1) B(3+5) C(1+8) s(0+10) C(1+8) 10 A(6+1) B(2+5) s(0+10) C(1+8) B(2+5) 10 A(3+1) s(0+10)C(1+8)B(2+5)A(3+1) 10 G(11+0) * h的单调化方法 如果令: f(n) = max(f(n的父节点), g(n)+h(n)) 则容易证明,这样处理后的h是单调的。 * IDA*算法(Iterative Deepening A*) 基本思想:回溯与A*的结合 算法简介(非严格地) 1,设初始值f0; 2,集合S=NULL; 3,用回溯法求解问题,如果节点n的f值大于f0,则将该节点放入集合S中,并回溯; 4,如果在3中找到了解,则结束; 5,如果3以失败结束,则f0=S中节点的最小f值; 6,返回到2。 * 知识的灵活应用 例:如何转动,使得每个扇区数字和为12。 1 3 5 5 1 4 4 1 3 3 2 5 2 3 1 2 3 1 2 2 5 5 2 3 4 2 5 4 3 4 3 3 分析: 阴影部分数字和:48 直径部分数字和:24 转45°改变阴影部分 转90°改变直径部分 但不改变阴影部分 转180°改变扇区部分 但不改变阴影部分 也不改变直径部分 * 4,其他的搜索算法 爬山法(局部搜索算法) * 其他的搜索算法(续1) 随机搜索算法 动态规划算法 如果对于任何n,当h(n)=0时,A
文档评论(0)