- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六讲状态空间搜索策略上详解
代价树示例 (例6.7) 6.2.6 代价树的深度优先搜索 搜索过程: 把初始节点S0放入OPEN表,令g(S0)=0。 如果OPEN表为空,则问题无解,退出。 把OPEN表的第一个节点(记为节点n)取出放入CLOSE表。 考察节点n是否为目标节点。若是,则求得了问题的解,退出。 若节点n不可扩展,则转第2步。 扩展节点n,将其子节点按代价从小到大的顺序放到OPEN表中的首部,并为每一个子节点都配置指向父节点的指针,然后转第2步。 代价树的深度有限搜索是不完备的。 总 结 1、上述各种搜索方法的本质是,以初始节点为根节点,按照既定的策略对状态空间图进行遍历,并希望能够尽早发现目标节点。 2、由于对状态空间图遍历的策略是既定的,因此这些方法统称为盲目搜索方法。 有信息搜索 搜索过程中利用与问题有关的经验信息(启发式信息) 引入估价函数来估计节点位于解路径上的“希望”,函数值越小“希望”越大 搜索过程中按照估价函数的大小对OPEN表排序 每次选择估价函数值最小的节点作为下一步考察的节点 6.2.7 启发式搜索 A算法 在图搜索算法中,如果能在搜索的每一步都利用估价函数f(n)=g(n)+h(n)对Open表中的节点进行排序,则该搜索算法为A算法。由于估价函数中带有问题自身的启发性信息,因此,A算法又称为启发式搜索算法。 对启发式搜索算法,又可根据搜索过程中选择扩展节点的范围,将其分为全局择优搜索算法和局部择优搜索算法。 A算法 估价函数 f (x) = g (x) + h (x) 从起始状态到当前状态x的代价 从当前状态x到目标状态的估计代价(启发函数) g(x) 有利于搜索的完备性,但影响搜索的效率。h(x)有利于提高搜索的效率,但影响搜索的完备性。 设有如下结构的移动将牌游戏: 该游戏规则: 当一个牌移入相邻的空位置时,费用为一个单位。 一个牌至多可跳过两个牌进入空位置,其费用等于跳过的牌数加1。 要求:把所有的B都移至W的右边,请设计启发函数h(x)。 解:根据要求可知,W左边的B越少越接近目标,因此可用W左边B的个数作为h(x),即 h(x)=3×(每个W左边B的个数的总和) 这里乘以系数3是为了扩大h(x)在f(x)中的比重。 启发函数示例 B B B W W W E 局部择优搜索 基本思想: 当一个节点被扩展以后,按f(x)对每一个子节点计算估价值,并选择最小者作为下一个要考察的节点。 搜索过程: 把初始节点S0放入OPEN表,计算f(S0)。 如果OPEN表为空,则问题无解,退出。 把OPEN表的第一个节点(记为节点n)取出放入CLOSE表。 考察节点n是否为目标节点。若是,则求得了问题的解,退出。 若节点n不可扩展,则转第2步。 扩展节点n,用估价函数f(x)计算每个子节点的估价值,并按估价值从小到大的顺序放到OPEN表中的首部,并为每一个子节点都配置指向父节点的指针,然后转第2步。 深度优先搜索、代价树的深度优先搜索均为局部择优搜索的特例。 全局择优搜索 基本思想: 每当要选择下一个节点进行考察时,全局择优搜索每次总是从OPEN表的全体节点中选择一个估价值最小的节点。 搜索过程: 把初始节点S0放入OPEN表,计算f(S0)。 如果OPEN表为空,则问题无解,退出。 把OPEN表的第一个节点(记为节点n)取出放入CLOSE表。 考察节点n是否为目标节点。若是,则求得了问题的解,退出。 若节点n不可扩展,则转第2步。 扩展节点n,用估价函数f(x)计算每个子节点的估价值,并为每一个子节点都配置指向父节点的指针。把这些子节点都送入OPEN表中,然后对OPEN表中的全部节点按估价值从小至大的顺序进行排序,然后转第2步。 广度优先搜索、代价树的广度优先搜索是全局择优搜索的特例。 1968年,彼得.哈特对A算法进行了很小的修改,并证明了当估价函数满足一定的限制条件时,算法一定可以找到最优解 估价函数满足一定限制条件的算法称为A*算法 f (x) = g (x) + h (x) A*算法的限制条件 大于0 不大于x到目标的实际代价 彼得.哈特 6.2.8 A*算法 利用A*算法求解八数码问题 估价函数的定义 f (x) = g (x) + h (x) g (x):从初始状态到x需要进行的移动操作的次数 h (x): =x状态下错放的棋子数 满足限制条件 1 2 3 8 4 5 6 7 1 2 3 8 4 5 6 7 8 1 3 2 4 5 6 7 h(x)=1 h(x)=2 h(x)=4 4 5 6 3 1 2 3 8 4 5 6 7 1 2 3 8 4 5 6 7 1 2 3 8 4 5 6 7 1+3 1+5 1+5 1 2 3 8 4 5 6 7 1 2 3 8
文档评论(0)