西电人工智能10-确定性推理-part3课件_第1页
西电人工智能10-确定性推理-part3课件_第2页
西电人工智能10-确定性推理-part3课件_第3页
西电人工智能10-确定性推理-part3课件_第4页
西电人工智能10-确定性推理-part3课件_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

ArtificialIntelligence(AI)

人工智能主讲:戚玉涛Email:qi_yutao@163.com第三章:确定性推理ArtificialIntelligence(AI)

人内容提要第三章:确定性推理1.推理的基本概念2.搜索策略3.自然演绎推理4.归结演绎推理5.基于规则的演绎推理内容提要第三章:确定性推理1.推理的基本概念2.搜索策略3.搜索策略搜索策略搜索的基本概念状态空间的搜索策略与/或树的搜索策略搜索的完备性与效率搜索策略搜索策略状态空间的搜索策略状态空间的搜索策略状态空间搜索的基本思想图搜索的一般过程状态空间的盲目搜索广度优先搜索深度优先搜索代价树搜索状态空间的启发式搜索启发性信息和估价函数A算法和A*算法状态空间的搜索策略状态空间的搜索策略状态空间的搜索策略状态空间的搜索策略状态空间搜索的基本思想图搜索的一般过程状态空间的盲目搜索广度优先搜索深度优先搜索代价树搜索状态空间的启发式搜索启发性信息和估价函数A算法和A*算法状态空间的搜索策略状态空间的搜索策略A算法A算法:在图搜索算法中,如果能在搜索的每一步都利用估价函数f(n)=g(n)+h(n)对OPEN表中的节点进行排序,则该搜索算法为A算法。

由于估价函数中带有问题自身的启发性信息,因此,A算法也被称为启发式搜索算法。A算法的类型:可根据搜索过程中选择扩展节点的范围,将启发式搜索算法分为全局择优搜索算法:

从OPEN表的所有节点中选择一个估价函数值最小的一个进行扩展。局部择优搜索算法:仅从刚生成的子节点中选择一个估价函数值最小的一个进行扩展。A算法A算法:在图搜索算法中,如果能在搜索的每一步都利用估价A算法全局择优搜索算法流程(1)把初始节点S0放入OPEN表,计算f(S0)。(2)如果OPEN表为空,则问题无解,退出。(3)把OPEN表的第一个节点(记为节点n)取出放入CLOSED表。(4)考察节点n是否为目标节点。若是,则求得了问题的解,退出。(5)若节点n不可扩展,则转第2步。(6)扩展节点n,用估价函数f(x)计算每个子节点的估价值,并为每一个子节点都配置指向父节点的指针。把这些子节点都送入OPEN表中,然后对OPEN表中的全部节点按估价值从小至大的顺序进行排序,然后转第2步。A算法全局择优搜索算法流程A算法局部择优搜索算法流程(1)把初始节点S0放入OPEN表,计算f(S0)。(2)如果OPEN表为空,则问题无解,退出。(3)把OPEN表的第一个节点(记为节点n)取出放入CLOSED表。(4)考察节点n是否为目标节点。若是,则求得了问题的解,退出。(5)若节点n不可扩展,则转第2步。(6)扩展节点n,用估价函数f(x)计算每个子节点的估价值,并按估价值从小到大的顺序放到OPEN表中的首部,并为每一个子节点都配置指向父节点的指针,然后转第2步。A算法局部择优搜索算法流程A*算法A*算法:A*算法是对A算法的估价函数f(n)=g(n)+h(n)加上某些限制后得到的一种启发式搜索算法。假设f*(n)是从初始节点出发经过节点n达到目标节点的最小代价,估价函数f(n)是对f*(n)的估计值。且

f*(n)=g*(n)+h*(n)g*(n)是从初始节点S0到节点n的最小代价。h*(n)是从节点n到目标节点的最小代价,若有多个目标节点,则为其中最小的一个。A*算法A*算法:A*算法是对A算法的估价函数f(n)=g(A*算法A*算法:A*算法对A算法(全局择优的启发式搜索算法)中的g(n)和h(n)分别提出如下限制:第一,g(n)是对最小代价g*(n)的估计,且g(n)>0;第二,h(n)是最小代价h*(n)的下界,即对任意节点n均有h(n)≤h*(n)。即:满足上述两条限制的A算法称为A*算法。A*算法A*算法:A*算法对A算法(全局择优的启发式搜索算法A*算法在A*算法中,g(n)比较容易得到,它实际上就是从初始节点S0到节点n的路径代价,恒有:

g(n)

g*(n)在算法执行过程中,随着更多搜索信息的获得,g(n)呈下降的趋势。如右图的例子:对S0扩展后g(n1)=3,g(n2)=7对n1扩展后g(n2)=6,g(n3)=5S0n137n2n332A*算法在A*算法中,g(n)比较容易得到,它实际上就是从A*算法A*算法的可纳性:可纳性的含义:对任一状态空间图,当从初始节点到目标节点有路经存在时,如果搜索算法总能在有限步骤内找到一条从初始节点到目标节点的最佳路径,并在此路径上结束,则称该搜索算法是可纳的。A*算法是可纳的,即它能在有限步内终止,并找到问题的最优解。证明:……A*算法A*算法的可纳性:A*算法A*算法的可纳性证明:

第一步:对于有限图,A*算法一定会在有限步骤内终止。第二步:对于无限图,如果从初始节点S0到目标节点Sg有路径存在,则A*算法也必然会终止。第三步:

A*算法一定终止在最优路径上。A*算法A*算法的可纳性证明:A*算法证明:

A*算法一定终止在最优路径上。假设最优路径存在,记为S0,x1,x2,...,xm,Sg*由于A*算法中的h(n)满足h(n)≤h*(n),则:f(S0),f(x1),f(x2),...,f(xm)均不大于,f(Sg*),f(Sg*)=f*(S0)在A*算法结束之前,OPEN表中必然存在最优路径S0,x1,x2,...,xm,Sg*中的一些节点,记x'为其中最前面一个,则f(x')≤f*(S0)。假设:A*算法不是终止在最优路径上,而是在某个目标节点t处终止,则有f(t)=g(t)

>f*(S0)。此时有f(x')<f(t),按照A*算法的规则,应该选择x'进行扩展,而不会选择t。与假设矛盾A*算法证明:A*算法一定终止在最优路径上。A*算法A*算法的最优性:h(n)的确定依赖于具体问题领域的启发性信息,其中h(n)≤h*(n)的限制是十分重要的,它可以保证A*算法能找到问题的最优解。A*算法的搜索效率很大程度上取决于估价函数h(n)。一般来说,在满足h(n)≤h*(n)的前提下,h(n)的值越大越好。h(n)的值越大,说明它携带的启发性信息越多,A*算法搜索时扩展的节点就越少,搜索效率就越高。A*算法A*算法的最优性:A*算法h(n)的单调限制在A*算法中,每当扩展一个节点n时,都需要检查其子节点是否已在OPEN表或CLOSED表中。对已在OPEN表中的子节点,需要决定是否调整指向其父节点的指针;对已在CLOSED表中的子节点,除需要决定是否调整其指向父节点的指针外,还需要决定是否调整其子节点的后继节点的父指针。如果能够保证,每当扩展一个节点时就已经找到了通往这个节点的最佳路径,就没有必要再去作上述检查。A*算法h(n)的单调限制A*算法h(n)的单调限制为能够保证,每当扩展一个节点时就已经找到了通往这个节点的最佳路径,我们需要对启发函数h(n)增加单调性限制。如果启发函数满足以下两个条件:(1)h(Sg)=0;(2)对任意节点ni及其任一子节点nj,都有0≤h(ni)-h(nj)≤c(ni,nj)其中c(ni,nj)是ni到其子节点nj的边代价,则称h(n)满足单调限制。A*算法h(n)的单调限制A*算法如果h(n)满足单调条件,则当A*算法扩展节点n时,该节点就已经找到了通往它的最佳路径,即g(n)=g*(n)。证明:设A*正要扩展节点n,而节点序列S0=n0,n1,…,nk=n是由初始节点S0到节点n的最佳路径。其中,ni是这个序列中最后一个位于CLOSED表中的节点,则上述节点序列中的ni+1节点必定在OPEN表中,由h(n)的单调条件可知:g*(ni)+h(ni)≤g*(ni)+c(ni,ni+1)+h(ni+1)所以:g*(ni)+h(ni)≤g*(ni+1)+h(ni+1)依此类推可得:g*(ni+1)+h(ni+1)≤g*(nk)+h(nk)=g*(n)+h(n)由于节点ni+1在最佳路径上,故有f(ni+1)≤g*(n)+h(n)因为这时A*扩展节点n而不扩展节点ni+1,则有:

f(n)=g(n)+h(n)≤f(ni+1)≤g*(n)+h(n)

即g(n)≤g*(n)。g*(n)是最小代价值,所以有g(n)=g*(n)最佳路径上的节点A*算法如果h(n)满足单调条件,则当A*算法扩展节点n时,A*算法如果h(n)满足单调限制,则A*算法扩展的节点序列的f值是非递减的,即f(ni)≤f(ni+1)。证明:假设节点ni+1在节点ni之后立即扩展,由单调限制条件可知:h(ni)-h(ni+1)≤c(ni,ni+1)即:(f(ni)-g(ni))-(f(ni+1)-g(ni+1))≤c(ni,ni+1)亦即:f(ni)-g(ni)-f(ni+1)+g(ni)+c(ni,ni+1)≤c(ni,ni+1)所以:f(ni)-f(ni+1)≤0即:f(ni)≤f(ni+1)以上两个定理都是在h(n)满足单调性限制的前提下才成立的。如果h(n)不满足单调性限制,则它们不一定成立。A*算法如果h(n)满足单调限制,则A*算法扩展的节点序列的A*算法A*算法应用:八数码难题f(n)=g(n)+h(n)g(n)深度h(n)与目标距离f*=g*+h*f(n)=g(n)+h(n)g(n)深度h(n)与目标距离f*=g*+h*A*算法A*算法应用:f(n)=g(n)+h(n)搜索策略搜索策略搜索的基本概念状态空间的搜索策略与/或树的搜索策略搜索的完备性与效率搜索策略搜索策略与/或树的搜索策略与/或树的搜索策略与/或树的一般搜索过程与/或树的广度优先搜索与/或树的深度优先搜索与/或树的启发式搜索博弈树的启发式搜索α-β剪枝技术与/或树的搜索策略与/或树的搜索策略与/或树的搜索策略与/或树的搜索策略与/或树的一般搜索过程与/或树的广度优先搜索与/或树的深度优先搜索与/或树的启发式搜索博弈树的启发式搜索α-β剪枝技术与/或树的搜索策略与/或树的搜索策略与/或树的一般搜索过程与/或树的搜索策略:用与/或树方法求解问题时,首先要定义问题的描述方法,及分解或变换问题的算符,然后就用它们通过搜索生成与/或树,从而求得原始问题的解。在与/或树中,一个节点是否为可解节点是由它的子节点确定的。由可解/不可解子节点来确定父节点、祖父节点等为可解/不可解节点的过程成为可解/不可解标记过程。与/或树的搜索过程是反复调用可解/不可解标记过程,直到初始节点(原始问题)被标记为可解/不可解节点为止。与/或树的一般搜索过程与/或树的搜索策略:与/或树的一般搜索过程与/或树的一般搜索过程如下:(1)把原始问题作为初始节点S0,并把它作为当前节点;(2)应用分解或等价变换操作对当前节点进行扩展;(3)为每个子节点设置指向父节点的指针;(4)选择合适的子节点作为当前节点,反复执行第(2)步和第(3)步,在此期间需要多次调用可解标记过程或不可解标记过程,直到初始节点被标记为可解节点或不可解节点为止。上述搜索过程将形成一棵与/或树,这种由搜索过程所形成的与/或树称为搜索树。与/或树的一般搜索过程与/或树的一般搜索过程如下:与/或树的搜索策略与/或树的搜索策略与/或树的一般搜索过程与/或树的广度优先搜索与/或树的深度优先搜索与/或树的启发式搜索博弈树的启发式搜索α-β剪枝技术与/或树的搜索策略与/或树的搜索策略与/或树的广度优先搜索与/或树的广度优先搜索:与/或树的广度优先搜索与状态空间的广度优先搜索的主要差别是,需要在搜索过程中需要多次调用可解标识过程或不可解标识过程。与/或树的广度优先搜索算法如下:(1)把初始节点S0放入OPEN表中;(2)把OPEN表的第一个节点取出放入CLOSED表,并记该节点为n;(3)如果节点n可扩展,则做下列工作:与/或树的广度优先搜索与/或树的广度优先搜索:与/或树的广度优先搜索①扩展节点n,将其子节点放入OPEN表的尾部,并为每一个子节点设置指向父节点的指针;②考察这些子节点中有否终止节点。若有,则标记这些终止节点为可解节点,并用可解标记过程对其父节点及先辈节点中的可解解节点进行标记。如果初始解节点S0能够被标记为可解节点,就得到了解树,搜索成功,退出搜索过程;如果不能确定S0为可解节点,则从OPEN表中删去具有可解先辈的节点。③转第(2)步。与/或树的广度优先搜索①扩展节点n,将其子节点放入OPEN与/或树的广度优先搜索

(4)如果节点n不可扩展,则作下列工作:

①标记节点n为不可解节点;②应用不可解标记过程对节点n的先辈中不可解解的节点进行标记。如果初始解节点S0也被标记为不可解节点,则搜索失败,表明原始问题无解,退出搜索过程;如果不能确定S0为不可解节点,则从Open表中删去具有不可解先辈的节点。③转第(2)步。与/或树的广度优先搜索(4)如果节点n不可扩展,则作下列与/或树的广度优先搜索与/或树的广度优先搜索的例子:设有下图所示的与/或树,节点按标注顺序进行扩展,其中表有t1、t2、t3的节点是终止节点,A、B、C为不可解的端节点。123A4t15

t2Bt3C与/或树的广度优先搜索与/或树的广度优先搜索的例子:12与/或树的广度优先搜索广度优先搜索过程:(1)先扩展1号节点,生成2号节点和3号节点。(2)扩展2号节点,生成A节点和4号节点。(3)扩展3号节点,生成t1节点和5号节点。由于t1为终止节点,则标记它为可解节点,并应用可解标记过程,不能确定3号节点是否可节。(4)扩展节点A,由于A是端节点,因此不可扩展。调用不可解标记过程。与/或树的广度优先搜索广度优先搜索过程:(3)扩展3号节点与/或树的广度优先搜索广度优先搜索过程:(5)扩展4号节点,生成t2节点和B节点。由于t2为终止节点,标记为可解节点,应用可解标记过程,可标记2号节点为可解,但不能标记1号节点为可解。(6)扩展5号节点,生成t3节点和C节点。由于t3为终止节点,标记它为可解节点,应用可解标记过程,可标记1号节点为可解节点。(7)搜索成功,得到由1、2、3、4、5号节点和t1、t2、t3节点构成的解树。与/或树的广度优先搜索广度优先搜索过程:(6)扩展5号节点与/或树的搜索策略与/或树的搜索策略与/或树的一般搜索过程与/或树的广度优先搜索与/或树的深度优先搜索与/或树的启发式搜索博弈树的启发式搜索α-β剪枝技术与/或树的搜索策略与/或树的搜索策略与/或树的深度优先搜索与/或树的深度优先搜索:与/或树的深度优先搜索和与/或树的广度优先搜索过程基本相同,其主要区别在于OPEN表中节点的排列顺序不同。在扩展节点时,与/或树的深度优先搜索过程总是把刚生成的节点放在OPEN表的首部。与/或树的深度优先搜索也可以带有深度限制dm与/或树的深度优先搜索算法如下:(1)把初始节点S0放入OPEN表中;(2)把OPEN表第一个节点取出放入CLOSED表,并记该节点为n;

与/或树的深度优先搜索与/或树的深度优先搜索:与/或树的深度优先搜索与/或树的深度优先搜索算法如下:(3)如果节点n的深度等于dm,则转第(5)步的第①点;(4)如果节点n可扩展,则做下列工作:

①扩展节点n,将其子节点放入OPEN表的首部,并为每一个子节点设置指向父节点的指针;②考察这些子节点中是否有终止节点。若有,则标记这些终止节点为可解节点,并用可解标记过程对其父节点及先辈节点中的可解解节点进行标记。如果初始解节点S0能够被标记为可解节点,就得到了解树,搜索成功;如果不能确定S0为可解节点,则从OPEN表中删去具有可解先辈的节点。与/或树的深度优先搜索与/或树的深度优先搜索算法如下:与/或树的深度优先搜索与/或树的深度优先搜索算法如下:③转第(2)步。(5)如果节点n不可扩展,则作下列工作:①标记节点n为不可解节点;②应用不可解标记过程对节点n的先辈中不可解解的节点进行标记。如果初始解节点S0也被标记为不可解节点,则搜索失败,表明原始问题无解,退出搜索过程;如果不能确定S0为不可解节点,则从Open表中删去具有不可解先辈的节点。③转第(2)步。

与/或树的深度优先搜索与/或树的深度优先搜索算法如下:与/或树的广度优先搜索与/或树的深度优先搜索的例子:设有下图所示的与/或树,其中表有t1、t2、t3的节点是终止节点,A、B、C为不可解的端节点。若按有界深度优先搜索,设dm=4,则其节点扩展顺序为:1,3,5,2,4。

123A4t15

t2Bt3C与/或树的广度优先搜索与/或树的深度优先搜索的例子:12与/或树的广度优先搜索深度优先搜索过程:(1)先扩展1号节点,生成2号节点和3号节点。(2)扩展3号节点,生成t1节点和5号节点。由于t1为终止节点,则标记它为可解节点,并应用可解标记过程,不能确定3号节点是否可解。

(3)扩展5号节点,生成t3节点和C节点。由于t3为终止节点,则标记它为可解节点,并应用可解标记过程,可标记3号节点为可解节点,但不能标记1号为可解。与/或树的广度优先搜索深度优先搜索过程:(3)扩展5号节点,与/或树的广度优先搜索深度优先搜索过程:(4)扩展2号节点,生成A节点和4号节点。

(5)扩展4号节点,生成t2节点和B节点。由于t2为终止节点,则标记它为可解节点,并应用可解标记过程,可标记2号节点为可解,再往上又可标记1号节点为可解。(6)搜索成功,得到由1、3、5、2、4号节点即t1、t2、t3节点构成的解树。与/或树的广度优先搜索深度优先搜索过程:(6)搜索成功,得与/或树的搜索策略与/或树的搜索策略与/或树的一般搜索过程与/或树的广度优先搜索与/或树的深度优先搜索与/或树的启发式搜索博弈树的启发式搜索α-β剪枝技术与/或树的搜索策略与/或树的搜索策略问题?问题?ArtificialIntelligence(AI)

人工智能主讲:戚玉涛Email:qi_yutao@163.com第三章:确定性推理ArtificialIntelligence(AI)

人内容提要第三章:确定性推理1.推理的基本概念2.搜索策略3.自然演绎推理4.归结演绎推理5.基于规则的演绎推理内容提要第三章:确定性推理1.推理的基本概念2.搜索策略3.搜索策略搜索策略搜索的基本概念状态空间的搜索策略与/或树的搜索策略搜索的完备性与效率搜索策略搜索策略状态空间的搜索策略状态空间的搜索策略状态空间搜索的基本思想图搜索的一般过程状态空间的盲目搜索广度优先搜索深度优先搜索代价树搜索状态空间的启发式搜索启发性信息和估价函数A算法和A*算法状态空间的搜索策略状态空间的搜索策略状态空间的搜索策略状态空间的搜索策略状态空间搜索的基本思想图搜索的一般过程状态空间的盲目搜索广度优先搜索深度优先搜索代价树搜索状态空间的启发式搜索启发性信息和估价函数A算法和A*算法状态空间的搜索策略状态空间的搜索策略A算法A算法:在图搜索算法中,如果能在搜索的每一步都利用估价函数f(n)=g(n)+h(n)对OPEN表中的节点进行排序,则该搜索算法为A算法。

由于估价函数中带有问题自身的启发性信息,因此,A算法也被称为启发式搜索算法。A算法的类型:可根据搜索过程中选择扩展节点的范围,将启发式搜索算法分为全局择优搜索算法:

从OPEN表的所有节点中选择一个估价函数值最小的一个进行扩展。局部择优搜索算法:仅从刚生成的子节点中选择一个估价函数值最小的一个进行扩展。A算法A算法:在图搜索算法中,如果能在搜索的每一步都利用估价A算法全局择优搜索算法流程(1)把初始节点S0放入OPEN表,计算f(S0)。(2)如果OPEN表为空,则问题无解,退出。(3)把OPEN表的第一个节点(记为节点n)取出放入CLOSED表。(4)考察节点n是否为目标节点。若是,则求得了问题的解,退出。(5)若节点n不可扩展,则转第2步。(6)扩展节点n,用估价函数f(x)计算每个子节点的估价值,并为每一个子节点都配置指向父节点的指针。把这些子节点都送入OPEN表中,然后对OPEN表中的全部节点按估价值从小至大的顺序进行排序,然后转第2步。A算法全局择优搜索算法流程A算法局部择优搜索算法流程(1)把初始节点S0放入OPEN表,计算f(S0)。(2)如果OPEN表为空,则问题无解,退出。(3)把OPEN表的第一个节点(记为节点n)取出放入CLOSED表。(4)考察节点n是否为目标节点。若是,则求得了问题的解,退出。(5)若节点n不可扩展,则转第2步。(6)扩展节点n,用估价函数f(x)计算每个子节点的估价值,并按估价值从小到大的顺序放到OPEN表中的首部,并为每一个子节点都配置指向父节点的指针,然后转第2步。A算法局部择优搜索算法流程A*算法A*算法:A*算法是对A算法的估价函数f(n)=g(n)+h(n)加上某些限制后得到的一种启发式搜索算法。假设f*(n)是从初始节点出发经过节点n达到目标节点的最小代价,估价函数f(n)是对f*(n)的估计值。且

f*(n)=g*(n)+h*(n)g*(n)是从初始节点S0到节点n的最小代价。h*(n)是从节点n到目标节点的最小代价,若有多个目标节点,则为其中最小的一个。A*算法A*算法:A*算法是对A算法的估价函数f(n)=g(A*算法A*算法:A*算法对A算法(全局择优的启发式搜索算法)中的g(n)和h(n)分别提出如下限制:第一,g(n)是对最小代价g*(n)的估计,且g(n)>0;第二,h(n)是最小代价h*(n)的下界,即对任意节点n均有h(n)≤h*(n)。即:满足上述两条限制的A算法称为A*算法。A*算法A*算法:A*算法对A算法(全局择优的启发式搜索算法A*算法在A*算法中,g(n)比较容易得到,它实际上就是从初始节点S0到节点n的路径代价,恒有:

g(n)

g*(n)在算法执行过程中,随着更多搜索信息的获得,g(n)呈下降的趋势。如右图的例子:对S0扩展后g(n1)=3,g(n2)=7对n1扩展后g(n2)=6,g(n3)=5S0n137n2n332A*算法在A*算法中,g(n)比较容易得到,它实际上就是从A*算法A*算法的可纳性:可纳性的含义:对任一状态空间图,当从初始节点到目标节点有路经存在时,如果搜索算法总能在有限步骤内找到一条从初始节点到目标节点的最佳路径,并在此路径上结束,则称该搜索算法是可纳的。A*算法是可纳的,即它能在有限步内终止,并找到问题的最优解。证明:……A*算法A*算法的可纳性:A*算法A*算法的可纳性证明:

第一步:对于有限图,A*算法一定会在有限步骤内终止。第二步:对于无限图,如果从初始节点S0到目标节点Sg有路径存在,则A*算法也必然会终止。第三步:

A*算法一定终止在最优路径上。A*算法A*算法的可纳性证明:A*算法证明:

A*算法一定终止在最优路径上。假设最优路径存在,记为S0,x1,x2,...,xm,Sg*由于A*算法中的h(n)满足h(n)≤h*(n),则:f(S0),f(x1),f(x2),...,f(xm)均不大于,f(Sg*),f(Sg*)=f*(S0)在A*算法结束之前,OPEN表中必然存在最优路径S0,x1,x2,...,xm,Sg*中的一些节点,记x'为其中最前面一个,则f(x')≤f*(S0)。假设:A*算法不是终止在最优路径上,而是在某个目标节点t处终止,则有f(t)=g(t)

>f*(S0)。此时有f(x')<f(t),按照A*算法的规则,应该选择x'进行扩展,而不会选择t。与假设矛盾A*算法证明:A*算法一定终止在最优路径上。A*算法A*算法的最优性:h(n)的确定依赖于具体问题领域的启发性信息,其中h(n)≤h*(n)的限制是十分重要的,它可以保证A*算法能找到问题的最优解。A*算法的搜索效率很大程度上取决于估价函数h(n)。一般来说,在满足h(n)≤h*(n)的前提下,h(n)的值越大越好。h(n)的值越大,说明它携带的启发性信息越多,A*算法搜索时扩展的节点就越少,搜索效率就越高。A*算法A*算法的最优性:A*算法h(n)的单调限制在A*算法中,每当扩展一个节点n时,都需要检查其子节点是否已在OPEN表或CLOSED表中。对已在OPEN表中的子节点,需要决定是否调整指向其父节点的指针;对已在CLOSED表中的子节点,除需要决定是否调整其指向父节点的指针外,还需要决定是否调整其子节点的后继节点的父指针。如果能够保证,每当扩展一个节点时就已经找到了通往这个节点的最佳路径,就没有必要再去作上述检查。A*算法h(n)的单调限制A*算法h(n)的单调限制为能够保证,每当扩展一个节点时就已经找到了通往这个节点的最佳路径,我们需要对启发函数h(n)增加单调性限制。如果启发函数满足以下两个条件:(1)h(Sg)=0;(2)对任意节点ni及其任一子节点nj,都有0≤h(ni)-h(nj)≤c(ni,nj)其中c(ni,nj)是ni到其子节点nj的边代价,则称h(n)满足单调限制。A*算法h(n)的单调限制A*算法如果h(n)满足单调条件,则当A*算法扩展节点n时,该节点就已经找到了通往它的最佳路径,即g(n)=g*(n)。证明:设A*正要扩展节点n,而节点序列S0=n0,n1,…,nk=n是由初始节点S0到节点n的最佳路径。其中,ni是这个序列中最后一个位于CLOSED表中的节点,则上述节点序列中的ni+1节点必定在OPEN表中,由h(n)的单调条件可知:g*(ni)+h(ni)≤g*(ni)+c(ni,ni+1)+h(ni+1)所以:g*(ni)+h(ni)≤g*(ni+1)+h(ni+1)依此类推可得:g*(ni+1)+h(ni+1)≤g*(nk)+h(nk)=g*(n)+h(n)由于节点ni+1在最佳路径上,故有f(ni+1)≤g*(n)+h(n)因为这时A*扩展节点n而不扩展节点ni+1,则有:

f(n)=g(n)+h(n)≤f(ni+1)≤g*(n)+h(n)

即g(n)≤g*(n)。g*(n)是最小代价值,所以有g(n)=g*(n)最佳路径上的节点A*算法如果h(n)满足单调条件,则当A*算法扩展节点n时,A*算法如果h(n)满足单调限制,则A*算法扩展的节点序列的f值是非递减的,即f(ni)≤f(ni+1)。证明:假设节点ni+1在节点ni之后立即扩展,由单调限制条件可知:h(ni)-h(ni+1)≤c(ni,ni+1)即:(f(ni)-g(ni))-(f(ni+1)-g(ni+1))≤c(ni,ni+1)亦即:f(ni)-g(ni)-f(ni+1)+g(ni)+c(ni,ni+1)≤c(ni,ni+1)所以:f(ni)-f(ni+1)≤0即:f(ni)≤f(ni+1)以上两个定理都是在h(n)满足单调性限制的前提下才成立的。如果h(n)不满足单调性限制,则它们不一定成立。A*算法如果h(n)满足单调限制,则A*算法扩展的节点序列的A*算法A*算法应用:八数码难题f(n)=g(n)+h(n)g(n)深度h(n)与目标距离f*=g*+h*f(n)=g(n)+h(n)g(n)深度h(n)与目标距离f*=g*+h*A*算法A*算法应用:f(n)=g(n)+h(n)搜索策略搜索策略搜索的基本概念状态空间的搜索策略与/或树的搜索策略搜索的完备性与效率搜索策略搜索策略与/或树的搜索策略与/或树的搜索策略与/或树的一般搜索过程与/或树的广度优先搜索与/或树的深度优先搜索与/或树的启发式搜索博弈树的启发式搜索α-β剪枝技术与/或树的搜索策略与/或树的搜索策略与/或树的搜索策略与/或树的搜索策略与/或树的一般搜索过程与/或树的广度优先搜索与/或树的深度优先搜索与/或树的启发式搜索博弈树的启发式搜索α-β剪枝技术与/或树的搜索策略与/或树的搜索策略与/或树的一般搜索过程与/或树的搜索策略:用与/或树方法求解问题时,首先要定义问题的描述方法,及分解或变换问题的算符,然后就用它们通过搜索生成与/或树,从而求得原始问题的解。在与/或树中,一个节点是否为可解节点是由它的子节点确定的。由可解/不可解子节点来确定父节点、祖父节点等为可解/不可解节点的过程成为可解/不可解标记过程。与/或树的搜索过程是反复调用可解/不可解标记过程,直到初始节点(原始问题)被标记为可解/不可解节点为止。与/或树的一般搜索过程与/或树的搜索策略:与/或树的一般搜索过程与/或树的一般搜索过程如下:(1)把原始问题作为初始节点S0,并把它作为当前节点;(2)应用分解或等价变换操作对当前节点进行扩展;(3)为每个子节点设置指向父节点的指针;(4)选择合适的子节点作为当前节点,反复执行第(2)步和第(3)步,在此期间需要多次调用可解标记过程或不可解标记过程,直到初始节点被标记为可解节点或不可解节点为止。上述搜索过程将形成一棵与/或树,这种由搜索过程所形成的与/或树称为搜索树。与/或树的一般搜索过程与/或树的一般搜索过程如下:与/或树的搜索策略与/或树的搜索策略与/或树的一般搜索过程与/或树的广度优先搜索与/或树的深度优先搜索与/或树的启发式搜索博弈树的启发式搜索α-β剪枝技术与/或树的搜索策略与/或树的搜索策略与/或树的广度优先搜索与/或树的广度优先搜索:与/或树的广度优先搜索与状态空间的广度优先搜索的主要差别是,需要在搜索过程中需要多次调用可解标识过程或不可解标识过程。与/或树的广度优先搜索算法如下:(1)把初始节点S0放入OPEN表中;(2)把OPEN表的第一个节点取出放入CLOSED表,并记该节点为n;(3)如果节点n可扩展,则做下列工作:与/或树的广度优先搜索与/或树的广度优先搜索:与/或树的广度优先搜索①扩展节点n,将其子节点放入OPEN表的尾部,并为每一个子节点设置指向父节点的指针;②考察这些子节点中有否终止节点。若有,则标记这些终止节点为可解节点,并用可解标记过程对其父节点及先辈节点中的可解解节点进行标记。如果初始解节点S0能够被标记为可解节点,就得到了解树,搜索成功,退出搜索过程;如果不能确定S0为可解节点,则从OPEN表中删去具有可解先辈的节点。③转第(2)步。与/或树的广度优先搜索①扩展节点n,将其子节点放入OPEN与/或树的广度优先搜索

(4)如果节点n不可扩展,则作下列工作:

①标记节点n为不可解节点;②应用不可解标记过程对节点n的先辈中不可解解的节点进行标记。如果初始解节点S0也被标记为不可解节点,则搜索失败,表明原始问题无解,退出搜索过程;如果不能确定S0为不可解节点,则从Open表中删去具有不可解先辈的节点。③转第(2)步。与/或树的广度优先搜索(4)如果节点n不可扩展,则作下列与/或树的广度优先搜索与/或树的广度优先搜索的例子:设有下图所示的与/或树,节点按标注顺序进行扩展,其中表有t1、t2、t3的节点是终止节点,A、B、C为不可解的端节点。123A4t15

t2Bt3C与/或树的广度优先搜索与/或树的广度优先搜索的例子:12与/或树的广度优先搜索广度优先搜索过程:(1)先扩展1号节点,生成2号节点和3号节点。(2)扩展2号节点,生成A节点和4号节点。(3)扩展3号节点,生成t1节点和5号节点。由于t1为终止节点,则标记它为可解节点,并应用可解标记过程,不能确定3号节点是否可节。(4)扩展节点A,由于A是端节点,因此不可扩展。调用不可解标记过程。与/或树的广度优先搜索广度优先搜索过程:(3)扩展3号节点与/或树的广度优先搜索广度优先搜索过程:(5)扩展4号节点,生成t2节点和B节点。由于t2为终止节点,标记为可解节点,应用可解标记过程,可标记2号节点为可解,但不能标记1号节点为可解。(6)扩展5号节点,生成t3节点和C节点。由于t3为终止节点,标记它为可解节点,应用可解标记过程,可标记1号节点为可解节点。(7)搜索成功,得到由1、2、3、4、5号节点和t1、t2、t3节点构成的解树。与/或树的广度优先搜索广度优先搜索过程:(6)扩展5号节点与/或树的搜索策略与/或树的搜索策略与/或树的一般搜索过程与/或树的

温馨提示

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

最新文档

评论

0/150

提交评论