欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > PPTX文档下载
    分享到微信 分享到微博 分享到QQ空间

    人工智能搜索问题102.pptx

    • 资源ID:15120137       资源大小:444.93KB        全文页数:102页
    • 资源格式: PPTX        下载积分:40金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要40金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    人工智能搜索问题102.pptx

    1、第一章 搜索问题,内容:状态空间的搜索问题。搜索方式:盲目搜索启发式搜索关键问题:如何利用知识,尽可能有效地找到问题的解(最佳解)。,1,搜索问题(续1),S0,Sg,2,搜索问题(续2),讨论的问题:有哪些常用的搜索算法。问题有解时能否找到解。找到的解是最佳的吗?什么情况下可以找到最佳解?求解的效率如何。,3,1.1 回溯策略,例:皇后问题,4,(),5,(),Q,(1,1),6,(),Q,Q,(1,1),(1,1)(2,3),7,(),Q,(1,1),(1,1)(2,3),8,(),Q,Q,(1,1),(1,1)(2,3),(1,1)(2,4),9,(),Q,Q,(1,1),(1,1)(2

    2、,3),(1,1)(2,4),Q,(1,1)(2,4)(3.2),10,(),Q,Q,(1,1),(1,1)(2,3),(1,1)(2,4),(1,1)(2,4)(3.2),11,(),Q,(1,1),(1,1)(2,3),(1,1)(2,4),(1,1)(2,4)(3.2),12,(),(1,1),(1,1)(2,3),(1,1)(2,4),(1,1)(2,4)(3.2),13,(),(1,1),(1,1)(2,3),(1,1)(2,4),(1,1)(2,4)(3.2),Q,(1,2),14,(),(1,1),(1,1)(2,3),(1,1)(2,4),(1,1)(2,4)(3.2),Q,(

    3、1,2),Q,(1,2)(2,4),15,(),(1,1),(1,1)(2,3),(1,1)(2,4),(1,1)(2,4)(3.2),Q,(1,2),Q,(1,2)(2,4),Q,(1,2)(2,4)(3,1),16,(),(1,1),(1,1)(2,3),(1,1)(2,4),(1,1)(2,4)(3.2),Q,(1,2),Q,(1,2)(2,4),Q,(1,2)(2,4)(3,1),Q,(1,2)(2,4)(3,1)(4,3),17,递归的思想,18,递归的思想(续),当前状态,目标状态g,19,一个递归的例子,int ListLenght(LIST*pList)if(pList=NUL

    4、L)return 0;else return ListLength(pList-next)+1;,20,回溯搜索算法,BACKTRACK(DATA)DATA:当前状态。返回值:从当前状态到目标状态的路径(以规则表的形式表示)或FAIL。,21,回溯搜索算法,递归过程BACKTRACK(DATA)1,IF TERM(DATA)RETURN NIL;2,IF DEADEND(DATA)RETURN FAIL;3,RULES:=APPRULES(DATA);4,LOOP:IF NULL(RULES)RETURN FAIL;5,R:=FIRST(RULES);6,RULES:=TAIL(RULES);

    5、7,RDATA:=GEN(R,DATA);8,PATH:=BACKTRACK(RDATA);9,IF PATH=FAIL GO LOOP;10,RETURN CONS(R,PATH);,22,存在问题及解决办法,解决办法:对搜索深度加以限制记录从初始状态到当前状态的路径,当前状态,问题:深度问题,死循环问题,23,回溯搜索算法1,BACKTRACK1(DATALIST)DATALIST:从初始到当前的状态表(逆向)返回值:从当前状态到目标状态的路径(以规则表的形式表示)或FAIL。,24,回溯搜索算法1,1,DATA:=FIRST(DATALIST)2,IF MENBER(DATA,TAIL(

    6、DATALIST)RETURN FAIL;3,IF TERM(DATA)RETURN NIL;4,IF DEADEND(DATA)RETURN FAIL;5,IF LENGTH(DATALIST)BOUND RETURN FAIL;6,RULES:=APPRULES(DATA);7,LOOP:IF NULL(RULES)RETURN FAIL;8,R:=FIRST(RULES);,25,回溯搜索算法1(续),9,RULES:=TAIL(RULES);10,RDATA:=GEN(R,DATA);11,RDATALIST:=CONS(RDATA,DATALIST);12,PATH:=BACKTRC

    7、K1(RDATALIST)13,IF PATH=FAIL GO LOOP;14,RETURN CONS(R,PATH);,26,一些深入的问题,失败原因分析、多步回溯,27,一些深入问题(续),回溯搜索中知识的利用基本思想(以皇后问题为例):尽可能选取划去对角线上位置数最少的。,28,1.2 图搜索策略,问题的引出回溯搜索:只保留从初始状态到当前状态的一条路径。图搜索:保留所有已经搜索过的路径。,29,一些基本概念,节点深度:根节点深度=0其它节点深度=父节点深度+1,0,1,2,3,30,一些基本概念(续1),路径设一节点序列为(n0,n1,nk),对于i=1,k,若节点ni-1具有一个后继

    8、节点ni,则该序列称为从n0到nk的路径。路径的耗散值一条路径的耗散值等于连接这条路径各节点间所有耗散值的总和。用C(ni,nj)表示从ni到nj的路径的耗散值。,31,一些基本概念(续1),扩展一个节点生成出该节点的所有后继节点,并给出它们之间的耗散值。这一过程称为“扩展一个节点”。,32,一般的图搜索算法,1,G=G0(G0=s),OPEN:=(s);2,CLOSED:=();3,LOOP:IF OPEN=()THEN EXIT(FAIL);4,n:=FIRST(OPEN),REMOVE(n,OPEN),ADD(n,CLOSED);5,IF GOAL(n)THEN EXIT(SUCCESS

    9、);6,EXPAND(n)mi,G:=ADD(mi,G);,33,一般的图搜索算法(续),7,标记和修改指针:ADD(mj,OPEN),并标记mj到n的指针;计算是否要修改mk、ml到n的指针;计算是否要修改ml到其后继节点的指针;8,对OPEN中的节点按某种原则重新排序;9,GO LOOP;,34,节点类型说明,.,.,.,.,.,mj,mk,ml,35,修改指针举例,1,2,3,4,5,6,s,36,修改指针举例(续1),1,2,3,4,5,6,s,37,1,2,3,4,5,6,修改指针举例(续2),s,38,1,2,3,4,5,6,修改指针举例(续3),s,39,1.3 无信息图搜索过程

    10、,深度优先搜索宽度优先搜索,40,深度优先搜索,1,G:=G0(G0=s),OPEN:=(s),CLOSED:=();2,LOOP:IF OPEN=()THEN EXIT(FAIL);3,n:=FIRST(OPEN);4,IF GOAL(n)THEN EXIT(SUCCESS);5,REMOVE(n,OPEN),ADD(n,CLOSED);6,IF 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;,41,2 31 8

    11、 47 6 5,2 8 3 6 41 7 5,2 8 31 67 5 4,8 32 1 47 6 5,2 8 37 1 46 5,2 81 4 37 6 5,2 8 31 4 57 6,1,2,3,4,5,6,7,8,9,a,b,c,d,1 2 3 8 47 6 5,目标,42,深度优先搜索的性质,一般不能保证找到最优解当深度限制不合理时,可能找不到解,可以将算法改为可变深度限制最坏情况时,搜索空间等同于穷举与回溯法的差别:图搜索是一个通用的与问题无关的方法,43,宽度优先搜索,1,G:=G0(G0=s),OPEN:=(s),CLOSED:=();2,LOOP:IF OPEN=()THEN E

    12、XIT(FAIL);3,n:=FIRST(OPEN);4,IF GOAL(n)THEN 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(OPEN,mj),并标记mj到n的指针;9,GO LOOP;,44,2 31 8 47 6 5,1,2,5,6,7,3,1 2 3 8 47 6 5,目标,8,2 3 41 8 7 6 5,4,45,宽度优先搜索的性质,当问题有解时,一定能找到解当问题为单位耗散值,且问题有解时,一定能找到最优

    13、解方法与问题无关,具有通用性效率较低属于图搜索方法,46,渐进式深度优先搜索方法,目的解决宽度优先方法的空间问题和回溯方法不能找到最优解的问题。思想首先给回溯法一个比较小的深度限制,然后逐渐增加深度限制,直到找到解或找遍所以分支为止。,47,1.4 启发式图搜索,利用知识来引导搜索,达到减少搜索范围,降低问题复杂度的目的。启发信息的强度强:降低搜索工作量,但可能导致找不到最 优解弱:一般导致工作量加大,极限情况下变为 盲目搜索,但可能可以找到最优解,48,希望:,引入启发知识,在保证找到最佳解的情况下,尽可能减少搜索范围,提高搜索效率。,49,基本思想,定义一个评价函数f,对当前的搜索状态进行

    14、评估,找出一个最有希望的节点来扩展。,50,1,启发式搜索算法A(A算法),评价函数的格式:f(n)=g(n)+h(n)f(n):评价函数h(n):启发函数,51,符号的意义,g*(n):从s到n的最短路径的耗散值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)的估计值,52,A算法,1,OPEN:=(s),f(s):=g(s)+h(s);2,LOOP:IF OPEN=()THEN EXIT(FAIL);3,n:=FIRST(OPEN);4,IF GOAL(n)THEN

    15、 EXIT(SUCCESS);5,REMOVE(n,OPEN),ADD(n,CLOSED);6,EXPAND(n)mi,计算f(n,mi):=g(n,mi)+h(mi);,53,A算法(续),ADD(mj,OPEN),标记mj到n的指针;IF f(n,mk)f(mk)THEN f(mk):=f(n,mk),标记mk到n的指针;IF f(n,ml)f(ml,)THEN f(ml):=f(n,ml),标记ml到n的指针,ADD(ml,OPEN);7,OPEN中的节点按f值从小到大排序;8,GO LOOP;,54,.,.,.,.,.,mj,mk,ml,n,a,b,55,Closed表,Open表,5

    16、6,一个A算法的例子,定义评价函数:f(n)=g(n)+h(n)g(n)为从初始节点到当前节点的耗散值h(n)为当前节点“不在位”的将牌数,2 8 31 6 47 5,1 2 38 47 6 5,57,h计算举例,h(n)=4,2 8 31 6 47 5,1 2 3,45,7 6,8,58,2 8 31 6 47 5,1 2 3 8 47 6 5,s(4),A(6),B(4),C(6),D(5),E(5),F(6),G(6),H(7),I(5),J(7),K(5),L(5),M(7),目标,1,2,3,4,5,6,59,2,最佳图搜索算法A*(A*算法),在A算法中,如果满足条件:h(n)h*

    17、(n)则A算法称为A*算法。,60,A*条件举例,8数码问题h1(n)=“不在位”的将牌数h2(n)=将牌“不在位”的距离和,61,A*算法的性质,A*算法的假设 设ni、nj是任意两个节点,有:C(ni,nj)其中为大于0的常数,几个等式 f*(s)=f*(t)=h*(s)=g*(t)=f*(n)其中s是初始节点,t是目标节点,n是s到t的最佳路径上的节点。,62,A*算法的性质(续1),定理1.1:对有限图,如果从初始节点s到目标节点t有路径存在,则算法A一定成功结束。,63,A*算法的性质(续2),引理1.1:对无限图,若有从初始节点s到目标节点t的路径,则A*不结束时,在OPEN表中即

    18、使最小的一个f值也将增到任意大,或有f(n)f*(s)。,64,A*算法的性质(续3),引理1.2:A*结束前,OPEN表中必存在f(n)f*(s)。,存在一个节点n,n在最佳路径上。f(n)=g(n)+h(n)=g*(n)+h(n)g*(n)+h*(n)=f*(n)=f*(s),65,A*算法的性质(续3),定理1.2:对无限图,若从初始节点s到目标节点t有路径存在,则A*一定成功结束。,引理1.1:A*如果不结束,则OPEN中所有的n有f(n)f*(s)引理1.2:在A*结束前,必存在节点n,使得 f(n)f*(s)所以,如果A*不结束,将导致矛盾。,66,A*算法的性质(续4),推论1.

    19、1:OPEN表上任一具有f(n)f*(s)的节点n,最终都将被A*选作扩展的节点。,由定理1.2,知A*一定结束,由A*的结束条件,OPEN表中f(t)最小时才结束。而 f(t)f*(t)f*(s)所以f(n)f*(s)的n,均被扩展。得证。,67,A*算法的性质(续5),定理1.3(可采纳性定理):若存在从初始节点s到目标节点t有路径,则A*必能找到最佳解结束。,68,可采纳性的证明,由定理1.1、1.2知A*一定找到一条路径结束设找到的路径s t不是最佳的(t为目标)则:f(t)=g(t)f*(s)由引理1.2知结束前OPEN中存在f(n)f*(s)的节点n,所以 f(n)f*(s)f(t

    20、)因此A*应选择n扩展,而不是t。与假设A*选择t结束矛盾。得证。注意:A*的结束条件,69,A*算法的性质(续6),推论1.2:A*选作扩展的任一节点n,有f(n)f*(s)。,由引理2.2知在A*结束前,OPEN中存在节点n,f(n)f*(s)设此时A*选择n扩展。如果nn,则f(n)f*(s),得证。如果n n,由于A*选择n扩展,而不是n,所以有f(n)f(n)f*(s)。得证。,70,A*算法的性质(续7),定理1.4:设对同一个问题定义了两个A*算法A1和A2,若A2比A1有较多的启发信息,即对所有非目标节点有h2(n)h1(n),则在具有一条从s到t的路径的隐含图上,搜索结束时,

    21、由A2所扩展的每一个节点,也必定由A1所扩展,即A1扩展的节点数至少和A2一样多。简写:如果h2(n)h1(n)(目标节点除外),则A1扩展的节点数A2扩展的节点数,71,A*算法的性质(续7),注意:在定理1.4中,评价指标是“扩展的节点数”,也就是说,同一个节点无论被扩展多少次,都只计算一次。,72,定理1.4的证明,使用数学归纳法,对节点的深度进行归纳(1)当d(n)0时,即只有一个节点,显然定理成立。(2)设d(n)k时定理成立。(归纳假设)(3)当d(n)=k+1时,用反证法。设存在一个深度为k1的节点n,被A2扩展,但没有被A1扩展。而由假设,A1扩展了n的父节点,即n已经被生成了

    22、。因此当A1结束时,n将被保留在OPEN中。,73,定理1.4的证明(续1),所以有:f1(n)f*(s)即:g1(n)+h1(n)f*(s)所以:h1(n)f*(s)-g1(n)另一方面,由于A2扩展了n,有f2(n)f*(s)即:h2(n)f*(s)g2(n)(A)由于d(n)=k时,A2扩展的节点A1一定扩展,有 g1(n)g2(n)(因为A2的路A1均走到了)所以:h1(n)f*(s)-g1(n)f*(s)g2(n)(B)比较A、B两式,有 h1(n)h2(n),与定理条件矛盾。故定理得证。,74,对h的评价方法,平均分叉树设共扩展了d层节点,共搜索了N个节点,则:其中,b*称为平均分

    23、叉树。b*越小,说明h效果越好。实验表明,b*是一个比较稳定的常数,同一问题基本不随问题规模变化。,75,对h的评价举例,例:8数码问题,随机产生若干初始状态。使用h1:d=14,N=539,b*=1.44;d=20,N=7276,b*=1.47;使用h2:d=14,N=113,b*=1.23;d=20,N=676,b*=1.27,76,A*的复杂性,一般来说,A*的算法复杂性是指数型的,可以证明,当且仅当以下条件成立时:abs(h(n)-h*(n)O(log(h*(n)A*的算法复杂性才是非指数型的,但是通常情况下,h与h*的差别至少是和离目标的距离成正比的。,77,3,A*算法的改进,问题

    24、的提出:因A算法第6步对ml类节点可能要重新放回到OPEN表中,因此可能会导致多次重复扩展同一个节点,导致搜索效率下降。,78,一个例子:,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),G(11),B(8)s(10),A(5)B(8)s(10),C(9)A(5)s(10),B(7)C(9)s(10),A(4)B(7)C(9)s(10),79,出现多次扩展节点的原因,在前面的扩展中,并没有找到从初始节点到当前节点的最短路径,如节点A。,80,解决的途径,对h

    25、加以限制能否对h增加适当的限制,使得第一次扩展一个节点时,就找到了从s到该节点的最短路径。对算法加以改进能否对算法加以改进,避免或减少节点的多次扩展。,81,改进的条件,可采纳性不变不多扩展节点不增加算法的复杂性,82,对h加以限制,定义:一个启发函数h,如果对所有节点ni和nj,其中nj是ni的子节点,满足h(ni)-h(nj)c(ni,nj)h(t)=0或 h(ni)c(ni,nj)+h(nj)h(t)=0 则称h是单调的。,h(ni),ni,nj,h(nj),c(ni,nj),83,h单调的性质,定理1.5:若h(n)是单调的,则A*扩展了节点n之后,就已经找到了到达节点n的最佳路径。即

    26、:当A*选n扩展时,有g(n)=g*(n)。,84,定理1.5的证明,设n是A*扩展的任一节点。当ns时,定理显然成立。下面考察n s的情况。设P(n0=s,n1,n2,nk=n)是s到n的最佳路径P中一定有节点在CLOSED中,设P中最后一个出现在CLOSED中的节点为nj,则nj+1在OPEN中。,85,定理1.5的证明(续1),由单调限制条件,对P中任意节点ni有:h(ni)C(ni,ni+1)+h(ni+1)g*(ni)+h(ni)g*(ni)+C(ni,ni+1)+h(ni+1)由于ni、ni+1在最佳路径上,所以:g*(ni+1)=g*(ni)+C(ni,ni+1)带入上式有:g*

    27、(ni)+h(ni)g*(ni+1)+h(ni+1)从i=j到i=k-1应用上不等式,有:g*(nj+1)+h(nj+1)g*(nk)+h(nk)即:f(nj+1)g*(n)+h(n)注意:(nj在CLOSED中,nj+1在OPEN中),86,定理1.5的证明(续2),重写上式:f(nj+1)g*(n)+h(n)另一方面,A*选n扩展,必有:f(n)=g(n)+h(n)f(nj+1)比较两式,有:g(n)g*(n)但已知g*(n)是最佳路径的耗散值,所以只有:g(n)=g*(n)。得证。,87,h单调的性质(续),定理1.6:若h(n)是单调的,则由A*所扩展的节点序列其f值是非递减的。即f(

    28、ni)f(nj)。,88,定理1.6的证明,由单调限制条件,有:h(ni)h(nj)C(ni,nj),=f(ni)-g(ni),=f(nj)-g(nj),f(ni)-g(ni)-f(nj)+g(nj)C(ni,nj),=g(ni)+C(ni,nj),f(ni)-g(ni)-f(nj)+g(ni)+C(ni,nj)C(ni,nj)f(ni)-f(nj)0,得证。,89,h单调的例子,8数码问题:h为“不在位”的将牌数 1h(ni)-h(nj)=0(nj为ni的后继节点)-1 h(t)=0c(ni,nj)=1 满足单调的条件。,90,对算法加以改进,一些结论:OPEN表上任以具有f(n)f*(s)

    29、的节点定会被扩展。A*选作扩展的任一节点,定有f(n)f*(s)。,91,改进的出发点,OPEN=(),f*(s),f值小于f*(s)的节点,f值大于等于f*(s)的节点,fm:到目前为止已扩展节点的最大f值,用fm代替f*(s),92,修正过程A,1,OPEN:=(s),f(s)=g(s)+h(s),fm:=0;2,LOOP:IF OPEN=()THEN EXIT(FAIL);3,NEST:=ni|f(ni)fmIF NEST()THEN n:=NEST中g最小的节点 ELSE n:=FIRST(OPEN),fm:=f(n);4,8:同过程A。,93,前面的例子:,OPEN表,CLOSED表

    30、,fm,s(0+10),s(0+10),10,A(6+1)B(3+5)C(1+8),s(0+10)C(1+8),10,A(6+1)B(2+5),s(0+10)C(1+8)B(2+5),10,A(3+1),s(0+10)C(1+8)B(2+5)A(3+1),10,G(11+0),94,h的单调化方法,如果令:f(n)=max(f(n的父节点),g(n)+h(n)则容易证明,这样处理后的h是单调的。,95,IDA*算法(Iterative Deepening A*),基本思想:回溯与A*的结合算法简介(非严格地)1,设初始值f0;2,集合SNULL;3,用回溯法求解问题,如果节点n的f值大于f0,

    31、则将该节点放入集合S中,并回溯;4,如果在3中找到了解,则结束;5,如果3以失败结束,则f0S中节点的最小f值;6,返回到2。,96,知识的灵活应用,例:如何转动,使得每个扇区数字和为12。,1,3,5,5,1,4,4,1,3,3,2,5,2,3,1,2,3,1,2,2,5,5,2,3,4,2,5,4,3,4,3,3,分析:阴影部分数字和:48 直径部分数字和:24 转45改变阴影部分 转90改变直径部分 但不改变阴影部分 转180改变扇区部分 但不改变阴影部分 也不改变直径部分,97,4,其他的搜索算法,爬山法(局部搜索算法),98,其他的搜索算法(续1),随机搜索算法动态规划算法如果对于任何n,当h(n)=0时,A*算法就成为了动态规划算法。,99,动态规划,s,t,第一阶段,第二阶段,第三阶段,第四阶段,第五阶段,100,5,搜索算法实用举例,汉字识别后处理一个例子我钱线载哦栽哉裁劣绥优仍们仿伦奶砧犯扔妨要耍密穷安壁驻努窑垂扳报叔嵌奴振技寂叙蔽奋夯杏蚕香脊秀吞吝番精猜指洁括治捐活冶桔种神衬祥科钟拌样拎补,101,汉字识别后处理,二元语法时:,为常量,用识别信度代替,102,


    注意事项

    本文(人工智能搜索问题102.pptx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开