《图搜索技术》PPT课件.ppt
《《图搜索技术》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《图搜索技术》PPT课件.ppt(63页珍藏版)》请在三一办公上搜索。
1、1,第八章图搜索技术,李伟生信科大厦19楼Tel:62471342,2,第8章 图搜索技术,8.1 状态图搜索策略 8.2 启发式搜索 8.3 与或图搜索 8.4 博弈树搜索,3,迷宫问题:把迷宫每一个位置以及入口和出口都作为节点,把通道作为边,则迷宫可由一个有向图表示。走迷宫实际就是从该有向图的初始节点(入口)出发,寻找目标节点(出口)的问题,或者是寻找通向目标节点(出口)的路径的问题。8数码问题:在一个3*3的方格棋盘上放置着1,2,3,4,5,6,7,8八个数码,每个数码占一格,且有一个空格。这些数码可在棋盘上移动,其移动规则是:与空格相邻的数码才可以移入空格。问题:对于指定的初始棋局和
2、目标棋局,给出数码的移动序列。如果把一个棋局作为一个节点,相邻的节点就可以通过移动数码,一个一个地产生出来。这样,所有节点就可由它们相邻的关系连成一个有向图,图中的一条边就对应一次数码移动,反之,一次数码移动就对应着图中的一条边,边也就代表着一个移动规则或者移动规则的一次执行。该问题也就是要在该有向图中寻找目标节点,或找一条从初始节点到目标节点的路径问题。,例,4,上述两个问题虽然内容不同,但抽象地看,它们都是在某个有向图中寻找目标或路径的问题。我们把这种描述问题的有向图称为状态空间图,简称状态图。,例,5,8.1.1 图搜索策略的定义 8.1.2 图搜索算法中的几个重要名词术语 8.1.3
3、图搜索(GRAPH SEARCH)的一般过程 8.1.4 图搜索方法分析,8.1 状态图搜索策略,6,图搜索策略可看作一种在图中寻找路径的方法。初始节点和目标节点分别代表初始数据库和满足终止条件的数据库。求得把一个数据库变换为另一数据库的规则序列问题就等价于求得图中的一条路径问题。研究图搜索的一般策略,能够给出图搜索过程的一般步骤。,8.1.1 图搜索策略的定义,7,(1)OPEN表与CLOSED表(2)搜索(状态)图与搜索树,登记当前待考查的节点,记录考查过的节点,OPEN,CLOSED,8.1.2 图搜索算法中的几个重要名词术语,8,(1)建立一个只含有起始节点S的搜索图G,把S放到一个叫
4、做OPEN的未扩展节点表中。(2)建立一个叫做CLOSED的已扩展节点表,其初始为空表。(3)LOOP:若OPEN表是空表,则失败退出。(4)选择OPEN表上的第一个节点,把它从OPEN表移出并放进CLOSED表中。称此节点为节点n。(5)若n为一目标节点,则有解并成功退出,此解是追踪图G中沿着指针从n到S这条路径而得到的(指针将在第7步中设置)。(6)扩展节点n,同时生成不是n的祖先的那些后继节点的集合M。把M的这些成员作为n的后继节点添入图G中。,8.1.3 图搜索的一般过程,9,(7)对那些未曾在G中出现过的(既未曾在OPEN表上或CLOSED表上出现过的)M成员设置一个通向n的指针。把
5、M的这些成员加进OPEN表。对已经在OPEN或CLOSED表上的每一个M成员,确定是否需要更改通到n的指针方向。对已在CLOSED表上的每个M成员,确定是否需要更改图G中通向它的每个后裔节点的指针方向。(8)按某一任意方式或按某个探试值,重排OPEN表。(9)GO LOOP。,图搜索的一般过程,10,图搜索的一般过程框图,11,图搜索过程的第8步(按某一方式重排OPEN表)对OPEN表上的节点进行排序,以便能够从中选出一个“最好”的节点作为第4步扩展用。这种排序可以是任意的即盲目的(属于盲目搜索),也可以用以后要讨论的各种启发思想或其它准则为依据(属于启发式搜索)。每当被选作扩展的节点为目标节
6、点时,这一过程就宣告成功结束。这时,能够重现从起始节点到目标节点的这条成功路径,其办法是从目标节点按指针向S返回追溯。当搜索树不再剩有未被扩展的端节点时,过程就以失败告终(某些节点最终可能没有后继节点,所以OPEN表可能最后变成空表)。在失败终止的情况下,从起始节点出发,一定达不到目标节点。1.宽度优先搜索2.深度优先搜索,8.1.4 图搜索方法分析,12,1)定义如果搜索是以接近起始节点的程度依次扩展节点的,那么这种搜索就叫做宽度优先搜索。(breadth-first search)2)特点这种搜索是逐层进行的;在对下一层的任一节点进行搜索之前,必须搜索完本层的所有节点。,1.宽度优先搜索,
7、13,3)宽度优先搜索算法,(1)把起始节点放到OPEN表中(如果该起始节点为一目标节点,则求得一个解答)。(2)如果OPEN是个空表,则没有解,失败退出;否则继续。(3)把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED的扩展节点表中。(4)扩展节点n。如果没有后继节点,则转向上述第(2)步。(5)把n的所有后继节点放到OPEN表的末端,并提供从这些后继节点回到n的指针。(6)如果n的任一个后继节点是个目标节点,则找到一个解答,成功退出;否则转向第(2)步。,宽度优先搜索,14,(1)把起始节点放到OPEN表中(如果该起始节点为一目标节点,则求得一个解答)。(2)如果OPEN是个
8、空表,则没有解,失败退出;否则继续。(3)把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED的扩展节点表中。(4)扩展节点n。如果没有后继节点,则转向上述第(2)步。(5)把n的所有后继节点放到OPEN表的末端,并提供从这些后继节点回到n的指针。(6)如果n的任一个后继节点是个目标节点,则找到一个解答,成功退出;否则转向第(2)步。,宽度优先搜索,15,4)宽度优先搜索方法分析:,宽度优先搜索是图搜索一般过程的特殊情况,将图搜索一般过程中的第8步具体化为本算法中的第6步,这实际是将OPEN表作为“先进先出”的队列进行操作。宽度优先搜索方法能够保证在搜索树中找到一条通向目标节点的最短
9、途径;这棵搜索树提供了所有存在的路径(如果没有路径存在,那么对有限图来说,我们就说该法失败退出;对于无限图来说,则永远不会终止)。,宽度优先搜索,16,5)例:八数码难题,把宽度优先搜索应用于八数码难题时所生成的搜索树,这个问题就是要把初始棋局变为如下目标棋局的问题:,2 8 31 47 6 5,1 2 38 47 6 5,宽度优先搜索,17,八数码难题宽度优先搜索树,18,1)定义在此搜索中,首先扩展最新产生的(即最深的)节点。深度相等的节点可以任意排列。这种盲目(无信息)搜索叫做深度优先搜索(depth-first search)。2)特点首先,扩展最深的节点的结果使得搜索沿着状态空间某条
10、单一的路径从起始节点向下进行下去;只有当搜索到达一个没有后裔的状态时,它才考虑另一条替代的路径。,2.深度优先搜索,19,3)深度界限为了避免考虑太长的路径(防止搜索过程沿着无益的路径扩展下去),往往给出一个节点扩展的最大深度棗深度界限。任何节点如果达到了深度界限,那么都将把它们作为没有后继节点处理。4)含有深度界限的深度优先搜索算法请课后自学。,深度优先搜索,20,1.为什么需要启发式搜索 盲目搜索效率低,耗费过多的计算空间与时间,这是组合爆炸的一种表现形式。2.定义 进行搜索技术一般需要某些有关具体问题领域的特性的信息,把此种信息叫做启发信息。利用启发信息的搜索方法叫做启发式搜索方法。,8
11、.2 启发式搜索,21,3.启发式搜索策略有关具体问题领域的信息常常可以用来简化搜索。一个比较灵活(但代价也较大)的利用启发信息的方法是应用某些准则来重新排列每一步OPEN表中所有节点的顺序。然后,搜索就可能沿着某个被认为是最有希望的边缘区段向外扩展。应用这种排序过程,需要某些估算节点“希望”的量度,这种量度叫做估价函数(evalution function)。,启发式搜索,22,4.估价函数为获得某些节点“希望”的启发信息,提供一个评定侯选扩展节点的方法,以便确定哪个节点最有可能在通向目标的最佳路径上。f(n)表示节点n的估价函数值建立估价函数的一般方法:试图确定一个处在最佳路径上的节点的概
12、率;提出任意节点与目标集之间的距离量度或差别量度;或者在棋盘式的博弈和难题中根据棋局的某些特点来决定棋局的得分数。这些特点被认为与向目标节点前进一步的希望程度有关。,启发式搜索,23,1、定义用估价函数f来排列GRAPHSEARCH第8步中OPEN表上的节点。应用某个算法选择OPEN表上具有最小f值的节点作为下一个要扩展的节点。这种搜索方法叫做有序搜索(ordered search)或最佳优先搜索(best-first search),而其算法就叫做有序搜索算法或最佳优先算法。尼尔逊(Nilsson)曾提出一个有序搜索的基本算法。估价函数f是这样确定的:一个节点的希望程序越大,其f值就越小。被
13、选为扩展的节点,是估价函数最小的节点。,8.2.1 有序搜索,24,2、实质,选择OPEN表上具有最小f值的节点作为下一个要扩展的节点,即总是选择最有希望的节点作为下一个要扩展的节点。,有序搜索,25,3、有序状态空间搜索算法,(1)把起始节点S放到OPEN表中,计算f(S)并把其值与节点S联系起来。(2)如果OPEN是个空表,则失败退出,无解。(3)从OPEN表中选择一个f值最小的节点i。结果有几个节点合格,当其中有一个为目标节点时,则选择此目标节点,否则就选择其中任一个节点作为节点i.(4)把节点i从OPEN表中移出,并把它放入CLOSED的扩展节点表中。(5)如果i是个目标节点,则成功退
14、出,求得一个解。(6)扩展节点i,生成其全部后继节点。对于i的每一个后继节点j:,有序搜索,26,(6)扩展节点i,生成其全部后继节点。对于i的每一个后继节点j:(a)计算f(j)。(b)如果j既不在OPEN表中,又不在CLOSED表中,则用估价函数f把它添入OPEN表。从j加一指向其父辈节点i的指针,以便一旦找到目标节点时记住一个解答路径。(c)如果j已在OPEN表上或CLOSED表上,则比较刚刚对j计算过的f值和前面计算过的该节点在表中的f值。如果新的f值较小,则(i)以此新值取代旧值。(ii)从j指向i,而不是指向它的父辈节点。(iii)如果节点j在CLOSED表中,则把它移回OPEN表
15、(7)转向(2),即GO TO(2)。,有序搜索,27,4、有序搜索方法分析,宽度优先搜索和深度优先搜索统统是有序搜索技术的特例。有序搜索的有效性直接取决于f的选择,如果选择的f不合适,有序搜索就可能失去一个最好的解甚至全部的解。如果没有适用的准确的希望量度,那么f的选择将涉及两个方面的内容:一方面是一个时间和空间之间的折衷方案;另一方面是保证有一个最优的解或任意解。,有序搜索,28,5、例:八数码难题,采用了简单的估价函数 f(n)=d(n)+W(n)其中:d(n)是搜索树中节点n的深度;W(n)用来计算对应于节点n的数据库中错放的棋子个数。因此,起始节点棋局2 8 31 6 47 5的f值
16、等于0+4=4。,1 2 38 47 6 5,有序搜索,29,八数码难题的有序搜索树,有序搜索,30,A*算法是一种有序搜索算法,其特点在于对估价函数的定义上。,8.2.2 A*算法,31,1、几个记号,令k(ni,nj)表示任意两个节点ni和nj之间最小代价路径的实际代价(对于两节点间没有通路的节点,函数k没有定义)。于是,从节点n到某个具体的目标节点ti,某一条最小代价路径的代价可由k(n,ti)给出。令h*(n)表示整个目标节点集合ti上所有k(n,ti)中最小的一个,因此,h*(n)就是从n到目标节点最小代价路径的代价,而且从n到目标节点能够获得h*(n)的任一路径就是一条从n到某个目
17、标节点的最佳路径(对于任何不能到达目标节点的节点n,函数h*没有定义)。,A*算法,32,2、估价函数的定义,定义g*为 g*(n)=k(S,n)定义函数f*,使得在任一节点n上其函数值f*(n)就是从节点S到节点n的一条最佳路径的实际代价加上从节点n到某目标节点的一条最佳路径的代价之和,即f*(n)=g*(n)+h*(n),A*算法,33,希望估价函数f是f*的一个估计,此估计可由下式给出:f(n)=g(n)+h(n)其中:g是g*的估计;h是h*的估计。对于g(n)来说,一个明显的选择就是搜索树中从S到n这段路径的代价,这一代价可以由从n到S寻找指针时,把所遇到的各段弧线的代价加起来给出(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图搜索技术 搜索 技术 PPT 课件

链接地址:https://www.31ppt.com/p-5631198.html