启发式图搜索.ppt_第1页
启发式图搜索.ppt_第2页
启发式图搜索.ppt_第3页
启发式图搜索.ppt_第4页
启发式图搜索.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.4启发式图搜索,启发式搜索,定义:为减小搜索范围而需要利用某些已知的、有关具体问题领域的特性信息。此种信息叫做启发信息。利用启发信息的搜索方法叫做启发式搜索方法。特点:重排OPEN表,选择最有希望的节点加以扩展种类:最佳优先搜索、A*算法等,启发式搜索策略,有关具体问题领域的信息常常可以用来简化搜索。一个比较灵活(但代价也较大)的利用启发信息的方法是应用某些准则来重新排列每一步OPEN表中所有节点的顺序。然后,搜索就可能沿着某个被认为是最有希望的边缘区段向外扩展。应用这种排序过程,需要某些估算节点“希望”的量度,这种量度叫做估价函数(evalutionfunction),估价函数为获得某些节点“希望”的启发信息,提供一个评定侯选扩展节点的方法,以便确定哪个节点最有可能在通向目标的最佳路径上。f(n)表示节点n的估价函数值,建立估价函数的一般方法:试图确定一个处在最佳路径上的节点的概率;提出任意节点与目标集之间的距离量度或差别量度;或者在棋盘式的博弈和难题中根据棋局的某些特点来决定棋局的得分数。这些特点被认为与向目标节点前进一步的希望程度有关。应用节点“希望”程度(估价函数值)重排OPEN表。,登山法和最佳优先搜索,登山法的引入瞎子在山上某点,想要爬到山顶,怎么办?从立足处用明杖向前一试,觉得高些,就向前一步,如果前面不高,向左一试,高就向左一步,不高再试后面,高就退一步,不高再试右面,高就向右走一步,四面都不高,就原地不动.总之,高了就走一步,就这样一步一步地走,就走上了山顶。这个向各方向的测试“步”,就是“登山法”的估价函数f(n)。,登山法算法步骤:,设定初始节点n;如果n是目标,则成功退出;扩展n,得到其子节点集合;从该集合中选取f(n)为最小的节点n;将n设为n,返回第步。,最佳优先搜索算法,是“登山法”的推广,但它是对OPEN表中所有节点的f(n)进行比较,按从小到大的顺序重排OPEN表。其算法效率类似于纵向搜索算法,但使用了与问题特性相关的估价函数来确定下一步待扩展的节点,因此是一种启发式搜索方法。,开始,把S放入OPEN表,计算估价函数f(s),OPEN表为空表?,把OPEN表中的第一个节点n放入CLOSED表,n为目标节点吗?,扩展n,计算所有子节点的估价函数值,并提供它们返回节点n的指针。,失败,成功,最佳优先搜索算法框图,是,否,是,否,把子节点送入OPEN表,并对其中的所有节点按估价函数值由小到大重排。,迷宫问题如下,F是入口,B是出口,试采用最佳优先搜索算法进行求解。,举例:迷宫问题,0,1,2,3,x,1,2,3,y,F,G,H,E,C,A,D,B,2,2,2,4,1,1,1,1,解:估价函数f(n)采用每个节点与目标节点在坐标系上的距离来表示。例如,E点与目标节点B之间的空间距离是2+2=4,两个2分别是E与B在x轴及y轴上的距离。,注:每个节点小括号内的数值表示该节点到目标的空间距离,即该点的估价函数值。搜索得到的路径如黄线所示。,F(6),G(5),H(3),E(4),A(2),B(0),1,2,3,4,5,C(3),6,举例:,八数码魔方(8-puzzleproblem),5,7,(3),(5),(5),(4),(3),(3),(2),(4),(3),(4),(1),(0),(2),八数码魔方的最佳优先搜索树,1,2,3,8,4,6,(4),7,5,搜索得到的路径如黄线所示,本题采用了简单的估价函数f(n)=W(n)其中:W(n)用来计算对应于节点n的数据库中错放的棋子个数。因此,初始节点棋局的f(n)值等于4。,第步有三种情况,我们选择其中f(n)最小的:其它依次类推.最后用了7步得出了结果.,(3),(5),(5),A算法,最佳优先算法有时无法得到最优解,因为它的估价函数f的选取时,忽略了从初始节点到目前节点的代价值。所以,可考虑每个节点n的估价函数f(n)分为两个分量:从起始节点到节点n的代价g(n)以及从节点n到达目标节点代价的估算值h(n)。f(n)=g(n)+h(n),f(n)节点n的估价函数;g(n)评价函数,从初始节点S到n节点的实际代价;h(n)启发函数,从n到目标节点Sg最佳路径的估计代价。这里h(n)体现了搜索的启发信息,因为g(n)是已知的。如果说详细点,g(n)代表了搜索的宽度优先趋势。但是当h(n)g(n)时,可以省略g(n),而提高效率。,A算法的引入:,g(n)的计算方法:,g(n)就是在搜索树中从S到n这段路径的代价,这一代价可以由从n到S寻找指针时,把所遇到的各段弧线的代价加起来给出(这条路径就是到目前为止用搜索算法找到的从S到n的最小代价路径)。,h(n)的计算方法:,h(n)依赖于有关问题的领域的启发信息。这种信息可能与八数码魔方问题中的函数W(n)所用的那种信息相似。把h(n)叫做启发函数。,举例:,八数码魔方(8-puzzleproblem),5,7,(1+3=4),(1+5=6),(1+5=6),(2+4=6),(2+3=5),(2+3=5),(3+2=5),(3+4=7),(3+3=6),(3+4=7),(4+1=5),(5+0=5),(5+2=7),八数码魔方的A算法搜索树,1,2,3,8,4,6,(0+4=4),7,5,搜索得到的路径如黄线所示,本题采用的估价函数为:f(n)=g(n)+W(n)其中:W(n)用来计算对应于节点n的数据库中错放的棋子个数;g(n)为从起点到n的代价值。因此,第二层的棋局的f(n)=1+5=6。,1,2,3,8,4,5,6,7,g(n),h(n),4.最佳图搜索算法A*(A*算法),在A算法中,如果满足条件:h(n)h*(n)则A算法称为A*算法。,对节点n定义f*(n)=g*(n)+h*(n),表示从S开始通过节点n的一条最佳路径的代价。估价函数f定义为:f(n)=g(n)+h(n)g是g*的估计,h是h*的估计定义1在图搜索过程中,如果重排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*算法。,A*条件举例,8数码问题h1(n)=“不在位”的将牌数h2(n)=将牌

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论