第三章讲-搜索策略11.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章讲-搜索策略11.ppt

5.3.2 宽度优先搜索策略 open表(NPS表):已经生成出来但其子状态未被搜索的状态。 closed表( PS表和NSS表的合并):记录了已被生成扩展过的状态。 0 S 1 2 3 4 5 6 7 8 9 10 宽度优先搜索法中状态的搜索次序 5.3.2 宽度优先搜索策略 Procedure breadth_first_search begin open:= [start]; closed:= [ ] *初始化 while open [ ] do begin 从open表中删除第一个状态,称之为n; 将n放入closed表中; if n = 目的状态 then return (success); 生成n的所有子状态; 从n的子状态中删除已在open或closed表中出现的状态; 将n的其余子状态,按生成的次序加入到open表的后段。 end; end; open表:队列结构,即先进先出(FIFO)的数据结构 例3 通过搬动积木块,希望从初始状态达到一个目的状态,即三块积木堆叠在一起。 5.3.2 宽度优先搜索策略 B C A A B C (a) 初始状态 (b) 目的状态 积木问题 操作算子为MOVE(X,Y):把积木X搬到Y(积木或桌面)上面。 操作算子可运用的先决条件: (1)被搬动积木的顶部必须为空。 (2)如果 Y 是积木,则积木 Y 的顶部也必须为空。 (3)同一状态下,运用操作算子的次数不得多于一次。 5.3.2 宽度优先搜索策略 MOVE(A,Table):“搬动积木A到桌面上”。 A B A B A C C B A C C C B A B C A B A C B A A B C B C B C C A B A MOVE(A,TABLE) MOVE(C,A) MOVE(A,C) MOVE(B,A) MOVE(B,C) MOVE(C,A) MOVE(C,B) MOVE(C,B) MOVE(A,B) 0 S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8 S 9 S 10 S 没有后裔, 失败退出 积木问题的宽度优先搜索树 5.3.2 宽度优先搜索策略 5.3.3 深度优先搜索策略 0 S 1 2 3 4 5 6 7 8 9 10 11 12 13 K K 深度优先搜索法中状态的搜索次序 0 S 1 2 3 4 5 6 7 8 9 10 11 12 13 K K 深度优先搜索法中状态的搜索次序 5.3.3 深度优先搜索策略 在深度优先搜索中,当搜索到某一个状态时,它所有的子状态以及子状态的后裔状态都必须先于该状态的兄弟状态被搜索。 为了保证找到解,应选择合适的深度限制值,或采取不断加大深度限制值的办法,反复搜索,直到找到解。 5.3.3 深度优先搜索策略 深度优先搜索过程: Procedure depth_first_search begin open:=[start];closed:=[ ];d:=深度限制值 while open[ ] do begin 从open表中删除第一个状态,称之为n; 将n放入closed表中; if n=目的状态 then return (success); if n的深度d then continue; 生成n的所有子状态; 从n的子状态中删除已在open或closed表中出现的状态; 将n的其余子状态,按生成的次序加入到open 表的前端。 end end。 open表:堆栈结构,即先进后出(FILO)的数据结构。 open表:所有已生成但未作扩展的状态 closed表记录了已扩展过的状态 5.3.3 深度优先搜索策略 深度优先搜索并不能保证第一次搜索到的某个状态时的路径是到这个状态的最短路径。 对任何状态而言,以后的搜索有可能找到另一条通向它的路径。如果路径的长度对解题很关键的话,当算法多次搜索到同一个状态时,它应该保留最短路径。 例4 卒子穿阵问题,要求一卒子从顶部通过下图所示的阵列到达底部。卒子行进中不可进入到代表敌兵驻守的区域(标注1),并不准后退。假定深度限制值为5。 5.3.3 深度优先搜索策略 阵列图 5.3.3 深度优先搜索策略 0 S 1 S ) 1 , 1 ( 2 S ) 2 , 1 ( 3 S ) 2 , 2 ( 4 S ) 1 , 2 ( 5 S ) 1 , 3 ( 6 S ) 2 , 3 ( 7 S ) 3 , 2 ( 8 S ) 3 , 1 ( 9 S ) 2 , 1 ( 14 S ) 4 , 1 ( 1

文档评论(0)

youngyu0329 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档