人工智能_一般搜索算法原理15333359.pptx
《人工智能_一般搜索算法原理15333359.pptx》由会员分享,可在线阅读,更多相关《人工智能_一般搜索算法原理15333359.pptx(153页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 一般搜索原理盲目搜索启发式搜索归结原理3/13/20231人工智能讲义盲目搜索图搜索策略深度优先搜索宽度优先搜索等代价搜索3/13/20232人工智能讲义一些基本概念节点深度:根节点深度=0其它节点深度=父节点深度+101233/13/20233人工智能讲义一些基本概念(续1)路径设一节点序列为(n0,n1,nk),对于i=1,k,若节点ni-1具有一个后继节点ni,则该序列称为从n0到nk的路径。路径的耗散值一条路径的耗散值等于连接这条路径各节点间所有耗散值的总和。用C(ni,nj)表示从ni到nj的路径的耗散值。3/13/20234人工智能讲义一些基本概念(续1)扩展一个节点生成出
2、该节点的所有后继节点,并给出它们之间的耗散值。这一过程称为“扩展一个节点”。3/13/20235人工智能讲义一般的图搜索算法(GRAPHSEARCH)1,G=G0(G0=s),OPEN=(s);2,CLOSED=();3,LOOP:IF OPEN=()EXIT(FAIL);4,n=FIRST(OPEN),REMOVE(n,OPEN),ADD(n,CLOSED);5,IF GOAL(n)EXIT(SUCCESS);6,EXPAND(n)mi,G=ADD(mi,G);3/13/20236人工智能讲义一般的图搜索算法(续)7,标记和修改指针:ADD(mj,OPEN),并标记mj到n的指针;计算是否要
3、修改mk、ml到n的指针;计算是否要修改ml到其后继节点的指针;8,对OPEN中的节点按某种原则重新排序;9,GO LOOP;3/13/20237人工智能讲义深度优先搜索在深度优先搜索中,首先扩展最新产生的(最深的)节点,深度 相等的节点可以任意排列。“最晚产生的节点最先扩展”3/13/20238人工智能讲义深度优先搜索算法1,G=G0(G0=s),OPEN=(s),CLOSED=();2,LOOP:IF OPEN=()EXIT(FAIL);3,n=FIRST(OPEN);4,IF GOAL(n)EXIT(SUCCESS);5,REMOVE(n,OPEN),ADD(n,CLOSED);6,IF
4、 DEPTH(n)Dm GO LOOP;7,EXPAND(n)mi,G=ADD(mi,G);8,IF 目标在目标在mi中中 THEN EXIT(SUCCESS);9,ADD(mj,OPEN),并标记并标记mj到到n的指针的指针;10,GO LOOP;3/13/20239人工智能讲义2 31 8 47 6 5 2 31 8 47 6 52 8 31 47 6 52 31 8 47 6 52 8 31 47 6 52 8 31 6 47 52 8 3 1 47 6 52 8 31 6 47 52 8 31 6 4 7 52 8 37 1 4 6 5 8 32 1 47 6 52 81 4 37 6
5、 52 8 31 4 57 6 1 2 37 8 4 6 51 2 38 47 6 52 8 3 6 41 7 52 8 31 67 5 48 32 1 47 6 52 8 37 1 46 52 81 4 37 6 52 8 31 4 57 6123456789abcd1 2 3 8 47 6 5目标3/13/202310人工智能讲义深度优先搜索的性质一般不能保证找到最优解当深度限制不合理时,可能找不到解,可以将算法改为可变深度限制最坏情况时,搜索空间等同于穷举与回溯法的差别:图搜索是一个通用的与问题无关的方法3/13/202311人工智能讲义宽度优先搜索如果搜索是以接近起始节点的程度依次扩展
6、节点的,那么这种搜索就叫做宽度优先搜索。这种搜索使逐层进行的,在对下一层的任意节点进行搜索之前,必须搜索完本层的所有节点。“先产生的节点先扩展”3/13/202312人工智能讲义宽度优先搜索算法1,G=G0(G0=s),OPEN=(s),CLOSED=();2,LOOP:IF OPEN=()EXIT(FAIL);3,n=FIRST(OPEN);4,IF GOAL(n)EXIT(SUCCESS);5,REMOVE(n,OPEN),ADD(n,CLOSED);6,EXPAND(n)mi,G=ADD(mi,G);7,IF 目标在目标在mi中中 THEN EXIT(SUCCESS);8,ADD(OPE
7、N,mj),并标记并标记mj到到n的指针的指针;9,GO LOOP;3/13/202313人工智能讲义2 31 8 47 6 5 2 31 8 47 6 52 8 31 47 6 52 31 8 47 6 52 8 31 47 6 52 8 31 6 47 52 8 3 1 47 6 52 8 31 6 47 52 8 31 6 4 7 52 8 37 1 4 6 5 8 32 1 47 6 52 81 4 37 6 52 8 31 4 57 6 1 2 37 8 4 6 51 2 38 47 6 51256731 2 3 8 47 6 5目标82 3 41 8 7 6 543/13/2023
8、14人工智能讲义宽度优先搜索的性质当问题有解时,一定能找到解当问题为单位耗散值,且问题有解时,一定能找到最优解方法与问题无关,具有通用性效率较低属于图搜索方法3/13/202315人工智能讲义等代价搜索宽度优先搜索可被推广用来解决寻找从起始节点到目标节点具有最小代价路径问题,这种推广了的宽度优先搜索算法叫做等代等代价搜索算法价搜索算法。3/13/202316人工智能讲义等代价搜索算法算法1,G=G0(G0=s),OPEN=(s),CLOSED=(),g(s)=0;2,LOOP:IF OPEN=()EXIT(FAIL);3,从从OPEN表中选择一个节点表中选择一个节点i,使其使其g(i)为最小。
9、如果有几个节点都合格,为最小。如果有几个节点都合格,那么就要选择一个目标节点作为那么就要选择一个目标节点作为i(要是有目标节点的话要是有目标节点的话);否则,就从;否则,就从中选一个作为节点中选一个作为节点I;REMOVE(i,OPEN),ADD(i,CLOSED);4,IF GOAL(i)EXIT(SUCCESS);5,EXPAND(i)j,G=ADD(j,G);6,对每个后继节点对每个后继节点j,计算计算g(j)=g(i)+c(i,j)且且ADD(OPEN,j),并标记并标记j到到i的指的指针针;7,GO LOOP;3/13/202317人工智能讲义启发式图搜索利用知识来引导搜索,达到减少
10、搜索范围,降低问题复杂度的目的。启发信息的强度强:降低搜索工作量,但可能导致找不到最 优解弱:一般导致工作量加大,极限情况下变为 盲目搜索,但可能可以找到最优解3/13/202318人工智能讲义希望:引入启发知识,在保证找到最佳解的情况下,尽可能减少搜索范围,提高搜索效率。3/13/202319人工智能讲义基本思想定义一个评价函数f,对当前的搜索状态进行评估,找出一个最有希望的节点来扩展。3/13/202320人工智能讲义1,启发式搜索算法A(A算法)评价函数的格式:f(n)=g(n)+h(n)f(n):评价函数h(n):启发函数3/13/202321人工智能讲义符号的意义g*(n):从s到n
11、的最短路径的耗散值h*(n):从n到g的最短路径的耗散值f*(n)=g*(n)+h*(n):从s经过n到g的最短路径的耗散值g(n)、h(n)、f(n)分别是g*(n)、h*(n)、f*(n)的估计值3/13/202322人工智能讲义A算法1,OPEN=(s),f(s)=g(s)+h(s);2,LOOP:IF OPEN=()EXIT(FAIL);3,n=FIRST(OPEN);4,IF GOAL(n)EXIT(SUCCESS);5,REMOVE(n,OPEN),ADD(n,CLOSED);6,EXPAND(n)Mi,计算f(n,mi)=g(n,mi)+h(mi);3/13/202323人工智能
12、讲义A算法(续)ADD(mj,OPEN),标记mj到n的指针;IF f(n,mk)f(mk)f(mk)=f(n,mk),标记mk到n的指针;IF f(n,ml)f*(s)。3/13/202331人工智能讲义A*算法的性质(续2)引理2.2:A*结束前,OPEN表中必存在f(n)f*(s)。3/13/202332人工智能讲义A*算法的性质(续3)定理2:对无限图,若从初始节点s到目标节点t有路径存在,则A*一定成功结束。3/13/202333人工智能讲义A*算法的性质(续4)推论2.1:OPEN表上任一具有f(n)h1(n),则在具有一条从s到t的路径的隐含图上,搜索结束时,由A2所扩展的每一个
13、节点,也必定由A1所扩展,即A1扩展的节点数至少和A2一样多。简写:如果h2(n)h1(n),则A1扩展的节点数A2扩展的节点数3/13/202337人工智能讲义A*算法的改进问题的提出:因A算法第6步对ml类节点可能要重新放回到OPEN表中,因此可能会导致多次重复扩展同一个节点,导致搜索效率下降。3/13/202338人工智能讲义s(10)A(1)B(5)C(8)G 目标631118一个例子:一个例子:OPEN表CLOSED表s(10)s(10)A(7)B(8)C(9)A(7)s(10)B(8)C(9)G(14)A(5)C(9)G(14)C(9)G(12)B(7)G(12)A(4)G(12)
14、G(11)A(7)B(8)s(10)A(5)B(8)s(10)C(9)A(5)B(8)s(10)A(5)B(7)C(9)s(10)A(4)B(7)C(9)s(10)3/13/202339人工智能讲义出现多次扩展节点的原因在前面的扩展中,并没有找到从初始节点到当前节点的最短路径,如节点A。3/13/202340人工智能讲义解决的途径对h加以限制能否对h增加适当的限制,使得第一次扩展一个节点时,就找到了从s到该节点的最短路径。对算法加以改进能否对算法加以改进,避免或减少节点的多次扩展。3/13/202341人工智能讲义改进的条件可采纳性不变不多扩展节点不增加算法的复杂性3/13/202342人工智
15、能讲义对h加以限制定义:一个启发函数h,如果对所有节点ni和nj,其中nj是ni的子节点,满足h(ni)-h(nj)c(ni,nj)h(t)=0则称h是单调的。h(ni)ninjh(nj)c(ni,nj)3/13/202343人工智能讲义h单调的性质定理5:若h(n)是单调的,则A*扩展了节点n之后,就已经找到了到达节点n的最佳路径。即:当A*选n扩展时,有g(n)=g*(n)。3/13/202344人工智能讲义h单调的性质(续)定理6:若h(n)是单调的,则由A*所扩展的节点序列其f值是非递减的。3/13/202345人工智能讲义h单调的例子8数码问题:h为“不在位”的将牌数 1h(ni)-
16、h(nj)=0(nj为ni的后继节点)-1 h(t)=0c(ni,nj)=1 满足单调的条件。3/13/202346人工智能讲义对算法加以改进一些结论:OPEN表上任一具有f(n)f*(s)的节点定会被扩展。A*选作扩展的任一节点,定有f(n)f*(s)。3/13/202347人工智能讲义改进的出发点OPEN=()f*(s)f值小于f*(s)的节点f值大于等于f*(s)的节点fm:到目前为止已扩展节点的最大f值,用fm代替f*(s)3/13/202348人工智能讲义修正过程A1,OPEN=(s),f(s)=g(s)+h(s),fm=0;2,LOOP:IF OPEN=()EXIT(FAIL);3
17、,NEST=ni|f(ni)5)n2(4)n3(4)n0(3)n0(3-4)3/13/202362人工智能讲义n0n1n2n3n4n5n6n7n8n4(1)n1(5)n2(4)n3(4)n6(2)n7(0)n8(0)n0(4)n5(1)n5(1-2)3/13/202363人工智能讲义n0n1n2n3n4n5n6n7n8红色代价红色代价:5蓝色蓝色代价代价:6n0(4)n4(1)n5(1-2)n1(5)n2(4)n3(4)n6(2)n7(0)n8(0)n0(4-5)3/13/202364人工智能讲义n0n1n2n3n4n5n6n7n8n0(5)n4(1)n5(2)n1(5)n2(4)n3(4)n
18、6(2)n7(0)n8(0)3/13/202365人工智能讲义目标目标初始节点n0n1n2n3n4n5n6n7n8n0(5)n4(1)n5(2)n1(5)n2(4)n3(4)n6(2)n7(0)n8(0)3/13/202366人工智能讲义目标目标初始节点n0n1n2n3n4n5n6n7n8初始节点可解初始节点可解n0(5)n4(1)n5(2)n1(5)n2(4)n3(4)n6(2)n7(0)n8(0)3/13/202367人工智能讲义归结原理概述命题逻辑的归结法子句形Herbrand定理归结原理归结过程的策略控制3/13/202368人工智能讲义归结原理概述命题逻辑的归结法子句形Herbran
19、d定理归结原理归结过程的策略控制3/13/202369人工智能讲义概述归结原理由J.A.Robinson由1965年提出。与演绎法完全不同,新的逻辑演算算法。一阶逻辑中,至今为止的最有效的半可判定的算法。即,一阶逻辑中任意恒真公式,使用归结原理,总可以在有限步内给以判定。语义网络、框架表示、产生式规则等等都是以推理方法为前提的。即,有了规则已知条件,顺藤摸瓜找到结果。而归结方法是自动推理、自动推导证明用的。(“数学定理机器证明”)本课程只讨论一阶谓词逻辑描述下的归结推理方法,不涉及高阶谓词逻辑问题。3/13/202370人工智能讲义归结原理概述命题逻辑的归结法子句形Herbrand定理归结原理
20、归结过程的策略控制3/13/202371人工智能讲义归结原理概述命题逻辑的归结法子句形Herbrand定理归结原理归结过程的策略控制3/13/202372人工智能讲义命题逻辑的归结法基本单元:简单命题(陈述句)例:命题:A1、A2、A3 和 B求证:A1A2A3成立,则B成立,即:A1A2A3 B反证法:证明A1A2A3B 是矛盾式 (永假式)3/13/202373人工智能讲义命题逻辑的归结法建立子句集合取范式:命题、命题和的与,如:P(PQ)(PQ)子句集S:合取范式形式下的子命题(元素)的集合例:命题公式:P(PQ)(PQ)子句集 S:S=P,PQ,PQ 3/13/202374人工智能讲义
21、命题逻辑的归结法归结式消除互补对,求新子句得到归结式。如子句:C1=C1L,C2=C2 归结式:R(C1,C2)=C1 C2 注意:C1C2 R(C1,C2),反之不一定成立。假言推理:由合适公式W1和W1 W2产生合适公式W2,如何用归结法证明?3/13/202375人工智能讲义命题逻辑的归结法归结过程 对结论作否定,并加入前提中将命题写成合取范式求出子句集对子句集使用归结推理规则归结式作为新子句参加归结归结式为空子句,S是不可满足的(矛盾),原命题成立。(证明完毕)谓词的归结:除了有量词和函数以外,其余和命题归结过程一样。3/13/202376人工智能讲义命题逻辑的归结法命题逻辑的归结法例
22、 证明先将化为合取范式 建立子句集 S=对S做归结 P NIL3/13/202377人工智能讲义归结原理概述命题逻辑的归结法子句形Herbrand定理归结原理归结过程的策略控制3/13/202378人工智能讲义归结原理概述命题逻辑的归结法子句形Herbrand定理归结原理归结过程的策略控制3/13/202379人工智能讲义子句形 引用Herbrand定理,以说明归结原理的意义及一个原理形成的根基与背景SKOLEM标准形前束范式:把所有的量词都提到前面去,然后消掉所有量词。定义:说公式A是一个前束范式,如果A中的一切量词都位于该公式的最左边(不含否定词),且这些量词的辖域都延伸到公式的末端。即(
23、Q1x1)(Qnxn)M(x1,xn),其中Qixi为存在量词或全称量词,M(x1,xn)为合取范式(由一些子句的合取组成)。3/13/202380人工智能讲义子句形(Skolem 标准形)量词消去原则:消去存在量词“”,略去全程量词“”。注意:左边有全称量词的存在量词,消去时该变量改写成为全称量词的函数(Skloem函数);如没有,改写成为常量。例子:见人工智能及其应用P753/13/202381人工智能讲义子句形(Skolem 标准形)定理:谓词逻辑的任意公式都可以化为与之等价的前束范式,但其前束范式不唯一。SKOLEM标准形定义:消去量词后的谓词公式。注意:谓词公式G的SKOLEM标准形
24、同G并不等值。3/13/202382人工智能讲义子句形(Skolem 标准形)例:G=(x)(y)(z)(u)P(x,y,z,u)Skolem 标准形为:(y)(z)P(a,y,z,f(y,z)其中,x=a(常量),u=f(y.z)3/13/202383人工智能讲义子句形子句与子句集文字:不含任何连接词的谓词公式。子句:一些文字的析取(谓词的和)。子句集S的求取:G SKOLEM标准形 消去存在变量 以“,”取代“”,并表示为集合形式。3/13/202384人工智能讲义子句形 G是不可满足的 S是不可满足的G与S不等价,但在不可满足的意义下是一致的。定理:若G是给定的公式,而S是相应的子句集,
25、则G是不可满足的 S是不可满足的。注意:G真不一定S真,而S真必有G真。即:S=G3/13/202385人工智能讲义子句形G=G1 G2 G3 Gn 的子句形G的子句集可以分解成几个单独处理。有 SG=S1 U S2 U S3 U U Sn则SG 与 S1 U S2 U S3 U U Sn在不可满足的意义上是一致的。即SG 不可满足 S1 U S2 U S3 U U Sn不可满足3/13/202386人工智能讲义归结原理概述命题逻辑的归结法子句形Herbrand定理归结原理归结过程的策略控制3/13/202387人工智能讲义归结原理概述命题逻辑的归结法子句形Herbrand定理归结原理归结过程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能 一般 搜索 算法 原理 15333359
限制150内