图搜索和问题求解.ppt

  1. 1、本文档共106页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
此时,Qo的右子树是希望树。下面将对此希望树的节点进行扩展。  设对节点E扩展两层后得到如图3-17(b)所示的与或树, 节点旁的数字为用启发函数估算出的g值, 则按和代价法计算得到 g(G)=7, g(H)=6, g(E)=7, g(D)=11 此时, 由Qo的右子树算出的g(Qo)=12。但是, 由左子树算出的g(Qo)=9。显然, 左子树的代价小, 所以现在改取左子树作为当前的希望树。   假设对节点B扩展两层后得到如图3-17(c)所示的与或树, 节点旁的数字是对相应节点的估算值, 节点L的两个子节点是终止节点, 则按和代价法计算得到 g(L)=2, g(M)=6, g(B)=3, g(A)=8 由此可推算出g(Qo)=9。这时, 左子树仍然是希望树, 继续对其扩展。该扩展节点C。   假设节点C扩展两层后得到如图3-17(d)所示的与或树, 节点旁的数字是对相应节点的估算值, 节点N的两个子节点是终止节点。 按和代价计算得到 g(N)=2, g(P)=7, g(C)=3, g(A)=8 由此可推算出g(Qo)=9。另外,由于N的两个子节点都是终止节点, 所以N和C都是可解节点。再由前面推出的B是可解节点, 可推出A和Qo都是可解节点。这样就求出了代价最小的解树, 即最优解树——图3-17(d)中粗线部分所示。该最优解树是用和代价法求出来的, 解树的代价为9。   图 3-17 与或树有序搜索 3.4 与或图搜索问题求解 3.4.1 问题的与或图表示 (Qo, F, Qn) 这里Qo表示初始问题,F表示问题变换规则集,Qn表示本原问题集。      例 3.19 三阶梵塔问题。   我们可把三阶梵塔问题分解为下面的三个子问题: (1) 把A、B盘从1号杆移到2号杆。    (2) 把C盘从1号杆移到3号杆。    (3) 把A、B盘从2号杆移到3号杆。  其中子问题(1)、(3)又分别可分解为三个子问题。    于是, 可得到三阶梵塔问题的与或树表示(见图3-18)。 图 3-18 三阶梵塔问题的与或树 三元组 (i, j, k)中的i, j, k分别代表金盘A, B, C所在的杆号。   所得原问题的解: (1, 1, 1) (3, 1, 1) (3, 1, 1) (3, 2, 1) (3, 2, 1) (2, 2, 1) (2, 2, 1) (2, 2, 3) (2, 2, 3) (1, 2, 3) (1, 2, 3) (1, 3, 3) (1, 3, 3) (3, 3, 3) 3.4.2 与或图问题求解程序举例  例 3.20 基于与或图搜索的迷宫问题程序。 DOMAINS room list=room* room=symbol PREDICATES road(room,room) path(room,room,room list) go(room,room) member(room,room list) GOAL go(a,e). CLAUSES go(X,Y):-path(X,Y,[X]).%首先将入口放入表中,该表用来记录走过的路径 path(X,X,L):-write(L).%当path中的两个点相同时,表明走到了出口。程序结束 path(X,Y,L):-%这个语句实际是问题分解规则,它将原问题分解为两个子问题 road(X,Z),%从当前点向前走到下一点Z   not(member(Z,L)), path(Z,Y,[Z|L]).%再找Z到出口Y的路径 path(X,Y,[X,X1|L1]):-path(X1,Y,L1).%回溯   member(X,[X|-]).   member(X,[-|T])if member(X,T).   /* 迷宫图 */    road(a,b).road(a,c).road(b,f).road(f,g).road(f,ff).road(g,h).    road(g,i).road(b,d).road(c,d).road(d,e).road(e,b). 例 3.21 梵塔问题程序。 DOMAINS disk_amount,pole_No=in

您可能关注的文档

文档评论(0)

sandaolingcrh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档