《第五章状态空间搜索策略PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第五章状态空间搜索策略PPT讲稿.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第五章状态空间搜索策略第1页,共17页,编辑于2022年,星期三定义 搜索:根据问题的实际情况,按照一定的策略或规则,从知识库中寻找可利用的知识,从而构造出一条使问题获得解决的推理路线5.1 搜索的概念及种类5.1.1 搜索的概念 第2页,共17页,编辑于2022年,星期三5.1.2 搜索的种类 5.1 搜索的概念及种类1、状态空间图搜索:包括三种状态空间图搜索方法,即宽度优先搜索、深度优先搜索和状态空间图搜索。2、启发式搜索:启发式搜索弥补状态空间图搜索的不足,提高搜索效率。第3页,共17页,编辑于2022年,星期三1 1、定义、定义宽度优先搜索可被推广用来解决寻找从起始状态至目标状态的具有
2、最小代价的路径问题,这种推广了的宽度优先搜索算法叫做状态空间图搜索算法。2 2、状态空间图搜索中的几个记号、状态空间图搜索中的几个记号起始节点记为S;从节点i到它的后继节点j的连接弧线代价记为c(i,j);从起始节点S到任一节点i的路径代价记为g(i)。3 3、状态空间图搜索算法、状态空间图搜索算法(请同学们课后认真阅读本算法,指出与宽度优先、深度优先算法有何特别之处。)4 4、状态空间图搜索方法分析、状态空间图搜索方法分析 如果所有的连接弧线具有相等的代价,那么状态空间图算法就简化为宽度优先搜索算法。5.2 状态空间图搜索策略5.2.1 状态空间图搜索策略第4页,共17页,编辑于2022年,
3、星期三1 1、定义、定义如果搜索是以接近起始节点的程度依次扩展节点的,那么这种搜索就叫做宽度优先搜索(breadth-first search)。2 2、特点、特点这种搜索是逐层进行的;在对下一层的任一节点进行搜索之前,必须搜索完本层的所有节点。3 3、宽度优先搜索算法、宽度优先搜索算法(1)把起始节点放到OPEN表中(如果该起始节点为一目标节点,则求得一个解答)。(2)如果OPEN是个空表,则没有解,失败退出;否则继续。(3)把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED的扩展节点表中。5.2 状态空间图搜索策略5.2.2 宽度优先搜索策略第5页,共17页,编辑于2022年,
4、星期三(4)扩展节点n。如果没有后继节点,则转向上述第(2)步。(5)把n的所有后继节点放到OPEN表末端,并提供从这些后继节点回到n的指针。(6)如果n的任一个后继节点是个目标节点,则找到一个解答,成功退出;否则转向第(2)步。4 4、宽度优先搜索方法分析:、宽度优先搜索方法分析:宽度优先搜索是图搜索一般过程的特殊情况,将图搜索一般过程中的第8步具体化为本算法中的第6步,这实际是将OPEN表作为“先进先出”的队列进行操作。宽度优先搜索方法能够保证在搜索树中找到一条通向目标节点的最短途径;这棵搜索树提供了所有存在的路径(如果没有路径存在,那么对有限图来说,我们就说该法失败退出;对于无限图来说,
5、则永远不会终止)。5.2 状态空间图搜索策略5.2.2 宽度优先搜索策略第6页,共17页,编辑于2022年,星期三5 5、例:、例:把宽度优先搜索应用于八数码难题时所生成的搜索树,这个问题就是要把初始棋局变为如下目标棋局的问题:1 2 3 8 4 7 6 5提问提问:宽度优先搜索方法中OPEN表需要按什么方式进行操作?A先进后出 B先进先出5.2 状态空间图搜索策略5.2.2 宽度优先搜索策略第7页,共17页,编辑于2022年,星期三1 1、定义、定义 在此搜索中,首先扩展最新产生的(即最深的)节点。深度相等的节点可以任意排列。这种盲目(无信息)搜索叫做深度优先搜索(depth-first s
6、earch)。2 2、特点、特点 首先,扩展最深的节点的结果使得搜索沿着状态空间某条单一的路径从起始节点向下进行下去;只有当搜索到达一个没有后裔的状态时,它才考虑另一条替代的路径。3 3、深度界限、深度界限 为了避免考虑太长的路径(防止搜索过程沿着无益的路径扩展下去),往往给出一个节点扩展的最大深度棗深度界限。任何节点如果达到了深度界限,那么都将把它们作为没有后继节点处理。5.2 状态空间图搜索策略5.2.3 深度优先搜索策略第8页,共17页,编辑于2022年,星期三4 4、含有深度界限的深度优先搜索算法、含有深度界限的深度优先搜索算法请同学们课后自学,并回答课后思考题。思考题思考题:有界深度
7、优先搜索方法能够保证在搜索树中找到一条通向目标节点的最短途径吗?5.2 状态空间图搜索策略5.2.3 深度优先搜索策略第9页,共17页,编辑于2022年,星期三1 1、为什么需要启发式搜索、为什么需要启发式搜索盲目搜索效率低,耗费过多的计算空间与时间,这是组合爆炸的一种表现形式。2 2、定义、定义 进行搜索技术一般需要某些有关具体问题领域的特性的信息,把此种信息叫做启发信息。利用启发信息的搜索方法叫做启发式搜索方法。3 3、启发式搜索策略、启发式搜索策略有关具体问题领域的信息常常可以用来简化搜索。一个比较灵活(但代价也较大)的利用启发信息的方法是应用某些准则来重新排列每一步OPEN表中所有节点
8、的顺序。然后,搜索就可能沿着某个被认为是最有希望的边缘区段向外扩展。应用这种排序过程,需要某些估算节点“希望”的量度,这种量度叫做估价函数(evalution function)。5.3 启发式搜索策略5.3.1启发信息与估价函数第10页,共17页,编辑于2022年,星期三4、估价函数、估价函数为获得某些节点“希望”的启发信息,提供一个评定侯选扩展节点的方法,以便确定哪个节点最有可能在通向目标的最佳路径上。f(n)表示节点n的估价函数值 建立估价函数的一般方法:试图确定一个处在最佳路径上的节点的概率;提出任意节点与目标集之间的距离量度或差别量度;或者在棋盘式的博弈和难题中根据棋局的某些特点来决
9、定棋局的得分数。这些特点被认为与向目标节点前进一步的希望程度有关。5.3 启发式搜索策略5.3.1启发信息与估价函数第11页,共17页,编辑于2022年,星期三定义定义用估价函数f来排列GRAPHSEARCH第8步中OPEN表上的节点。应用某个算法(例如等代价算法)选择OPEN表上具有最小f值的节点作为下一个要扩展的节点。这种搜索方法叫做最佳优先搜索(best-first search),而其算法就叫做最佳优先算法。尼尔逊(Nilsson)曾提出一个有序搜索的基本算法。估价函数f是这样确定的:一个节点的希望程序越大,其f值就越小。被选为扩展的节点,是估价函数最小的节点。5.3 启发式搜索策略5
10、.3.2最佳优先搜索第12页,共17页,编辑于2022年,星期三 A*算法是一种有序搜索算法,其特点在于对估价函数的定义上。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到某个目标节点的最佳路径(对于任何不能到达目标节点的节点n,函数h*没有定义
11、)。5.3 启发式搜索策略5.3.3A*算法第13页,共17页,编辑于2022年,星期三2、估价函数的定义定义g*为g*(n)=k(S,n)定义函数f*,使得在任一节点n上其函数值f*(n)就是从节点S到节点n的一条最佳路径的实际代价加上从节点n到某目标节点的一条最佳路径的代价之和,即f*(n)=g*(n)+h*(n)希望估价函数f是f*的一个估计,此估计可由下式给出:f(n)=g(n)+h(n)5.3 启发式搜索策略5.3.3A*算法第14页,共17页,编辑于2022年,星期三其中:g是g*的估计;h是h*的估计。对于g(n)来说,一个明显的选择就是搜索树中从S到n这段路径的代价,这一代价可
12、以由从n到S寻找指针时,把所遇到的各段弧线的代价加起来给出(这条路径就是到目前为止用搜索算法找到的从S到n的最小代价路径)。这个定义包含了g(n)g*(n)。h*(n)的估计h(n)依赖于有关问题的领域的启发信息。这种信息可能与八数码难题中的函数W(n)所用的那种信息相似。把h叫做启发函数。5.3 启发式搜索策略5.3.3A*算法第15页,共17页,编辑于2022年,星期三3、A*算法定义定义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*算法就变为有序搜索算法。5.3 启发式搜索策略5.3.3A*算法第16页,共17页,编辑于2022年,星期三4、A*算法A*算法描述参考教材。提问:由g*(n)和g(n)的定义知g*(n)g(n)A对 B错思考:试比较宽度优先搜索、有界深度优先搜索及有序搜索的搜索效率,并以实例数据加以说明 5.3 启发式搜索策略5.3.3A*算法返回目录返回目录第17页,共17页,编辑于2022年,星期三