收藏 分享(赏)

第3章+搜索推理技术.ppt

上传人:scg750829 文档编号:5585561 上传时间:2019-03-09 格式:PPT 页数:58 大小:523.50KB
下载 相关 举报
第3章+搜索推理技术.ppt_第1页
第1页 / 共58页
第3章+搜索推理技术.ppt_第2页
第2页 / 共58页
第3章+搜索推理技术.ppt_第3页
第3页 / 共58页
第3章+搜索推理技术.ppt_第4页
第4页 / 共58页
第3章+搜索推理技术.ppt_第5页
第5页 / 共58页
点击查看更多>>
资源描述

1、第三章 搜索推理技术,人工智能,3.1图搜索策略,1、图搜索策略图搜索策略可看作一种在图中寻找路径的方法。初始节点和目标节点分别代表初始数据库和满足终止条件的数据库。求得把一个数据库变换为另一数据库的规则序列问题就等价于求得图中的一条路径问题。 2、图搜索算法中的几个重要名词术语(1)OPEN表与CLOSE表(2)搜索图与搜索树,3.1图搜索策略,3、图搜索(GRAPHSEARCH)的一般过程(1) 建立一个只含有起始节点S的搜索图G,把S放到一个叫做OPEN的未扩展节点表中。(2) 建立一个叫做CLOSED的已扩展节点表,其初始为空表。(3) LOOP:若OPEN表是空表,则失败退出。(4)

2、 选择OPEN表上的第一个节点,把它从OPEN表移出并放进CLOSED表中。称此节点为节点n。(5) 若n为一目标节点,则有解并成功退出,此解是追踪图G中沿着指针从n到S这条路径而得到的(指针将在第7步中设置)。,3.1图搜索策略,(6) 扩展节点n,同时生成不是n的祖先的那些后继节点的集合M。把M的这些成员作为n的后继节点添入图G中。(7) 对那些未曾在G中出现过的(既未曾在OPEN表上或CLOSED表上出现过的)M成员设置一个通向n的指针。把M的这些成员加进OPEN表。对已经在OPEN或CLOSED表上的每一个M成员,确定是否需要更改通到n的指针方向。对已在CLOSED表上的每个M成员,确

3、定是否需要更改图G中通向它的每个后裔节点的指针方向。(8) 按某一任意方式或按某个探试值,重排OPEN表。(9) GO LOOP。,3.1图搜索策略,思考:图搜索是针对什么知识表示方法的问题求解方法?,3.1图搜索策略,4、图搜索方法分析:图搜索过程的第8步对OPEN表上的节点进行排序,以便能够从中选出一个“最好”的节点作为第4步扩展用。这种排序可以是任意的即盲目的(属于盲目搜索),也可以用以后要讨论的各种启发思想或其它准则为依据(属于启发式搜索)。每当被选作扩展的节点为目标节点时,这一过程就宣告成功结束。这时,能够重现从起始节点到目标节点的这条成功路径,其办法是从目标节点按指针向S返回追溯。

4、当搜索树不再剩有未被扩展的端节点时,过程就以失败告终(某些节点最终可能没有后继节点,所以OPEN表可能最后变成空表)。在失败终止的情况下,从起始节点出发,一定达不到目标节点。,3.2盲目搜索,3.2.1宽度优先搜索 1、定义如果搜索是以接近起始节点的程度依次扩展节点的,那么这种搜索就叫做宽度优先搜索(breadth-first search)。 2、特点这种搜索是逐层进行的;在对下一层的任一节点进行搜索之前,必须搜索完本层的所有节点。,3.2盲目搜索,3、宽度优先搜索算法(1) 把起始节点放到OPEN表中(如果该起始节点为一目标节点,则求得一个解答)。(2) 如果OPEN是个空表,则没有解,失

5、败退出;否则继续。(3) 把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED的扩展节点表中。(4) 扩展节点n。如果没有后继节点,则转向上述第(2)步。(5) 把n的所有后继节点放到OPEN表的末端,并提供从这些后继节点回到n的指针。(6) 如果n的任一个后继节点是个目标节点,则找到一个解答,成功退出;否则转向第(2)步。,3.2盲目搜索,4、宽度优先搜索方法分析:宽度优先搜索是图搜索一般过程的特殊情况,将图搜索一般过程中的第8步具体化为本算法中的第6步,这实际是将OPEN表作为“先进先出”的队列进行操作。宽度优先搜索方法能够保证在搜索树中找到一条通向目标节点的最短途径;这棵搜索树

6、提供了所有存在的路径(如果没有路径存在,那么对有限图来说,我们就说该法失败退出;对于无限图来说,则永远不会终止)。,3.2盲目搜索,5、例:画出把宽度优先搜索应用于八数码难题时所生成的搜索树。,初始棋局,目标棋局,3.2盲目搜索,3.2.2深度优先搜索 1、定义在此搜索中,首先扩展最新产生的(即最深的)节点。深度相等的节点可以任意排列。这种盲目(无信息)搜索叫做深度优先搜索(depth-first search)。 2、特点首先,扩展最深的节点的结果使得搜索沿着状态空间某条单一的路径从起始节点向下进行下去;只有当搜索到达一个没有后裔的状态时,它才考虑另一条替代的路径。,3.2盲目搜索,3、深度

7、界限为了避免考虑太长的路径(防止搜索过程沿着无益的路径扩展下去),往往给出一个节点扩展的最大深度深度界限。任何节点如果达到了深度界限,那么都将把它们作为没有后继节点处理。 4、含有深度界限的深度优先搜索算法(1) 把起始节点放到OPEN表中(如果该起始节点为一目标节点,则求得一个解答)。(2) 如果OPEN为一空表,则失败退出。(3) 把第一个节点(节点n)从OPEN表移到CLOSED的扩展节点表。,3.2盲目搜索,(4)如果节点n的深度等于最大深度,则转向步骤(2)。(5)扩展节点n,产生其全部后裔,并把它们放入OPEN表的前头。如果没有后裔,转向步骤(2)。(6) 如果n的任一个后继节点是

8、个目标节点,则找到一个解答,成功退出;否则转向第(2)步。 思考题:有界深度优先搜索方法能够保证在搜索树中找到一条通向目标节点的最短途径吗?,3.2盲目搜索,5、例:画出把有界深度优先搜索应用于八数码难题时所生成的搜索树,其中,深度界限为4。,初始状态,目标状态,3.2盲目搜索,3.2.3等代价搜索 1.定义宽度优先搜索可被推广用来解决寻找从起始状态至目标状态的具有最小代价的路径问题,这种推广了的宽度优先搜索算法叫做等代价搜索算法。 2.等代价搜索中的几个记号起始节点记为S;从节点i到它的后继节点j的连接弧线代价记为c(i,j);从起始节点S到任一节点i的路径代价记为g(i)。,3.2盲目搜索

9、,3.等代价搜索算法(1) 把起始节点放到OPEN表中。如果该起始节点为一目标节点,则求得一个解;否则令g(S)=0。(2) 如果OPEN是个空表,则没有解,失败退出;(3) 从OPEN表中选择一个节点i,使其g(i)最小。如果有几个节点都合格,那么就要选择一个目标节点i(要是有目标节点的话);否则,就从中选一个作为节点i。把节点i从OPEN表移至扩展节点表CLOSED中。(4)如果节点i为目标节点,则求得一个解。(5) 扩展节点i。如果没有后继节点,则转向上述第(2)步。(6)对于节点i的每个后继节点j,计算g(j)=g(i)+c(i,j),并把所有后继节点放到OPEN表,并提供回溯到节点i

10、的指针。(7) 转向第(2)步。,3.2盲目搜索,思考:等代价算法与宽度优先搜索算法 之间的关系,3.3 启发式搜索,3.3.1启发式搜索策略和估价函数 1.定义进行搜索技术一般需要某些有关具体问题领域的特性的信息,把此种信息叫做启发信息。利用启发信息的搜索方法叫做启发式搜索方法。 2.启发式搜索策略有关具体问题领域的信息常常可以用来简化搜索。一个比较灵活(但代价也较大)的利用启发信息的方法是应用某些准则来重新排列每一步OPEN表中所有节点的顺序。然后,搜索就可能沿着某个被认为是最有希望的边缘区段向外扩展。应用这种排序过程,需要某些估算节点“希望”的量度,这种量度叫做估价函数(evalutio

11、n function)。,3.3 启发式搜索,3.估价函数为获得某些节点“希望”的启发信息,提供一个评定侯选扩展节点的方法,以便确定哪个节点最有可能在通向目标的最佳路径上 。f(n)表示节点n的估价函数值 建立估价函数的一般方法:试图确定一个处在最佳路径上的节点的概率;提出任意节点与目标集之间的距离量度或差别量度;或者在棋盘式的博弈难题中根据棋局的某些特点来决定棋局的得分数。这些特点被认为与向目标节点前进一步的希望程度有关。,3.3 启发式搜索,3.3.2 有序搜索 1.定义用估价函数f来排列GRAPHSEARCH第8步中OPEN表上的节点。应用某个算法(例如等代价算法)选择OPEN表上具有最

12、小f值的节点作为下一个要扩展的节点。这种搜索方法叫做有序搜索(ordered search)或最佳优先搜索(best-first search),而其算法就叫做有序搜索算法或最佳优先算法。尼尔逊(Nilsson)曾提出一个有序搜索的基本算法。估价函数f是这样确定的:一个节点的希望程序越大,其f值就越小。被选为扩展的节点,是估价函数最小的节点。,3.3 启发式搜索,2.实质选择OPEN表上具有最小f值的节点作为下一个要扩展的节点,即总是选择最有希望的节点作为下一个要扩展的节点。,3.3 启发式搜索,3.有序状态空间搜索算法(1) 把起始节点S放到OPEN表中,计算f(S)并把其值与节点S联系起来

13、。(2) 如果OPEN是个空表,则失败退出,无解。(3) 从OPEN表中选择一个f值最小的节点i。结果有几个节点合格,当其中有一个为目标节点时,则选择此目标节点,否则就选择其中任一个节点作为节点i。(4) 把节点i从OPEN表中移出,并把它放入CLOSED的扩展节点表中。(5) 如果i是个目标节点,则成功退出,求得一个解。,3.3 启发式搜索,(6) 扩展节点i,生成其全部后继节点。对于i的每一个后继节点j:(a)计算f(j)。(b)如果j既不在OPEN表中,又不在CLOSED表中,则用估价函数f把它添入OPEN表。从j加一指向其父辈节点i的指针,以便一旦找到目标节点时记住一个解答路径。(c)

14、如果j已在OPEN表上或CLOSED表上,则比较刚刚对j计算过的f值和前面计算过的该节点在表中的f值。如果新的f值较小,则(i) 以此新值取代旧值。(ii) 从j指向i,而不是指向它的父辈节点。(iii) 如果节点j在CLOSED表中,则把它移回OPEN表。(7) 转向(2) 。,3.3 启发式搜索,思考:宽度优先搜索、等代价搜索和深度优先搜索与有序搜索的关系。有序搜索的有效性直接取决于f的选择,如果选择的f不合适,有序搜索就可能失去一个最好的解甚至全部的解。如果没有适用的准确的希望量度,那么f的选择将涉及两个方面的内容:一方面是一个时间和空间之间的折衷方案;另一方面是保证有一个最优的解或任意

15、解。,3.3 启发式搜索,3.3.3 A*算法A*算法是一种有序搜索算法,其特点在于对估价函数的定义上。 1.几个记号令k(ni,nj)表示任意两个节点ni和nj之间最小代价路径的实际代价(对于两节点间没有通路的节点,函数k没有定义)。于是,从节点n到某个具体的目标节点ti,某一条最小代价路径的代价可由k(n,ti)给出。,3.3 启发式搜索,令h*(n)表示整个目标节点集合ti上所有k(n,ti)中最小的一个,因此,h*(n)就是从n到目标节点最小代价路径的代价,而且从n到目标节点能够获得h*(n)的任一路径就是一条从n到某个目标节点的最佳路径(对于任何不能到达目标节点的节点n,函数h*没有

16、定义)。,3.3 启发式搜索,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),3.3 启发式搜索,其中:g是g*的估计;h是h*的估计。对于g(n)来说,一个明显的选择就是搜索树中从S到n这段路径的代价,这一代价可以由从n到S寻找指针时,把所遇到的各段弧线的代价加起来给出(这条路径就是到目前为止用搜索算法找到的从S到n的最小代价

17、路径)。h*(n)的估计h(n)依赖于有关问题的领域的启发信息。这种信息可能与八数码难题中的函数W(n)所用的那种信息相似。把h叫做启发函数。,3.3 启发式搜索,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*算法。 思考:1.由g*(n)和g(n)的定义知g*(n)g(n)?2.当h=0时,A*算法就变为哪种搜索算法?

18、,3.3 启发式搜索,初始状态,目标状态,格子上有1-8八个数字外加一个空格,每次只能把与空格相临的一个数字移到空格内,移动一次算作一步,给出初始状态和目标状态,求如何以最少的步数完成移动?请设计一种A*算法的启发函数。,3.3 启发式搜索,设计A*算法时,g(n)就取当前已移动的步数,h(n)取各个数字到目标状态中对应数字的位置的最短距离之和,这样选取的原因是,对于每一次移动,只能使一个数字改变一个相临位置,所以h(n)步是至少需要的,所以满足h(n)=h*(n)。A*的成功之处就是在选择好的h(n),如果实在没办法令它为0也是可以求得问题的解的。,3.4 消解原理,原子公式不能再分解的谓词

19、公式。 文字一个原子公式和原子公式的否定。P称为正文字, P称为负文字,P与 P称为互补文字(互补对)。 子句由文字的析取组成的公式。 空子句不包含任何文字的子句,表示为NIL。空子句是永假的(不可满足的)。,3.4 消解原理,子句集由子句构成的集合。 消解当消解可使用时,消解过程被应用于母体子句对,以便产生一个导出子句。例如,如果存在某个公理E1E2和另一公理E2E3,那么E1E3在逻辑上成立。这就是消解,而称E1 E3为E1E2和E2E3的消解式(resolvent)。,3.4.1子句集的求取,1、步骤 (1) 消去蕴涵符号只应用和符号,以AB替换AB。 (2) 减少否定符号的辖域每个否定

20、符号最多只用到一个谓词符号上, 并反复应用狄摩根定律。例如: 以AB代替(AB),以AB代替(AB) 以A代替(A),以(x)A代替(x)A 以(x)A代替(x)A,3.4.1子句集的求取,(3) 对变量标准化在任一量词辖域内,受该量词约束的变量为一哑元(虚构变量),它可以在该辖域内处处统一地被另一个没有出现过的任意变量所代替,而不改变公式的真值。合适公式中变量的标准化意味着对哑元改名以保证每个量词有其自己唯一的哑元。,3.4.1子句集的求取,(4) 消去存在量词用Skolem函数代替存在的x,就可以消去全部存在量词。从一个公式消去一个存在量词的一般规则是以一个Skolem函数代替每个出现的存

21、在量词的量化变量,而这个Skolem函数的变量就是由那些全称量词所约束的全称量词量化变量,这些全称量词的辖域包括要被消去的存在量词的辖域在内。Skolem函数所使用的函数符号必须是新的,即不允许是公式中已经出现过的函数符号。,3.4.1子句集的求取,例如: ( y)( x)P(x,y)被( y)P(g(y),y)代替,其中g(y)为一Skolem函数。如果要消去的存在量词不在任何一个全称量词的辖域内,则用不含变量的Skolem函数即常量。例如,( x)P(x)化为P(A),其中常量符号A用来表示人们知道的存在实体。A必须是个新的常量符号,它未曾在公式中其它地方使用过。,3.4.1子句集的求取,

22、(5) 化为前束形把所有全称量词移到公式的左边,并使每个量词的辖域包括这个量词后面公式的整个部分。所得公式称为前束形。 (6) 把母式化为合取范式任何母式都可写成由一些谓词公式和(或)谓词公式的否定的析取的有限集组成的合取。这种母式叫做合取范式。 (7) 消去全称量词消去明显出现的全称量词。,3.4.1子句集的求取,(8) 消去连词符号用A,B代替(AB),以消去明显的符号。反复代替的结果,最后得到一个有限集,其中每个公式是文字的析取。任一个只由文字的析取构成的合适公式叫做一个子句。 (9) 更换变量名称可以更换变量符号的名称,使一个变量符号不出现在一个以上的子句中。 2、举例,3.4.2 消

23、解推理规则,1、消解式令L1为任一原子公式,L2为另一原子公式;L1和L2具有相同的谓词符号,但一般具有不同的变量。已知两子句L1和L2,如果L1和L2具有最一般合一者,那么通过消解可以从这两个父辈子句推导出一个新子句()。这个新子句叫做消解式。它是由取这两个子句的析取,然后消去互补对而得到的。,3.4.2 消解推理规则,2、消解推理规则(1) 假言推理已知:P,PQ结论:Q(2) 合并已知:P Q, P Q结论:Q(3) 重言式已知:P Q, P Q结论:T(永真),3.4.2 消解推理规则,(4) 空子句(矛盾)已知: P, P结论:F(矛盾)(5) 链式(三段论) 已知: PQ, QR结

24、论: P R,3.4.3 含有变量的消解式,1、消解式求法为了对含有变量的子句使用消解规则,必须找到一个置换,作用于父辈子句使其含有互补文字。 2、例子 P(x)Q(x)Qf(y) 置换=f(y)/xPf(y),3.4.4 消解反演求解过程,2、消解反演反演求解的步骤给出一个公式集S和目标公式L,通过反证或反演来求证目标公式L,其证明步骤如下:(1)否定L,得L;(2)把L添加到S中去;(3)把新产生的集合L,S化成子句集;(4)应用消解原理,力图推导出一个表示矛盾的空子句NIL。,3.4.4 消解反演求解过程,例:储蓄问题 前提:每个储蓄钱的人都获得利息。 结论:如果没有利息,那么就没有人去

25、储蓄钱,3.4.4 消解反演求解过程,3、反演求解过程(1)把已知前提用谓词公式表示出来,并且化为相应的子句集,该子句集的名字为;(2)把待求解的问题也用谓词公式表示出来,然后把它否定并与谓词ANSER构成析取式,ANSER是一个为了求解问题而专设的谓词,其变元必须与问题公式的变元完全一致;(3)把(2)中得到的析取式化为子句集,并把该子句集并入到子句集S中,得到子句集S;(4)对S应用消解原理进行消解;(5)得到归结式ANSER,则答案就在ANSER中.,3.4.4 消解反演求解过程,例:应用消解反演求解如下问题: “如果无论约翰(John)到哪里去,菲多(Fido)也就去那里,那么如果约翰

26、在学校里,菲多在哪里呢?”,3.6 产生式系统,定义:在基于规则系统中,每个if可能与某断言(assertion)集中的一个或多个断言匹配,then部分用于规定放入工作内存的新断言。当then部分用于规定动作时,称这种基于规则的系统为反应式系统(reaction system)或产生式系统(production system)。,3.6.1 产生式系统的组成,1.产生式系统的组成 产生式系统由3个部分组成,即总数据库(或全局数据库)、产生式规则和控制策略,如下图所示。,3.6.1 产生式系统的组成,总数据库有时也被称作上下文,综合数据库或黑板等,用于存放求解过程中各种当前信息的数据结构,如问题

27、的初始状态、事实或证据、中间推理结论或最后结果等。当产生式规则中某条规则的前提与总数据库中某些事实相匹配时,该规则就被激活,并把其结论作为新的事实存入总数据库。,3.6.1 产生式系统的组成,产生式规则是一个规则库,用于存放与求解问题有关的某个领域知识的规则之集合及其交换规则。规则库知识的完整性、一致性、准确性、灵活性和知识组织的合理性,将对产生式系统的运行效率和工作性能产生重要影响。,3.6.1 产生式系统的组成,控制策略为一推理机构,由一组程序组成,用来控制产生式系统的运行,决定问题求解过程的推理线路,实现对问题的求解。产生式系统的控制策略随搜索方式的不同可分为可撤回策略、回溯策略、图搜索

28、策略等。,3.6.1 产生式系统的组成,2.产生式系统的控制策略 控制策略的作用是说明下一步应该选用什么规则,也就是如何应用规则。通常从选择规则到执行操作分3步:匹配、冲突解决和操作。,3.6.1 产生式系统的组成,(1)匹配在这一步,把当前数据库与规则的条件部分相匹配。如果两者完全匹配,则把这条规则称为触发规则。当按规则的操作部分去执行时,称这条规则为启用规则。被触发的规则不一定总是启用规则,因为可能同时有几条规则的条件部分被满足,这就要在解决冲突步骤中来解决这个问题。在复杂的情况下,在数据库和规则的条件部分之间可能要进行近似匹配。,3.6.1 产生式系统的组成,(2)冲突解决当有一条以上规

29、则的条件部分和当前数据库相匹配时,就需要决定首先使用哪一条规则,这称为冲突解决。(3)操作操作就是执行规则的操作部分,经过操作以后,当前数据库将被修改。然后,其他的规则有可能被使用。,3.6.2 产生式系统的推理,1.正向推理 从一组表示事实的谓词或命题出发,使用一组产生式规则,用以证明该谓词公式或命题是否成立。一般策略:先提供一批事实(数据)到总数据库中。系统利用这些事实与规则的前提相匹配,触发匹配成功的规则,把其结论作为新的事实添加到总数据库中。继续上述过程,用更新过的总数据库的所有事实再与规则库中另一条规则匹配,用其结论再次修改总数据库的内容,直到没有可匹配的新规则,不再有新的事实加到总

30、数据库中。,3.6.2 产生式系统的推理,2.逆向推理 从表示目标的谓词或命题出发,使用一组产生式规则证明事实谓词或命题成立,即首先提出一批假设目标,然后逐一验证这些假设。 一般策略:首先假设一个可能的目标,然后由产生式系统试图证明此假设目标是否在总数据库中。若在总数据库中,则该假设目标成立;否则,若该假设为终叶(证据)节点,则询问用户。若不是,则再假定另一个目标,即寻找结论部分包含该假设的那些规则,把它们的前提作为新的假设,并力图证明其成立。这样反复进行推理,直到所有目标均获证明或者所有路径都得到测试为止。,3.6.2 产生式系统的推理,3.双向推理 双向推理的推理策略是同时从目标向事实推理和从事实向目标推理,并在推理过程中的某个步骤,实现事实与目标的匹配。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报