人工智能三章2010.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
人工智能三章2010

第三章 产生式系统的搜索策略 回溯策略 图搜索策略:无信息的图搜索 启发式的图搜索 产生式系统的费用 3.1 回溯策略 一、回溯算法BACKTRACK 算法中用到的部分变量、常量、谓词、函数: 变量: DATA,RDATA:状态变量 RULES, PATH : 表变量 常量: NIL: 空表 ----LISP语言中的常量,也可用() 谓词: TERM(DATA): DATA满足结束条件时,为真 DEADEND(DATA):DATA不在解路上,为真(往下到达目标的可能性来定义这个谓词:若从 DATA当前状态往下走到达目标的可能性很小时,则放弃这个状态 ) NULL(X): 表X为空表时,为真 函数: APPRULES(DATA): 将DATA所有可用规则进行排序所得到的表 FIRST(X): 取表X的头 TAIL(X): 取表X的尾 CONS(E, X):将E加入表X前 带来的问题及解决方案 ⑴若DEADEND定义不好,则无限产生新的非终止的状态描述。 (既不成功又不失败的节点) 解决方案:设置门槛数,即搜索深度BOUND,当递归调用超过这个深度时return FAIL,引起回溯。 ⑵ 程序中只有DATA和RDATA,回溯过程中将生成的状态都丢弃了,有可能陷入循环,重复地产生一系列非终止状态。 (实质属于情况(1)) 解决方案: 在过程中保存一个状态描述表DATALIST:记录从初始状态到当前状态路径上的所有状态----递归变量变成DATALIST,取表头为DATA 。 加比较:当产生新状态RDATA时,比较是否为DATALIST中的一个状态(在这个表中),若是,则return FAIL,引起回溯,选择其它的Rule。 综合数据库:以状态为节点的有向图 状态:4?4矩阵 初始状态: 空矩阵 规则:Rij:if i=1时,矩阵中无皇后标志,或4 ? i 1时,矩阵的i-1行有一个皇后标志,then在矩阵的第i行第j列放一个皇后标记 结束条件:TERM为真?矩阵中有4个皇后标志,且不能相互俘获 控制策略:回溯 DEADEND(DATA): DATA中存在1对皇后相互俘获,为真 APPRULES(RULES): Rij排在Rik之前?jk 四皇后问题 存在的问题:回溯的次数很多,22次回溯。 原因:没有关于问题的探索性信息指导规则排序。 解决方法之一:在规则排序过程中使用一些探索性信息,减少回溯次数,提高算法效率. 例:使用函数 diag(i, j)来修改APPRULES(RULES) diag(i, j):通过单元(i,j)的最长对角线的长度. 修改后的 APPRULES(RULES): if diag(i,j)<diag(i,k),then Rij排在Rik前. if diag(i,j)= diag(i,k),then与以前相同 课堂练习: 请用回溯搜索策略BACKTRACK求解四皇后问题,要求规则排序使用对角函数diag(i, j)。如果diag(i, j)<diag(i, k),则在排序中把Rij放在Rik的前面;如果diag(i, j)=diag(i, k),jk,则把Rij放在Rik的前面。其中diag(i, j)定义为通过单元(i, j)的最长对角线的长度. 两层以上的回溯 3.2 图搜索策略 一、相关概念 有向图 :G=(P,A),P:点集 A:弧集 弧:两点间有方向的线。 如果有一条弧从节点ni出发指向nj;则节点nj称为节点ni的子节点,节点ni称为节点nj的父亲节点. 对于产生式系统, 节点:用状态描述标记 弧:用规则标记 假定图中的每一个节点只有有限个子节点。 路:节点序列(ni0, ni1,…,nik)称为从节点ni0到节

文档评论(0)

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

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

1亿VIP精品文档

相关文档