(1.1.1.24)--第4章 图搜索技术人工智能导论.ppt
《(1.1.1.24)--第4章 图搜索技术人工智能导论.ppt》由会员分享,可在线阅读,更多相关《(1.1.1.24)--第4章 图搜索技术人工智能导论.ppt(88页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 图搜索技术图搜索技术 第第4章章 图搜索技术图搜索技术4.1 状态图搜索状态图搜索4.2 状态图问题求解状态图问题求解4.3 与或图搜索与或图搜索4.4 与或图问题求解与或图问题求解4.5 博弈树搜索博弈树搜索第第4章章 图搜索技术图搜索技术 4.1 状态图搜索状态图搜索4.1.1状态图例4.1如图是一个迷宫。将迷宫的每一个格子以及入口和出口都作为节点,把通道作为边,则该迷宫可以由一个有向图表示。走迷宫其实就是从该有向图的初始节点(入口)出发,寻找目标节点(出口)的路径的问题。第第4章章 图搜索技术图搜索技术 例4.2八个数码问题。每个数码占一格,有一个空格。数码在棋盘上移动规则是
2、:与空格相邻的数码方可移入空格。问题:对于指定的初始棋局和目标棋局,给出数码的移动序列。2831476581324765事实上,有许多问题(如梵塔问题、旅行商问题、八皇后问题、农夫过河问题、路径规划、定理证明、演绎推理、机器人行动规划等)都可以归结为在某一状态图中寻找目标或路径的问题。第第4章章 图搜索技术图搜索技术 4.1.2状态图搜索在状态图中寻找目标或路径的基本方法就是搜索:从初始节点出发,沿着与之相连的边试探地前进,寻找目标节点的过程(也可以反向进行)。1.搜索方式计算机实现状态图搜索的两种最基本方式:树式搜索:从树根出发,是以“画树”的方式进行搜索。线式搜索:在搜索过程中只记录当前走
3、过的节点和边,所形成的轨迹是一条线。进一步可回溯/不可回溯搜索。第第4章章 图搜索技术图搜索技术 2.搜索策略搜索具有探索性,要提高搜索效率(尽快地找到目标节点),或要找最佳路径(最佳解)就必须注意搜索策略。对于状态图搜索,已经提出了许多策略,它们大体可分为盲目搜索和启发式(heuristic)搜索两大类。盲目搜索:无向导启发式搜索:有向导(全局最优/局部最优/最佳图搜索)对于类树搜索:深度优先/广度优先第第4章章 图搜索技术图搜索技术 3.搜索算法框架由于搜索的目的是为了寻找初始节点到目标节点的路径,所以在搜索过程中就得随时记录搜索轨迹。为此,用一个称为CLOSED表的动态数据结构来专门记录
4、考查过的节点。对于树式搜索来说,CLOSED表中存储的是一棵不断成长的搜索树;而对于线式搜索来说,CLOSED表中存储的是一条不断伸长的折线,它可能本身就是所求的路径(如果能找到目标节点的话)。编号节点父节点编号CLOSED表第第4章章 图搜索技术图搜索技术 另一方面,对于树式搜索来说,还得不断地把待考查的节点组织在一起,并做某种排列,以便控制搜索的方向和顺序。为此,采用一个称为OPEN表的动态数据结构,来专门登记当前待考查的节点。节点父节点编号OPEN表第第4章章 图搜索技术图搜索技术 4.1.3穷举式搜索为简单起见,先讨论树型结构的状态图搜索,并仅限于树式搜索。按搜索树生成方式的不同,树式
5、穷举搜索又分为广度优先和深度优先两种搜索方式。广度优先(WSF)和深度优先(DSF)是最基本的树式搜索策略,其他搜索策略都是建立在它们之上的。第第4章章 图搜索技术图搜索技术 1.广度优先搜索广度优先搜索始终先在同一级节点中考查,只有当同一级节点考查完之后,才考查下一级节点。或者说,是以初始节点为根节点,向下逐级扩展搜索树。所以,广度优先策略的搜索树是自顶向下一层一层逐渐生成的。广度优先搜索算法:步1把初始节点S0放入OPEN表中;步2若OPEN表为空,则搜索失败,退出。步3取OPEN表中前面第一个节点N放入CLOSED表中,并冠以顺序编号n;步4若目标节点Sg=N,则搜索成功,结束。步5若N
6、不可扩展,则转步2;步6扩展N,将其所有子节点配上指向N的返回指针依次放入OPEN表的尾部,转步2。第第4章章 图搜索技术图搜索技术 例4.3用广度优先搜索策略解八数码难题。由于把一个与空格相邻的数码移入空格,等价于把空格向数码方向移动一位。所以,该题中给出的数码走步规则也可以简化为:对空格可施行左移、右移、上移和下移等四种操作。设初始节点S0和目标节点Sg分别如图43的初始棋局和目标棋局所示,我们用广度优先搜索策略,则可得到如图45所示的搜索树。第第4章章 图搜索技术图搜索技术 图45八数码问题的广度优先搜索第第4章章 图搜索技术图搜索技术 2.深度优先搜索深度优先搜索就是在搜索树的每一层始
7、终先只扩展一个子节点,不断地向纵深前进,直到不能再前进(到达叶子节点或受到深度限制)时,才从当前节点返回到上一级节点,沿另一方向又继续前进。这种方法的搜索树是从树根开始一枝一枝逐渐形成的。深度优先搜索算法:步1把初始节点S0放入OPEN表中;步2若OPEN表为空,则搜索失败,退出。步3取OPEN表头节点N放入CLOSED表中,并冠以顺序编号n;步4若目标节点Sg=N,则搜索成功,结束。步5若N不可扩展,则转步2;步6扩展N,将其所有子节点配上指向N的返回指针依次放入OPEN表的首部,转步2。第第4章章 图搜索技术图搜索技术 例4.4对于八数码问题,应用深度优先搜索策略,可得如图46所示的搜索树
8、。深度优先搜索亦称为纵向搜索。由于一个有解的问题树可能含有无穷分枝,深度优先搜索如果误入无穷分枝(即深度无限,但解不在该分支内),则不可能找到目标节点。所以,深度优先搜索策略是不完备的。另外,应用此策略得到的解不一定是最佳解(最短路径)。2178634512178634521786345217863452178634521786345217863452321786345421786345217863455217863456第第4章章 图搜索技术图搜索技术 3.有界深度优先搜索广度优先和深度优先是两种最基本的穷举搜索方法,在此基础上,根据需要再加上一定的限制条件,便可派生出许多特殊的搜索方法。例
9、如有界深度优先搜索。有界深度优先搜索:给出搜索树深度限制,当从初始节点出发沿某一分枝扩展到一限定深度时,就不能再继续向下扩展,而只能改变方向继续搜索。节点x的深度(即其位于搜索树的层数)通常用d(x)表示,则有界深度优先搜索算法如下:第第4章章 图搜索技术图搜索技术 步1把S0放入OPEN表中,置S0的深度d(S0)=0;步2若OPEN表为空,则失败,退出。步3取OPEN表头节点N,放入CLOSED表中,并冠以顺序编号n;步4若目标节点Sg=N,则成功,结束。步5若N的深度d(N)=dm(深度限制值),或者若N无子节点,则转步2;步6扩展N,将其所有子节点Ni配上指向N的返回指针后依次放入OP
10、EN表中前部,置d(Ni)=d(N)+1,转步2。第第4章章 图搜索技术图搜索技术 4.1.4启发式搜索1问题的提出穷举搜索法从理论上,似乎可以解决任何状态空间的搜索问题,但实践表明,穷举搜索只能解决一些状态空间很小的简单问题,而对于那些大状态空间问题,穷举搜索就不能胜任了。因为大空间问题,往往会导致“组合爆炸”。第第4章章 图搜索技术图搜索技术 2.启发性信息启发式搜索就是利用启发性信息进行制导的搜索。启发性信息就是有利于尽快找到问题之解的信息。按其用途划分,启发性信息一般可分为以下三类:(1)用于扩展节点的选择,即用于决定应先扩展哪一个节点,以免盲目扩展。(2)用于生成节点的选择,即用于决
11、定应生成哪些后续节点,以免盲目地生成过多无用节点。(3)用于删除节点的选择,即用于决定应删除哪些无用节点,以免造成进一步的时空浪费。第第4章章 图搜索技术图搜索技术 3.启发函数在启发式搜索中,通常用所谓启发函数来表示启发性信息。启发函数是用来估计搜索树上节点x与目标节点Sg接近程度的一种函数,通常记为h(x)。定义启发函数:启发函数并无固定的模式,需要具体问题具体分析。通常可以参考的思路有:一个节点到目标节点的某种距离或差异的度量;一个节点处在最佳路径上的概率;或者根据经验的主观打分等等。例如,对于八数码难题,用h(x)就可表示节点x的数码格局同目标节点相比,数码不同的位置个数。4.启发式搜
12、索算法启发式搜索要用启发函数来导航,其搜索算法就要在状态图一般搜索算法基础上再增加启发函数值的计算与传播过程,并且由启发函数值来确定节点的扩展顺序。第第4章章 图搜索技术图搜索技术 1)全局择优搜索全局择优搜索就是利用启发函数制导的一种启发式搜索方法。该方法亦称为最好优先搜索法,它的基本思想是:在OPEN表中保留所有已生成而未考察的节点,并用启发函数h(x)对它们全部进行估价,从中选出最优节点进行扩展,而不管这个节点出现在搜索树的什么地方。第第4章章 图搜索技术图搜索技术 全局择优搜索算法如下:步1把初始节点S0放入OPEN表中,计算h(So);步2若OPEN表为空,则搜索失败,退出。步3移出
13、OPEN表中第一个节点N放入CLOSED表中,并冠以序号n;步4若目标节点Sg=N,则搜索成功,结束。步5若N不可扩展,则转步2;步6扩展N,计算每个子节点x的函数值h(x),并将所有子节点配以指向N的返回指针后放入OPEN表中,再对OPEN表中的所有子节点按其函数值大小以升序排序,转步2。第第4章章 图搜索技术图搜索技术 例4.5用全局择优搜索法解八数码难题。初始棋局和目标棋局同例3。解 设启发函数h(x)为节点x的格局与目标格局相比数码不同的位置个数。以这个函数制导的搜索树如图47所示。图中节点旁的数字就是该节点的估价值。由图可见此八数问题的解为:八数码问题的全局择优搜索第第4章章 图搜索
14、技术图搜索技术 2)局部择优搜索局部择优搜索与全局择优搜索的区别是,扩展节点N后仅对N的子节点按启发函数值大小以升序排序,再将它们依次放入OPEN表的首部。21786345S02178634521786345217863452178634544S1552178634521786345542178634542178634521786345Sg54第第4章章 图搜索技术图搜索技术 2.分支界限法(最小代价优先法)g(x):从初始点S0到x的代价;其基本思想是:每次从OPEN表中选出g(x)值最小的节点进行考察,而不管这个节点在搜索树的什么位置上。可以看出,这种搜索法与前面的最好优先法(即全局择优法
15、)的区别仅是选取扩展节点的标准不同,一个是代价值g(x)(最小),一个是启发函数值h(x)(最小)。这就是说,把最好优先法算法中的h(x)换成g(x)即得分支界限法的算法。第第4章章 图搜索技术图搜索技术 4.1.5加权状态图搜索最近择优法(瞎子爬山法)1.加权状态图与代价树例4.6设A城是出发地,E城是目的地,边上的数字代表两城之间的交通费。试求从A到E最小费用的旅行路线。交通图及其代价树第第4章章 图搜索技术图搜索技术 可以看出,这个图与前面的状态图不同的地方是边上附有数值。它表示边的一种度量(此例中是交通费,当然也可以是距离)。一般地,称这种数值为权值,而把边上附有数值的状态图称之为加权
16、状态图或赋权状态图。第第4章章 图搜索技术图搜索技术 加权状态图的搜索与权值有关,并且要用权值来导航。具体来讲,加权状态图的搜索算法,要在一般状态图搜索算法基础上再增加权值的计算与传播过程,并且要由权值来确定节点的扩展顺序。为简单起见,先考虑树型的加权状态图代价树的搜索。所谓代价,可以是两点之间的距离、交通费用或所需时间等等。用g(x)表示从初始节点S0到节点x的代价,用c(xi,xj)表示父节点xi到子节点xj的代价,即边(xi,xj)的代价。从而有g(xj)g(xi)c(xi,xj)而g(S0)0第第4章章 图搜索技术图搜索技术 也可以将加权状态图转换成代价树来搜索,其转换方法是,从初始节
17、点起,先把每一个与初始节点相邻的节点作为该节点的子节点;然后对其他节点依次类推,但对其他节点x,不能将其父节点及祖先再作为x的子节点。例如,把图48(a)所示的交通图转换成代价树如图48(b)所示。第第4章章 图搜索技术图搜索技术 同上面的情形一样,这种方法实际同局部择优法类似,区别也仅是选取扩展节点的标准不同,一个是代价值g(x)(最小),一个是启发函数值h(x)(最小)。这就是说,把局部择优法算法中的h(x)换成g(x)就可得最近择优法的算法。现在我们用代价树搜索求解例4.6中给出的问题。我们用分支界限法得到的路径为ACDE这是一条最小费用路径(费用为8)。第第4章章 图搜索技术图搜索技术
18、 4.1.6启发式图搜索的A算法和A*算法前面我们介绍了图搜索的一般算法,并着重讨论了树型图的各种搜索策略。本节给出图搜索的两种典型的启发式搜索算法。1.估价函数利用启发函数h(x)制导的启发式搜索,实际是一种深度优先的搜索策略。虽然它是很高效的,但也可能误入歧途。第第4章章 图搜索技术图搜索技术 所以,为了更稳妥一些,人们把启发函数扩充为估价函数。估价函数的一般形式为f(x)g(x)h(x)其中g(x)为从初始节点S0到节点x已经付出的代价,h(x)是启发函数。即估价函数f(x)是从初始节点S0到达节点x处已付出的代价与节点x到达目标节点Sg的接近程度估计值之总和。有时估价函数还可以表示为f
19、(x)d(x)h(x)第第4章章 图搜索技术图搜索技术 2.A算法A算法是基于估价函数f(x)的一种加权状态图启发式搜索算法。其具体步骤如下:步1把附有f(S0)的初始节点S0放入OPEN表;步2若OPEN表为空,则搜索失败,退出。步3移出OPEN表中第一个节点N放入CLOSED表中,并冠以顺序编号n;步4若目标节点Sg=n,则搜索成功,结束。步5若n不可扩展,则转步2;步6扩展n,生成一组附有f(n)的子节点,将所有子节点配以指向n的返回指针后放入OPEN表中,再对OPEN表中的所有子节点按其函数值大小以升序排序,转步2。第第4章章 图搜索技术图搜索技术 3.A*算法如果对上述A算法再限制其
20、估价函数中的启发函数h(x)满足:对所有的节点x均有h(x)h*(x)其中h*(x)是从节点x到目标节点的最小代价(若有多个目标节点则为其中最小的一个),则它就称为A*算法。第第4章章 图搜索技术图搜索技术 3.启发函数:f(x)=d(x)+h(x)h(x)=不在目标位置的数符个数217863453217863452178634521786345217863455566217863452178634521786345217863455354S2217863452S32178634521786345Sg03第第4章章 图搜索技术图搜索技术 4.1.7状态图搜索策略小结上述的状态图搜索策略可归纳如
21、下:树式搜索穷举式广度优先深度优先有界深度优先启发式搜索全局择优(最好优先,基于启发函数h(x))局部择优分支界限(全局最小代价优先,基于代价函数g(x))最近择优(瞎子爬山,局部最小代价优先,基于g(x))A算法(基于估价函数f(x)g(x)h(x))A*算法(最佳图搜索,h(x)h*(x)):可以证明:如果解存在,A*一定能够找到最优解第第4章章 图搜索技术图搜索技术 4.2 状态图问题求解状态图问题求解4.2.1问题的状态图表示1.状态状态就是问题在任一确定时刻的状况,它表征了问题特征和结构等。状态在状态图中表示为节点。状态一般用一组数据表示。在程序中用字符、数字、记录、数组、结构、对象
22、等表示。第第4章章 图搜索技术图搜索技术 2.状态转换规则状态转换规则就是能使问题状态改变的某种操作、规则、行为、变换、关系、函数、算子、过程等等。状态转换规则也称为操作,问题的状态也只能经定义在其上的这种操作而改变。状态转换规则在状态图中表示为边。在程序中状态转换规则可用数据对、条件语句、规则、函数、过程等表示。第第4章章 图搜索技术图搜索技术 3.状态图表示一个问题的状态图是一个三元组(S,F,G)其中S是问题的初始状态集合,F是问题的状态转换规则集合,G是问题的目标状态集合。一个问题的全体状态及其关系,就构成一个空间,称为状态空间。所以,状态图也称为状态空间图。第第4章章 图搜索技术图搜
23、索技术 例:迷宫问题的状态图表示。以例迷宫为例。每个格子作为一个状态,并用其标识符作为其表示。那么,两个标识符组成的序对就是一个状态转换规则。于是,该迷宫的状态图表示为S:S0F:(S0,S4),(S4,S0)(S4,S1),(S1,S4),(S1,S2),(S2,S1),(S2,S3),(S3,S2),(S4,S7),(S7,S4),(S4,S5),(S5,S4),(S5,S6),(S6,S5),(S5,S8),(S8,S5),(S8,S9),(S9,S8),(S9,Sg)G:Sg第第4章章 图搜索技术图搜索技术 例4.8八数码难题的状态图表示。我们将棋局X1X2X3X6X0X4X7X6X5
24、第第4章章 图搜索技术图搜索技术 用向量A(X0,X1,X2,X3,X4,X5,X6,X7,X8)表示,Xi为变量,Xi的值就是方格Xi内的数字。于是,向量A就是该问题的状态表达式。设初始状态和目标状态分别为S0(0,2,8,3,4,5,6,7,1)Sg(0,1,2,3,4,5,6,7,8)易见,数码的移动规则就是该问题的状态变换规则,即操作。经分析,该问题共有24条移码规则,可分为9组。分别描述空格(X0)在不同位置时的移动规则:283104765123804765第第4章章 图搜索技术图搜索技术 0组规则(空格在中央):r1(X0=0)(X2=n)X0nX20;r2(X0=0)(X4=n)
25、X0nX40;r3(X0=0)(X6=n)X0nX60;r4(X0=0)(X8=n)X0nX80;1组规则:(空格左上角)r5(X1=0)(X2=n)X1nX20;r6(X1=0)(X8=n)X1nX80;X1X2X3X6X0X4X7X6X5第第4章章 图搜索技术图搜索技术 2组规则:r7(X2=0)(X1=n)X2nX10;r8(X2=0)(X3=n)X2nX30;r9(X2=0)(X0=n)X2nX00;8组规则:r22(X8=0)(X1=n)X8nX10;r23(X8=0)(X0=n)X8nX00;r24(X8=0)(X7=n)X8nX70;第第4章章 图搜索技术图搜索技术 于是,八数码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1.1.1.24-第4章 图搜索技术人工智能导论 1.1 1.24 搜索 技术 人工智能 导论
限制150内