第四节状态空间搜索.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文档。上传文档
查看更多
第四章 状态空间搜索 4.1 用搜索法对问题求解 一个问题可以形式化地定义为四个组成部分: 初始状态 可能行动的描述 目标测试 路径耗散 4. 八皇后问题 4.3 状态空间搜索的结构 结点集={A, B, C, D, E} 弧集={(A,B), (A,D), (B,C), (C,B), (C,D), (D,A),(D,E), (E,C), (E,D)} 有向图 有根图具有唯一一个称为根的结点,从根结点出发到图中任何结点都存在相应路径。 4.4 问题的状态空间表示法 图的结点和弧分别表示问题求解过程中解题状态和解题步骤。 初始状态对应于实际问题的已知信息, 是图中的根结点。 目标就是实际问题的解。 状态空间搜索将问题求解过程表现为从初始状态到目标状态寻找这个路径的过程。 4.4 问题的状态空间表示法 例: 旅行推销员问题 假设一个推销员要到5个城市去访问,然后回家。问题是要找到一条最短的路径,使得推销员访问过每个城市后回到出发地。假定推销员在A城, 他最后要返回原地。 4.4 问题的状态空间表示法 图 旅行推销员问题的一个例子? [A,D,C,B,E,A]: 4.4 问题的状态空间表示法 多种可能解题路径的方法。 目标是开销最小的路径。 遍历搜索旅行推销员问题的复杂度为(N-1)! 图 旅行推销员问题的一例 4.5 状态空间搜索策略 4.5.1 数据驱动和目标驱动的搜索 状态空间可以从两个方向进行搜索:从实际问题的给定数据向目标搜索或者从目标到数据进行搜索 数据驱动推理是运用问题给出的条件及规则或合法移动,产生新的条件,向目标靠近;目标驱动推理着眼于目标,寻找产生目标的规则,通过反向连续的规则和子目标进行反向推理直至找到问题给出的条件。 采用哪种方式取决于求解问题的结构。 4.5.1 数据驱动和目标驱动的搜索 数据驱动搜索可用于下列情况: ——问题的初始说明给出了全部或大部分数据。 ——存在大量可能的目标,但对实际问题的条件及给定的信息加以运用的方法很少 。 ——难以形成一个目标或假设。 4.5.2 图搜索的实现 4.5.2 图搜索的实现 定义一个回溯搜索的算法。设: SL 为状态表,列出了当前路径上的状态。 NSL 为新状态表, 包含了等待评估的结点,其后裔结点还未被扩展。 DE 为不可解节点集。 CS 为当前正在检测的状态,即当前状态。 4.5.2 图搜索的实现 function backtrack; begin SL:=[Start];NSL:=[Start]; DE=[ ];CS:=Start; % 初始化 while NSL≠[ ] % 还有未检查的状态 do begin if CS=目标(或符合目标的要求) then return(SL); % 成功,返回路径中状态的表 if CS 没有子状态(不包括DE、SL和NSL中已有的状态) then begin while((SL非空)and(CS=SL中第一个元素)) 4.5.2 图搜索的实现 do begin 将CS加入DE;% 标明此状态不可解 从SL中删除第一个元素;% 回溯 从NSL中删去第一个元素; CS:=NSL中第一个元素; end; 将CS加入SL; end? else begin 将CS子状态(不包括DE、SL、NSL中已有的)加入NSL; CS:=NSL中第一个元素; 将CS加入SL; end end return FAIL; % 整个空间搜索完 end. 4.5.3 深度和广度优先搜索 4.5.3 深度和广度优先搜索 4.5.3 深度和广度优先搜索 在深度优先搜索中,当查到某一个状态时,它所有的子状态以及子状态的后裔结点必须先于该状态的兄弟状态被查找。尽量往深处走,只有再也找不出其后裔时才考虑兄弟。 广度优先搜索是一层一层地搜索空间,仅当某一层的状态全部搜索完毕,它才转入下一层搜索。 4.5.3 深度和广度优先搜索 图 用于广度及深度优先搜索的例图 4.5.3 深度和广度优先搜索 广度优先搜索 关于实现: 为了保存状态空间搜索的轨迹,用到了: open表和closed表 open表:列出了已经产生出来但子状态未被查找的状态。 closed表:记录了已检查过的状态。 procedure breadth_first_search lnitialize:open=[start];closed=[ ];? while open≠[ ] do begin

文档评论(0)

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

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

1亿VIP精品文档

相关文档