- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 对上例, 若按有界深度优先,且设dm=3, 则其节点扩展顺序为:1,3,5,2,4。 1 2 3 A 4 t1 5 t2 B t3 C 与/或树的有界深度优先搜索 (1) 先扩展1号节点,生成2号节点和3号节点。 (2)扩展3号节点,生成t1节点和5号节点。 (6) 搜索成功,得到由1、3、5、2、4号节点即t1、t2、t3节点构成的解树。 (4) 扩展2号节点,生成A节点和4号节点。 (5) 扩展4号节点,生成t2节点和B节点。 (3)扩展5号节点,生成t3节点和C节点。 * 与/或树的有序搜索 与/或树的有序搜索可用来求取代价最小的解树,它是一种启发式搜索策略。 1、解树的代价 为了进行有序搜索,需要计算解树的代价。解树的代价可以通过计算解树中节点的代价得到。 设c(x,y)表示节点x到其子节点y的代价,计算节点x代价的方法如下: * 与/或树的有序搜索 1) 如果x是终止节点,则定义节点x的代价h(x) = 0; 2) 如果x是”或”节点,y1,y2…yn是它的子节点,则节点x的代价为:h(x) = min{c(x,yi) + h(yi)} 3)如果x是”与”节点,则节点x的代价有两种计算方法:和代价法与最大代价法。 若按和代价法计算,则有:h(x) = ∑(c(x,yi) + h(yi)) 若按最大代价法计算,则有:h(x) = max{c(x,yi) + h(yi)} 4) 如果x不可扩展,且又不是终止节点,则定义h(x) = ∝ 由上述计算节点的代价可以看出,如果问题是可解的,则由子节点的代价就可推算出父节点代价,这样逐层上推,最终就可求出初始节点S0的代价,S0的代价就是解树的代价。 * 与/或树的有序搜索 由左边的解树可得: 由右边的解树可得: 按和代价:h(A)=11,h(S0)=13 h(G)=3,h(D)=4,h(B)=6,h(S0)=8 按最大代价:h(A)=6,h(S0)=8 h(G)=2,h(D)=3,h(B)=5,h(S0)=7 显然,若按和代价计算,右解树是最优解树,若按最大代价计算,右解树仍然是最优解树。 * 2 6 6 2 例 设下图是一棵与/或树,它包括两可解树,左边的解树由S0、A、t1、C及t2组成;右边的解树由S0、B、t2、D及t4组成。在此与或树中,t1、t2、t3、t4为终止节点;E、F是端节点;边上的数字是该边的代价。请计算解树的代价。 解:先计算左边的解树 按和代价:h(S0)=(2+6+1)+2=11 按最大代价:h(S0)=(1+6)+2=9 再计算右边的解树 按和代价:h(S0)=(6+2+2)+2=12 按最大代价:h(S0)=6+2=8 S0 2 2 t1 C t2 D 1 2 2 3 t3 E t4 F 与/或树的代价 显然,若按和代价计算,左解树是最优解树, 若按最大代价计算,右解树是最优解树。 A B * 与/或树的有序搜索 2、希望树 希望树是指搜索过程中最有可能成为最优解树的那棵树。 与/或树的启发式搜索过程就是不断地选择、修正希望树的过程,在该过程中,希望树是不断变化的。 定义: (1) 初始节点S0在希望树T (2) 如果n是具有子节点n1, n2, … , nk的或节点,则n的某个子节点ni在希望树T中的充分必要条件是 (3) 如果n是与节点,则n的全部子节点都在希望树T中。 * 与/或树的有序搜索 3、与/或树的启发式搜索过程 (1) 把初始节点S0放入Open表中,计算h(S0); (2) 计算希望树T; (3) 依次在Open表中取出T的端节点放入Closed表,记该节点为n; (4)如果节点n为终止节点,则做下列工作: ① 标记节点n为可解节点; ② 在T上应用可解标记过程,对n的先辈节点中的所有可解解节点进行标记; ③ 如果初始解节点S0能够被标记为可解节点,则T就是最优解树,成功退出;
文档评论(0)