人工智能导论-与或图搜索问题_第1页
人工智能导论-与或图搜索问题_第2页
人工智能导论-与或图搜索问题_第3页
人工智能导论-与或图搜索问题_第4页
人工智能导论-与或图搜索问题_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

2章与或图搜索问题的关系。这就是本章要的与或图搜索问题。中法可以求解问题,则该问题被求解。也就是说,对求解该问题来说,方法之间是“或”的关系。但在用每法求解时,又可能需要求解几个子问题,这些子通常要与或图的一般情况(与或树是其特例。在一个与或图中,一个cab的后继节点。在这关的。为了避免不清,通常不把与或图点叫做与节点或者或节点,而是引入一个适合于与或图的更一般的标记而在称谓上沿用仍把这种结构称作与或图。当然在与或树时仍继续用“与“或”节点的称呼。2.1(或连接符kk(相当于一条弧线然这就是一般图的标记法,得到的就是与或图的特例——普通图。2.12.1n0有两个连接符:1-n1;2-连接符指向节点集{n4,n5}2-连接符还用一小段圆弧括起来(k>1k-连接符都应有小n0来说,n4、n5是两个“与”节点,而n1n8n5n4的一个“或”节点,是对应的一组终节点;产生式系统的任务是搜索从初始节点到一组终节点集N的一nN的一个解图类似于普通图中的一条解路径。N2.2n0→{n7,n8}的三个解图。 2.2GnN的解图记为G,GG②nN的一个元素,则G②若n有一个指向节点{n1,…,nk}的外向连接符K,使得从每一个niN有一个解图(i=1,…,k,则G由节点n、连接符K、及{n1,…,nk}中的每一个节点到N的解图所组成;n到N同样可以递归定义局部图:nnK,则该局部图、KKnnNn是一个外向连接符指向后继节点{n1,…,ni}Cnk(n,N)=Cn+k(n1,N)+…+根据这个定义,在假定k连接符的耗散值为k的情况下,图2.2三个解图的耗散值计算结果分别为8、7和5。具有最小耗散值的解图称为最佳解图,其值也用h*(n)h*(n0)=5。同样,也可以计算一个局部图的耗散值。如果同样将局部图的耗散值记②nn有一个外向连接符指向后继节点{n1,…,ni}Cnk(n,N)=Cn+k(n1,N)+…+其中,h(n)n到目标节点集的最佳解图耗散值的估计。nn下面首先AO*算法本身,然后再通过示例说明搜索过程以及与A*算法的某AO*GG:=sq(s)=(sIF(sSOVED;Gsh(s)s是终节点,则标记上能解。②Untils④G':=FIND(G);根据连接符标记(指针)找出一个待扩展的图G'⑤n:=G'⑥EXAND(n){nj}q(nj)=h(nj)G),IFGOAL(nj)THENM(nj,SOLVED)G中未出现的子节点计算耗散值,若有nG中。⑦S:={n}nS⑧UntilS⑨ REMOVE(m,S),mcSmmcS ·m对m指向节点集{n1i,n2i,…,nki}的每接符i分别计算qi:q(m):=minqi(m)mi个连接符,取计算结果最小的那个耗q(m)。·minqi(m)minqi(m)的连接符)m IFTHENADD(ma,S);m能解或修正的耗散值与原先估算q0不mmaS中。 14这个算法可划分成两个操作阶段:第一阶段是4—6步,完成自顶向下的图生成操作,先通过有标记的连接符,找到目前为止最好的一个图,然后对其中一个非终节点进行扩展,并对其后继节点赋估计耗散值和加能解标记。第二阶段是7—12耗散值的修正从刚被扩展的节点n开始,其修正耗散值q(n)取估计h(n)的h(n,为了使用方便,将h(n)函数对图2.1中各节点的假想估值先列写如下(实际应用h(n)定义式计算:此外假设k-连接符的耗散值为k2.3AO*2.1n0n0nn4和n51-连n2n4n52,h(41,h(5)=1k。所以n01n0的耗散值(qq)为(01)+(n1q值)1+=3n1q值用h(20的20q值为n024q(n5的q值)=2+1+1=4。在两个不同计算得到的耗散值中取最小值作为q值,并设置一个指针指向提供该耗散值的连接符。在这里3<4n0q值为2.3(a)所示。n0开始,沿指针所指向的连接符,寻找一个未扩展的非终节点。这时找到的是n1节点。扩展n1节点,生成出节点n2和n3,两个节点分别通过1-连接符与n1连接。由于h(n2)=h(n3)=4,所以通过这两个连接符计算的耗散值也一样,均为5。取其最小者还是5,从而更新n1的q值为5。由于耗散值相等,所n3这一边。由n1q25,所以需要从新计算n0q值。n0来说,此时1-连接符这边算得的耗散值为6,大于从2-连接符这边得到的耗散值4,所以n0的q412-连接符。注意,n1出发的指向连接符的指针并没有被改变或删除。至此第二循环结束,搜索2.3(b)所示。n0开始,沿指针所指向的连接符,寻找未扩展的非终选择的是n5。n5生成出n6、n7和n8三个节点1-连接符指向n62-连接符指向n7和n8。计算的结果,得到n5q值为2,指针指向2-连接符。由于n5qn0的q5n0n0q值即可,不需要改变指向连接33211

4454415554242055424200 1

51 0

2.3AO*4(e)在本次循环中,由于n7和n8都是目标节点,是能解节点,而n5通过一个2-连接符连接n7n8,所以n5也被标记为能解节点。虽然n5是能解节点,但由于n0是通第四次循环,同样的道理,从n0开始沿指针所指向的连接符,寻找未扩展的非n4n4n5n81-连接符连接。n4n53(n5q2,n4qn5h值n8这边计1n4的q1n8这边的n4qn0q值也不需重新计算了。由于n8n41n8n4也被标记为n0n0n0开始,沿2.3(e)为得到的解图。6n时,若不存在后继节点(即陷入死胡同,则可在第11步中对m(即n)赋一个高的q值,这个高的q值会依次传递到s,使得含有节点n的子图具有高的q(s,从而排除了被当作候选图的可能性。5G′中的一个非终节点来扩展呢?一般可以选一个最可能导致该图耗散值发生较大变化的那个节点先扩展,因为选这个节点先扩展,会促使及时修改图的标记。单调限制条件时,则AO*一定能找到最佳解图,即AO*具有可采纳性。当h(n)≡0这里单调限制条件是指:对隐含图中,从节点n→{n1,…,nk}的每接符h(n)≤C+h(n1)+…+h(nk)C是连接符的耗散值。h(ti)=0(ti∈Nh(n)≤h*(n*A*算法不能Ak有关子节点,对父节点能解与否以及耗散值都有影响,因而显然不能象A*AENCLOSED*有关AO*算法的具体应用及一些提高搜索效率的修正算法,可进一步参阅人工这里所讲的博弈指的是类似于象棋这样的问题这类问题有以下一些特点(2)信息完备,对垒双方所得到的信息是一(3零和。即对一方有利的棋,而另一方输,或者双方和棋。60年代就已经出现若干博弈程序,并达到一定水平。博弈问题的研究还不断提出一方则输,或者双方和局。这类博弈的实例有:一字棋、、西洋跳棋、国际面举一个简单的例子说明博弈问题可用与或图表示并搜索策略应考虑的实际(2,2,2,1,(3,3,1,(2,2,2,1,(3,3,1,Grundy(4,2,1,(5,1,1,(5,2,(6,1,undy博是一个分钱币的。有一堆数目为N的钱币,由两位选手轮流(4,2,1,(5,1,1,(5,2,(6,1,(4,3,(4,3,(7,(3,2,1,1,(3,2,1,1,(4,1,1,1,(3,2,2,C(3,1,1,1,1,(3,1,1,1,1,(2,2,1,1,1,A(2,1,1,1,1,1,B(2,1,1,1,1,1,2.4Grundy(7,MINAMAXB,CMIN的搜索目标。MIN走步后的每一个MAX节点,必须证明MAXMIN可能走的每一个棋MAXMIN的所有招法,这是一个与的含意,因MAX符号的节点可看成与节点。MAXMINMAX有一步能走赢就可以,即MAXMINMIN符号的节点可看么走,MAXMAX的取胜策略便和求与或图的解图一致起来,MAX要取胜,必须对所有与节点取胜,但只需对一个或节点取胜,这就是一个解Grundy这种较简单的博弈,或者复杂博弈的残局,可以用类似于与或图的4050步,则搜索的位置有(402)50≈10160100用策略的基本点。下面就来这种机理的搜索策略——极小极大搜索过程。00时,表示棋局对我方不利,对对方有利。而评价函数值越大,表示对我有利。当评价函数值等于正无穷大时,表示我方必胜评价函数值越小表示对我不利当评价函数值等于负无穷大时,应MIN的势态,f(p)取负值,势均力敌的势态,f(p)0f(p)=+∞,则表示MAX赢,若f(p)=-∞,则表示MIN赢。下面的规定:顶节点d=0,MAX代表程序方,MIN代表对手方,MAX先走。f(p)估计,因为不够精确,而应用倒推的办法取值。例如A、B、C是MIN走步的节点,MAX应考虑的情况,故其估值应分别取其子节f(p)sMAX走步的节点,可考虑最好的情况,故估值应取A、B、Cf(s)=-2,依此确定了相对较优的走步应是走BBf(s)=-2更差的效果。实际上可根据资源条件,考虑层次的搜索过程,从而可得到更准确的倒推值,供MAX选取更正f(p)求倒推值时,两位选手应采取不同的策ss

MAX

MINDEFGHIJ(-(-(-(-2.5f(p) OPENs。②LOOP1:IF )THENGO③n:=④IFnTHENf(n):=∞∨-∞∨0,GOLOOP1IFd(ni)<kTHENADD({ni},OPEN),GOELSEf(ni),GOLOOP1;nIkf⑤LOOP2:IFCLOSED=NILTHENGOELSEnp:=MAX取其极大值。(THENf(np):=min{f(ncj)},REMOVE(LOSED);若MIN所有子节点均MIN取其极小值。⑦GO—f(s)为止,此时f(s): minf(niii

1 s,重复调用该过3×3MAX-1-6-MAX-1-6- 5- 6-5-5-6-1 5- 6- 110MAX110MAX4-3- 5-3-4-3-14- 3- 5-3-4-3=14-04- 4- 5-3-4-4- 2.7

4- 4- 3-f(p)规定如下:ppMAXf(p)=∞;pMINf(p)=-∞。p111-2- 3- 2- 3--1-2- 3- 2- 3---2- 2-2---ABCD- 3- 2- 3--2- 3- 3-ABCD

初始节 - 2-

3-2.82.6f(p)值,非端节点的倒推值标记在圆圈MAX走完第一步后,MAXMAX就要2.8所示。至此MAX走完最好的走步后,不论MIN怎么走,都无法挽回败局,因α-β2.8MINA、B、C、D四个节点,然后还要逐个计算MIN节点的倒推值-∞。其实,如MIN节点赋倒推值-∞,而丝毫不

s1

MAX

-

9

6- 5- 6- 5- 5- 6-2.9一字棋第一阶段α-β定其倒推值时就立即计算赋值从图2.9中标记的节点生成顺序(也表示节点)61个节点倒推值完全确定,可立即赋给倒推值-1s属极大值层,可以推断其倒推值不会小于-1,称极大值层的这个下界值为α,即可以确定s的=-1s实际的倒推值决不会比-1817个节点的倒推值不可能大于-1,极小值层的这个上界值为β,即可确定节点7的β=-1β值,很容易发现若α≥β7的其他sβ值αβ剪枝,统称为α-β剪枝技术。在实际修剪过程中,α、β还可以随时修正,但极大值层的倒推值下界αβ归纳一下以上,可将α-β过程的剪枝规则描述如下MIN节点最终的倒推值就确定为这个β值MAX节点的最终倒推值就确定为这个α值。在进行α-β(1)比较都是在极小节点和极大节23(4)α-β剪枝方法搜索得到的最佳走步与极小极大方法得到的结果是一致的,α-β剪枝并没有因为提高效率,而降低得到最5上进行剪枝。如果这样,就失去了α-β剪枝方法的意义。在实际程序实现时,首先MINIMAX方法所得完全相同,因而α-β过程具有较高的效 14 32β9 14 32β91325 31581221 2430β24720181623 27 29 101517192226 28

-

- -2.10α-β210d4的博弈树的αβ态估值及倒推值过程的次序。该图详细表示出α-β剪枝过程的若干细节。初始节点的最终倒推值为1该值等于某一个端节点的静态估值最好优先走步是1这条路径走下去,这要看对手的实际响应而定。2.10的搜索,来说明α-β首先,从根节点开始,向下生成出到达指定节点深度的节点1,由1的值为0,可知2≤0,继续扩展生成节点3,由于3的值52的值0,并且节点2再也没有其它的子节点了,所以4(与2是同一个节点)的值确定为04的值,可以确定5≥0。扩展节点5,按顺序生成节点766的值-37≤-37是极小节点,其值小于它的先辈节点5的值,满足α剪枝条件7的其他子节点被剪掉,不5899序生成节点12110,由10=3得到1=312≥312是极大节点,其值大于其先912全部被剪掉。这样9的子节点也全部搜索完,得到13=0,并上推到14≥0。扩展14的151617191719182021212322232321所以在23处发生剪枝(注意,此处即便是23的值不小于21的值,但由于23的值小于1424=1252526=627≤628=8293030253031=1。至此全部搜索结束,根节点32的值就是对当前棋局的评判。由于该值来自于根节点的右边一个子节点

温馨提示

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

评论

0/150

提交评论