产生式系统的搜索策略.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文档。上传文档
查看更多
7.3.2 可分解的产生式系统 例:一产生式系统的初始状态描述为:(C,B.Z)目标状态描述为:(M,M,M…...) 产生式规则是一组重写规则: R1: C?(D,L) R2: C ?(B,M) R3: B ?(M,M) R4: Z ?(B,B,M) (B,M,B,Z) (C,B,Z) (C,B,B,B,M) (D,L,B,Z) (M,M,M,B,Z) (M,M,M,M,M,Z) (M,M,M,M,M,B,B,M) (M,M,M,M,M,M,M,B,M) (M,M,M,M,M,M,M,M,M,M) (B,M,B,B,B,M) (M,M,M,B,B,B,M) (D,L,M,M,Z) (D,L,M,M,B,B,M) (D,L,M,M,M,M,B,M) (D,L,M,M,M,M,M,M,M) R1 R2 R2 R3 R3 R3 R3 R3 R3 R3 R3 R4 R4 R4 R3 用图搜索方式求解: 如果一个产生式系统能够分解成若干组成部分,产生式规则可以分别用在各组成部分上,整个系统的终止条件可以用各组成部分的终止条件表示出来。这样的产生式系统叫做可分解的产生式系统。 上例中,初始状态可以分解成C,B和Z,然后把产生式规则应用于这些组成部分,应用规则后得到的结果状态又可进一步分裂,这样不断地分解,不断地应用规则,直到所有的状态全由M组成为止。 可分解产生式系统的基本算法: 1.DATA?初始状态描述 2.{Di} ?DATA的分解结果;这里把每一个Di看成是独立的状态描述 3.until所有的{Di}满足终止条件,do: 4.begin 5.在{Di}中选择一个不满足终止条件的D* 6.在{Di}中删除D* 7.在规则集合中选出一个可应用于D*的规则R 8.D ? 把R应用于D*的结果 9.{di} ? D的分解结果 10.把{di}加入{Di}中 11.end 与/或图的结构对于描述可分解系统的算法十分有用。 以上重写问题的与/或树如下: (C,B,Z) C B Z (D,L) (B,M) (M,M) (B,B,M) D L B B B M M M M M M M M M M (M,M) (M,M) (M,M) R3 R3 R3 R3 R1 R2 R4 R1: C?(D,L) R2: C ?(B,M) R3: B ?(M,M) R4: Z ?(B,B,M) 7.4 回溯策略 前面以8谜问题为例描述了回溯策略的使用,可见,对于搜索量不大的问题,回溯策略非常适用,并且有较高的效率。 可以看出回溯控制策略呈现出递归过程的性质,因此可用递归算法描述回溯控制下的产生式系统。 以下定义一个递归过程BACKTRACK,它取单个自变量DATA,设置为产生式系统的综合数据库,若算法成功结束,则返回一张规则表作为解输出;若找不到解,则算法返回FAIL,失败退出。 递归过程BACKTRACK(DATA) 1.if TERM(DATA),return NIL; TERM是一个一元谓词, 当DATA满足终止条件时,TERM(DATA)为真,此时,过程返回空表NIL. 2.if DEADEND(DATA),renturn FAIL DEADEND是一个一元谓词, 当已知DATA不在解的路径上时,DEADEND(DATA)为真,此时,过程回答FAIL. 3.RULES(DATA),?APPRULES(DATA) APPRULES是一个函数。 它计算对DATA可应用的规则并把它们排成一个表,可按任意规定的次序排列,也可在启发式知识指导下排列。 4.LOOP:if NULL(RULES);return FAIL 如果已经没有了可应用的规则,则回答FAIL 5.R ? FIRST(RULES);选出最好的可应用规则。 6.RULES ? TAIL(RULES);把刚才选出的规则从规则表中删除。 7.RRULES ? R(RULES);把规则R作用于当前状态,生成新状态。 8.PATH ? BACKTRACK(RDATA)对新状态递归调用本过程 9.if PATH =FAIL,go LOOP如果递归调用失败,则使用另一条规则。 10.return CONS(R,PATH);否则把R加在规则表的前面,向上传递成功的规则表 。 用4皇后问题说明BACKTRACK算法 1.如果状态中已有4个Q且不能互相捕获,则TERM(DATA)为真值。 2.如果从一个给定的目标出发,已经明显地看出不能得到问题的界,则DEADEND(DATA)取真值, 加上深度限制的BACKTRACK算法 1.DATA? FIRST(DATALIST) 2.if MEMBER(DATA,TAIL(D

文档评论(0)

精品资源 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档