您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > 人工智能-第4章 与或图搜索
ArtificialIntelligence第四章与或图搜索1问题归约法2与或图3与或图搜索4AO*算法5博弈树的搜索ArtificialIntelligence•问题:在边长为2的正方形内,任意放置5个点,求证其中必存在两个点,它们之间的距离不大于2。•问题可转化为:在四个单位正方形内,任意放置5个点,至少有两个点在同一正方形内。1问题归约法ArtificialIntelligence•问题:假定我们已经会求矩形的面积,现在要求如图所示的五边形的面积。•方法分析:五边形的面积转化为矩形面积。IIIII①②③123IArtificialIntelligence求解步骤:求五边形面积求1面积求2面积求3面积求I面积求II面积求III面积求①面积求②面积求③面积123IIIIII①②③ArtificialIntelligence•问题归约法:当问题复杂时,可把初始问题分解成若干简单的子问题,若子问题仍复杂,可再进一步分解,直到这些子问题的解可直接得到。这种问题的描述和求解方法,称为~.•本原问题:可直接解答的问题称为~,它是不必证明的、自然成立的.•归约法的组成:1)一个初始问题的描述;2)一组把问题变成子问题的算子(分解或转换);3)一组本原问题的描述•不同的算子对应不同的关系,从而使问题归约的描述可用一个与或图的结构来表示.小结:ArtificialIntelligence2与或图•与节点:把单个问题分解为几个子问题来求解。只有当所有子问题都有解,该父辈节点才有解。表示一种“与”关系。•或节点:同一问题被转换为几种不同的后继问题。只要有一个后继问题有解,则原问题有解。表示一种“或”关系。(a)PRQ(b)PRQ•与节点由与运算连接(超弧),如图(a).•或节点由或运算连接,如图(b).ArtificialIntelligence•定义:与或图就是包含与节点和或节点的图,即存在超弧的图,也称为超图.•超图与状态空间图有什么区别?与或图是一种更一般的图.•定义:一超弧所相关的边数(K)被称为该超弧的度,实现的连接称为K-连接.•K—连接符:从一个父节点指向一组含有K个后继节点的节点集.ArtificialIntelligence•在与或图中,节点n0有两个连接符:1-连接符指向节点n1;2-连接符指向节点集合{n4、n5};•对于节点n0来讲,n1可称为或节点,n4、n5可称为与节点。n0n4n1n3n2n5n6n8n7与或图ArtificialIntelligence3与或图搜索•含义:在与或图上执行搜索的过程,其目的在于标明起始节点是有解的,即,搜索不是去寻找到目标节点的一条路径,而是寻找一个解图。•定义:一个节点被称为能解节点,其递归定义为:1.终节点是能解节点(直接与本原问题相关联);2.若非终节点有“或”子节点时,当且仅当其子节点至少有一个能解,该非终节点才能解;3.若非终节点有“与”子节点时,当且仅当其子节点均能解,该非终节点才能解。ArtificialIntelligence•定义:不能解节点的递归定义为:1.没有后裔的非终节点是不能解的节点;2.若非终节点有“或”子节点时,当且仅当所有子节点均不能解时,该非终节点才不能解;3.若非终节点有“与”子节点时,当至少有一子节点不能解时,该非终节点才不能解.ArtificialIntelligence•是由能解节点构成的一个子图,是包含一节点(n)到目的(终)节点集合(N)的、连通的能解节点的子图.•在一个与或图G中,从节点n到节点集N的解图记为G,G是G的子图.1.若n是N的一个元素,则G由单个节点n组成;2.若n有一个指向节点集{n1…,nk}的外向连接符K,使得从每一个节点ni(i=1,…,k)到N有一个解图,则G由节点n,连接符K,以及{n1,…,nk}中的每一个节点到N的解图所组成;3.否则n到N不存在解图.•如果n=s为初始节点,则解图为所求解问题的解图.解图的定义:ArtificialIntelligence•若解图的耗散值记为k(n,N),则可递归计算如下:–若n是N的一个元素,则k(n,N)=0;–若n有一个外向连接符指向其后继节点集合{n1…,ni},并设该连接符的耗散值为Cn(一般k-连接符的耗散值=k),则k(n,N)=Cn+k(n1,N)+…+k(ni,N)•具有最小耗散值的解图称为最佳解图,其值也用h*(n)标记。解图耗散值的计算:ArtificialIntelligence•例:从节点n开始,正确选择一个外向连接符,一直进行下去直到产生的每一个后继节点成为集合N中的一个元素为止。下图给出了n0→{n7,n8}的三个解图(耗散值分别为8,7,5).n0n1n3n5n6n8n7n4n5n8n7n4n5n8n7871222226100n072200231n052200211解图的求法n0n4n1n3n2n5n6n8n7ArtificialIntelligence与或图搜索与状态空间图搜索的区别:•搜索目的不同:是证明起始节点是否可解,而可解节点是递归定义的,取决于后继节点是否可解,即搜索过程是能否找到可解的叶节点.•结果不同:若初始节点被标示为可解,则搜索成功结束;若初始节点被标示为不可解,则搜索失败.•节点处理不同:一旦发现不可解节点,应把该节点从图中删去.ArtificialIntelligence4与或图启发式搜索算法AO*•假设:G;G;h(n)是从节点n到一组终叶节点的一个最优解图的一个代价估计,评价函数q(n)=h(n)AO*过程:1.建立初始搜索图,G:=s,计算q(s)=h(s),IFGOAL(s)THENM(s,SOLVED);2.Untils已标记为SOLVED,do:3.Begin4.G:=FIND(G);根据连接符标记(指针)找出一个待扩展的侯选局部解图G(连接符在11步标记)5.n:=G中的任一非终节点;选一个当前节点6.EXPAND(n),生成子节点集{ni},如果niG,G:=ADD({ni},G),计算q(ni)=h(ni),IFGOAL(ni)THENM(ni,SOLVED);ArtificialIntelligence7S:={n};建立含n的节点集合S.(已扩展待修正)8UntilS为空,do:9Begin(m为S中任一节点)10REMOVE(m,S),当mc{S};(m→mc,从底层开始修正)11修改m的耗散值q(m):对m指向节点集(n1i,n2i,…nki)的每一个连接符i分别计算qi,qi(m)=Ci+q(n1i)+…+q(nki),并取q(m):=minqi(m);加(或修正)指针到minqi(m)的连接符上.IFM(nji,SOLVED)THENM(m,SOLVED);(j=1,2,…,k)若该连接符的所有子节点都是能解的,则m也能解.12IFM(m,SOLVED)(q(m)q0(m))THENADD(ma,S);m能解或修正的耗散值与原先估算q0不同,则把m的所有先辈节点ma添加到S中.(能解或修正向上传递)13end(与8匹配)14end(与2匹配)ArtificialIntelligence•两个过程的重复:–自上而下的图生长过程(4-6步):先通过有标记的连接符,找到目前为止最好的一个局部解图,然后对其中一个非终节点进行扩展,并对其后继节点赋估计耗散值和加能解标记.–自下而上的估价函数值的修正、连接符的标记和SOLVED的标注过程(7-12):耗散值的修正从刚被扩展的节点n开始,其修正耗散值q(n)取所有估计值中最小的一个,然后根据耗散值递归计算公式逐级向上修正其先辈节点的耗散值.只有下层节点耗散值修正后,才可能影响到上一层节点的耗散值,如此一直修正到初始节点.AO*搜索算法过程分析ArtificialIntelligencen0n4n1n3n2n5n6n8n7h(n0)=3h(n1)=2h(n2)=4h(n3)=4h(n4)=1h(n5)=1h(n6)=2h(n8)=0h(n7)=0•例:各节点启发值如图,k-连接符的耗散值=k,求最佳解图.•应用AO*算法,经四个循环,可找到解图.•在第一次循环扩展节点n0;然后,依次扩展节点n1、n5、n4。•在节点n4被扩展之后,节点n0便被标注SOLVED,此时,通过向下跟踪有标记的连接符,便获得了解图.★★★★ArtificialIntelligence•主要步骤•第4步(G’)•第5步(n)•第6步•第7步(S)•第11步•第12步AO*搜索算法的过程•第1循环•(n0)•(n0)•(n1,n5,n4)•(n0)•比较,选n0→n1;n1不可解;•无•第2循环•n0→n1•(n1)•(n2,n3)•(n1)•1)比较,选n1→n3;n3不可解;2)比较,选n0→n5,n4;n5,n4不可解;•1)加n0→S;2)无;•第3循环•n0→n5,n4•(n5)•(n6,n7,n8)•(n5)•比较,选n5→n7,n8;改指针;n7,n8可解,n5可解•1)加n0→S;2)无;•第4循环•n0→n5,n4;•(n4)•(n5,n8)•(n4)•1)比较,选n4→n8;n8可解,n4可解;2)n4,n5可解;n0可解.•1)加n0→S;2)无;ArtificialIntelligencen0n1n4n5n0n4n1n3n2n5n6n8n73244112002113446542002×5n6n3n2n7n8★★★★★ArtificialIntelligencen0n4n1n3n2n5n6n8n7n0n1(3)211n5n4n0n1(4)(5)11n5n444n3n2n0n4n1n3n2n5n6n8n7(5)(5)441200(2)(5)(5)44002(2)(1)一次循环后二次循环后三次循环后四次循环后不带括号的数是启发函数h(n)值,带括号数是估价函数q(n)的修正值;短箭头用来标记连接符,标明侯选局部解图;已经标注SOLVED的节点用黑心圆来表示。ArtificialIntelligence讨论•当节点n无后继节点?在第11步中对m(n)赋一个高的q值(会传递到s),从而排除了含有n的子图被当作候选局部解图的可能性.•在G’中存在多个非终节点时,选择什么样的节点先扩展?一般选择最能导致该局部解图耗散值发生较大变化的节点先进行扩展,可促使及时修改局部解图的标记.•同A算法类似,若s→N存在解图,当h(n)≤h*(n)且h(n)满足单调限制条件时(对n到其子节点的每一连接符均需要满足),则AO*一定能找到最佳解图.ArtificialIntelligence与A*算法的区别–评价函数只考虑h(n):•理由:算法有自下而上的修正费用的的操作,实际上局部解图费用值的估计是在起始节点S比较,计算g既无必要也不可能.–不能优先扩展具有最小费用的节点:•理由:K-连接符连接的有关子节点对父节点的可解性及费用值的估计都会产生影响.–仅适用于无环图,否则耗散值递归计算不收敛:•方法:当新生成的节点已在图中时,判断是否为正被扩展节点的先辈节点.–控制策略不同:•没有OPEN表和CLOSED表,只用生成的解图结构G,h(n)是最佳解图的费用估计.ArtificialIntelligence5博弈树的搜索•问题:二人完备博弈:1.由二人对垒,轮流走步,自己的走步自己选择2.信息完备:任何一方都完全知道对方过去的走步情况和今后可能的走步,不包括碰运气的情况•表示方法:利用与或图表示来描述博弈问题.理由:由于在博弈中,决定自己走步时只需考虑对自己有利的一步——或,而考察对方时,则应考虑对方所有可能的走步——与.•求解方法:特殊的与或图搜索算法——博弈树搜索.理由:由于两人严格地轮流走步,使博弈状态图呈现出严格的与或图的交替层次.ArtificialIntelligence1)Grundy博弈例:假设桌上放有一堆(7个)钱币,由两人轮流进行分堆,要求每人每次只把其中某堆钱币分成数目不相等的两小堆,最后不能分下去的人被判负.•
本文标题:人工智能-第4章 与或图搜索
链接地址:https://www.777doc.com/doc-7030315 .html