ch3产生式系统的搜索策略.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文档。上传文档
查看更多
第三章产生式系统的搜索策略 状态空间:由给定问题的所有可能的状态组成的空间(相当于全集G) 搜索空间:按某种策略在状态空间中选取的部分空间(G的子集) 解路径(解空间):求解问题的一条有效路径。 搜索策略的基本思路:搜索空间必须包含解路径,如果问题有解,且尽量缩小搜索空间。 搜索策略的评价准则:总体费用最低 费用的划分: a 规则应用的费用:执行规则时所花的费用 b 控制费用:选择规则所花的费用。 第三章目录 3.1回溯策略 3.2 图搜索策略 3.3 启发式图搜索策略 1)A算法 2)爬山算法 3)分支界限算法 4)动态规划算法 5)A*算法 6)h函数与A*的关系 7)关于单调性限制 8)A*算法示例 3.1回溯算法 例 四皇后问题 定义综合数据库: 设:DATA={ij︱1=i,j=4},其中:ij表示棋子所在行列 如:24表示第二行第四列有一枚棋子 因为棋盘上 可放入的棋子数为0~4个 所以集合中元素数位0 ~4个,即length(DATA)=0 ~4 3.2图搜索策略 图搜索策略 图搜索的实质是从问题空间中找出一张包含目标节点的子图。 图搜索的结果:1,一个完整的搜索图G。2一个解路径,用指针表示的解路径。 Procedure GraphSearch 1 G=G0(G0=s),open=(s) //s:初始状态 2 closed=() 3Loop:if open=() then exit(fall) 4 n←first(open) remove(n,open), add(n,closed) 5 if goal(n) then exit(success) 6{mj} ←expand(n), //mj不含n的先辈节点 7 open←add(open,mj) // mj不在open,closed中 标记mj每个到n节点指针 确定是否需要修改已在open,closed中的每个节点到n的指针 确定是否需要修改已在closed中的每个节点的后继节点原来的指针。 8按照某种方式排列open表中的节点,go loop 深度优先算法 Procedrue depth-First-Search 1 G=G0(G0=s),open=(s),closed=() //s:初始状态 2 Loop:if open=() then exit(fall) 3 n←first(open) 4 if goal(n) then exit(success) 5remove(n,open), add(n,closed) 6{mj} ←expand(n), //mj不含n的先辈节点 7 open←add(open,mj) // mj不在open,closed中 标记mj每个到n节点指针,按照节点深度递减顺序排列open中的节点 8 go loop 讨论1:如果问题有解,有深度优先搜索算法,是否能够找到解? 不一定.解空间是否有限? 讨论2:本算法的改进之处是open中节点按照深度优先排列,但是没有对深度加以控制,可能造成搜索代价太大 宽度优先算法 Procedrue breadth-First-Search 1 G=G0(G0=s),open=(s),closed=() //s:初始状态 2 Loop:if open=() then exit(fall) 3 n←first(open) 4 if goal(n) then exit(success) 5remove(n,open), add(n,closed) 6{mj} ←expand(n), //mj不含n的先辈节点 7 open←add(open,mj) // mj不在open,closed中 标记每个到n节点指针,按照节点深度递增顺序排列open中的节点 8 go loop 理论上可以利用宽度优先搜索能够找到解,如果问题有解的话。 讨论:宽度优先算法和深度优先算法可能出现组合爆炸。都没有利用任何启发式信息,所以称为无信息搜索策略。 : 宽度优先例题: 由一张桌子T、三个积木A、B、C组成一个积木世界,初始状态是A在B上,B在桌子上,C在桌子上;目标状态是:A、B、C依次从上到下排列在桌子上。如图 解:1)状态描述(P1,P2,P3)表示按A、B、C顺序依次分别在P1,P2,P3上其中Pi是积木或者桌子。初始状态时(B、T、T),目标状态 可以表示(B、C、T) 2)定义操作:move(x,y)表示将积木x移到Y上 ; 约束条件:a X顶部必须是空的 b 如果Y是积木,Y的顶部必须是空的 c

文档评论(0)

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

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

1亿VIP精品文档

相关文档