第 3 讲 搜 索 原 理.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文档。上传文档
查看更多
第 三 章 搜 索 原 理 3.1 盲 目 搜 索 一、图 的 搜 索 策 略 二、 宽 度 优 先 搜索 三、 深 度 优 先 搜索 四、 等 代 价 搜索 3.2 启 发 式 搜 索 一、启 发 式 搜 索 策 略 二、 估 价 函 数 (evaluation function) 三、有序搜索 (ordered search ) 3.3 A* 算 法 一、A*算法的估价函数 二、A算法和A*算法的定义 三、A* 算 法 下图表示出把这个估价函数应用于八数码难题的结果。图中圆圈内的数字表示该节点的f值,不带圈的数字表示节点扩展的顺序。从图可见,这里所求得的解答路径和用其它搜索方法找到的解答路径相同。不过,估价函数的应用显著地减少了被扩展的节点数(如果我们只用估价函数f(n)=d(n),那么我们就得到宽度优先搜索过程)。   正确地选择估价函数对确定搜索结果具有决定性的作用。使用不能识别某些节点真实希望的估价函数会形成非最小代价路径;而使用一个过多地估计了全部节点希望的估价函数(就像宽度优先搜索方法得到的估价函数一样)又会扩展过多的节点。 让我们描述一个特别的估价函数,这个估价函数f使得在任意节点上其函数值f(n)能估算出从节点S到节点n的最小代价路径的代价与从节点n到某一目标节点的最小代价路径的代价之总和,也就是说f(n)是约束通过节点n的一条最小代价路径的代价的一个估计。因此,OPEN表上具有最小f值的那个节点就是所估计的加有最少严格约束条件的节点,而且下一步要扩展这个节点是合适的。 在正式讨论A*算法之前,我们先介绍几个有用的记号 (1)k(ni,nj):表示任意两个节点ni和nj之间最小代价路径的实际代价(对于两节点间没有通路的节点,函数k没有定义)。 于是,从节点n到某个具体的目标节点ti,某一条最小代价路径的代价可由k(n,ti)给出。 (2)h*(n):表示整个目标节点集合{ti}上所有k(n,ti)中最小的一个。 因此,h*(n)就是从n到目标节点最小代价路径的代价,而且从n到目标节点能够获得h*(n)的任一路径就是一条从n到某个目标节点的最佳路径(对于任何不能到达目标节点的节点n,函数h*没有定义)。 通常我们感兴趣的是想知道从已知起始节点S到任意节点n的一条最佳路径的代价k(S,n)。为此,引进一个新函数g*,这将使我们的记号得到某些简化。对所有从S开始可达到n的路径来说,函数g*定义为:  (3)g*(n)=k(S,n) 其次,我们定义函数f*,使得在任一节点n上其函数值f*(n)就是从节点S到节点n的一条最佳路径的实际代价加上从节点n到某目标节点的一条最佳路径的代价之和,即: (4)f*(n)=g*(n)+ h*(n) 因而f*(n)值就是从S开始约束通过节点n的一条最佳路径的代价,而f*(S)=h*(S)是一条从S到某个目标节点中间无约束的一条最佳路径的代价。 我们希望估价函数f是f*的一个估计,此估计可由下式给出:  (5)f(n)=g(n)+h(n),其中:g是g*的估计;h是h*的估计。? 对于g(n)来说,一个明显的选择就是搜索树中从S到n这段路径的代价,这一代价可以由从n到S寻找指针时,把所遇到的各段弧线的代价加起来给出(这条路径就是到目前为止用搜索算法找到的从S到n的最小代价路径)。这个定义包含了g(n)≥g*(n)。 对于h*(n)的估计h(n),它依赖于有关问题的领域的启发信息。这种信息可能与八数码难题中的函数W(n)所用的那种信息相似。我们把h叫做启发函数。 定义1. 在GRAPHSEARCH过程中,如果第8步的重排OPEN表是依据f(x)=g(x)+h(x)进行的,则称该过程为A算法。 定义2. 在A算法中,如果对所有的x,h(x)≤h*(x)成立,则称h(x)为h*(x)的下界,它表示某种偏于保守的估计。 定义3. 采用h*(x)的下界h(x)为启发函数的A算法, 称为A*算法。当h=0时,A*算法就变为有序搜索算法。 * 上一讲中我们研究了知识表示方法,为人工智能问题的求解打下了基础。从问题表示到问题的解决,有一个求解的过程。接下来要研究的是实现求解的过程,采用的基本方法包括搜索和推理。本讲先介绍搜索技术,将要讨论问题求解的搜索原理,包括一些早期的搜索技术或用于解决比较简单问题的搜索原理和一些比较新的能够求解比较复杂问题的搜索原理,包括AO*算法、遗传算法和模拟退火算法等。 盲目搜索又叫做无信息搜索,一般只适用于求解比较简单的问题。下面我们将学习两种盲目搜索方法: 宽度优先搜索 深度优先搜索。 可

文档评论(0)

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

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

1亿VIP精品文档

相关文档