- 1、本文档共182页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
状态空间搜索 状态空间搜索策略 数据驱动和目标驱动的搜索 图搜索的实现 深度和广度优先搜索 有界深度优先搜索 谓词演算推理的状态空间表示法 逻辑的状态空间描述 与/或图 讨论 基于递归的搜索 递归 递归搜索 模式驱动搜索 产生式系统 定义与历史 产生式系统示例 产生式系统搜索的控制 产生式系统的优点 状态空间搜索策略 数据驱动和目标驱动的搜索 状态空间可以从两个方向进行搜索:从实际问题的给定数据向目标搜索或者从目标到数据进行搜索。 数据驱动搜索,也称为正向推理。搜索的过程是应用规则从给定的条件产生新的条件,再用规则从新的条件产生更多的新条件。这个过程持续到有一条满足目标要求的路径产生为止。 另一种求解方法是:先从欲想达到的目标开始,看哪些规则或合法移动能产生该目标以及应用这些规则产生目标时需要哪些条件。这些条件就成为我们要达到的新目标,即子目标。搜索就通过反向的、连续的子目标不断地进行,一直到找到问题给定的条件为止。这样就找到了一条从数据到目标的移动或规则组成的链,尽管搜索方向和它正好相反。这种方法称为目标驱动的推理或反向推理。 在实际的搜索系统中可能两种方法同时使用,即一方面从数据驱动向目标进行,可能搜索到某一个子目标;另一方面又从目标向数据方面进行搜索,刚好也搜索到该子目标,这时推理也结束,即假设的目标正确。 图搜索的实现 无论是目标还是数据驱动的搜索,其求解问题都是要在状态空间图中找到从初态到目标状态的路径。而路径上弧的序列就对应解题的先后步骤。若在选择解题路径时能给出绝对可靠的预言或绝对正确的机制,那就不需要搜索了,求解时会一次成功地穿过空间到达目标,构造出一条求解路径来。但实际问题中没有绝对可靠的预言,求解时必须尝试多条路径直到找到目标为止。回溯是一种经常使用的技术。 图搜索的实现(续) 带回溯的搜索从初始状态出发,不停地寻找路径一直到它到达目标或“不可解端点”。若找到目标,就退出搜索,返回解题路径,若遇到不可解结点,就回溯到路径中最近的父结点上,查看是否有当前结点的兄弟结点未扩展,并沿这些分支继续搜索。算法在每个结点上的检查过程遵循下面的递归方式: 图搜索的实现(续) 若当前状态S未到达目标的要求,就对它的第一子状态Schild1递归调用回溯过程。如果在以Schild1为根的子图中没有找到目标,就对它的兄弟Schild2调用此过程。此过程重复进行到某个结点的后裔是目标或者所有子结点都搜索完为止。 图搜索的实现(续) 算法就是以这种方式执行直到找到目标或遍历了状态空间为止。下图给出的是一个假设的状态空间的深度优先回溯搜索。? ? 1 A ? 2 B 8 C 10 D ? E 3 6 F 9 G ? H I J 4 5 7 一个假设状态空间的深度优先回溯搜索 图搜索的实现(续) 下面定义一个回溯搜索的算法:算法使用3张表保存状态空间中的结点。 SL状态表列出了当前路径上的状态。如果找到了目标,SL就是解题路径上状态的有序集。 NSL新状态表,包含了等待评估的结点,其后裔结点还未被扩展。DE不可解端点集,列出了找不到解题路径的状态。如果在搜索中再遇到它们,就会检测到它们是DE中的成分而立即将其排除。 为了在最普遍的情况下(是图而不是树)定义回溯算法,有必 要检测并删除多次出现的某些状态,以避免造成路径循环。检测可以通过对每一个新生成的状态判断它是否在上述3张表中来实现,如果它属于某一张表,就说明它已被搜索过不必再考虑。 图搜索的实现(续) 当前正在搜索的结点叫CS,即当前状态。CS总是等于最近加入SL中的状态,是当前正在探寻的解题路径的“前锋”。博弈中走步用的推理规则或者其他合适的问题求解操作都可应用于CS,得到一些新状态,即CS的子状态的有序集,重新视该集合中第一个状态为当前状态,其余的按次序放入NSL中,用于以后的搜索。新的CS加入SL中,搜索就这样继续进行。若C
文档评论(0)