欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    搜索策略人工智能原理及其应.pptx

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

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

    搜索策略人工智能原理及其应.pptx

    14.1搜索的基本概念搜索的含义状态空间法问题归约法第1页/共88页2搜索的含义适用情况:不良结构或非结构化问题;难以获得求解所需的全部信息;更没有现成的算法可供求解使用。概念:依靠经验,利用已有知识,根据问题的实际情况,不断寻找可利用知识,从而构造一条代价最小的推理路线,使问题得以解决的过程称为搜索搜索的类型按是否使用启发式信息:盲目搜索:按预定的控制策略进行搜索,在搜索过程中获得的中间信息并不改变控制策略。启发式搜索:在搜索中加入了与问题有关的启发性信息,用于指导搜索朝着最有希望的方向前进,加速问题的求解过程并找到最优解。按问题的表示方式:状态空间搜索:用状态空间法来求解问题所进行的搜索与或树搜索:用问题归约法来求解问题时所进行的搜索第2页/共88页3状态空间法1.状态空间表示方法状态(State):是表示问题求解过程中每一步问题状况的数据结构,它可形式地表示为:Sk=Sk0,Sk1,当对每一个分量都给以确定的值时,就得到了一个具体的状态。操作(Operator)也称为算符,它是把问题从一种状态变换为另一种状态的手段。操作可以是一个机械步骤,一个运算,一条规则或一个过程。操作可理解为状态集合上的一个函数,它描述了状态之间的关系。状态空间(Statespace)用来描述一个问题的全部状态以及这些状态之间的相互关系。常用一个三元组表示为:(S,F,G)其中,S为问题的所有初始状态的集合;F为操作的集合;G为目标状态的集合。状态空间也可用一个赋值的有向图来表示,该有向图称为状态空间图。在状态空间图中,节点表示问题的状态,有向边表示操作。第3页/共88页4状态空间法求解问题的基本过程:首先为问题选择适当的“状态”及“操作”的形式化描述方法;然后从某个初始状态出发,每次使用一个“操作”,递增地建立起操作序列,直到达到目标状态为止;此时,由初始状态到目标状态所使用的算符序列就是该问题的一个解。状态空间法2.状态空间问题求解第4页/共88页5例4.1二阶梵塔问题。设有三根钢针,它们的编号分别是1号、2号和3号。在初始情况下,1号钢针上穿有A、B两个金片,A比B小,A位于B的上面。要求把这两个金片全部移到另一根钢针上,而且规定每次只能移动一个金片,任何时刻都不能使大的位于小的上面。解:设用Sk=Sk0,Sk1表示问题的状态,其中,Sk0表示金片A所在的钢针号,Sk1表示金片B所在的钢针号。全部可能的问题状态共有以下9种:S0=(1,1)S1=(1,2)S2=(1,3)S3=(2,1)S4=(2,2)S5=(2,3)S6=(3,1)S7=(3,2)S8=(3,3)状态空间法3.状态空间的例子第5页/共88页6ABABAB123123123二阶梵塔问题的初始状态和目标状态问题的初始状态集合为S=S0 目标状态集合为G=S4,S5初始状态S0和目标状态S4、S8如图所示 S0=(1,1)S4=(2,2)S8=(3,3)状态空间法3.状态空间的例子第6页/共88页7 操作分别用A(i,j)和B(i,j)表示 A(i,j)表示把金片A从第i号钢针移到j号钢针上;B(i,j)表示把金片B从第i号钢针一到第j号钢针上。共有12种操作,它们分别是:A(1,2)A(1,3)A(2,1)A(2,3)A(3,1)A(3,2)B(1,2)B(1,3)B(2,1)B(2,3)B(3,1)B(3,2)根据上述9种可能的状态和12种操作,可构成二阶梵塔问题的状态空间图,如下图所示。状态空间法3.状态空间的例子第7页/共88页8(3,3)(1,3)(1,2)(2,2)二阶梵塔的状态空间图从初始节点(1,1)到目标节点(2,2)及(3,3)的任何一条路径都是问题的一个解。其中,最短的路径长度是3,它由3个操作组成。例如,从(1,1)开始,通过使用操作A(1,3)、B(1,2)及A(3,2),可到达(3,3)。A(1,2)B(1,3)A(2,3)(1,1)(3,1)(3,2)(2,1)(2,3)A(1,3)B(1,2)A(3,2)第8页/共88页9例4.2修道士(Missionaries)和野人(Cannibals)问题(简称M-C问题)。设在河的一岸有三个野人、三个修道士和一条船,修道士想用这条船把所有的人运到河对岸,但受以下条件的约束:一是修道士和野人都会划船,但每次船上至多可载两个人;二是在河的任一岸,如果野人数目超过修道士数,修道士会被野人吃掉。如果野人会服从任何一次过河安排,请规划一个确保修道士和野人都能过河,且没有修道士被野人吃掉的安全过河计划。状态空间法3.状态空间的例子第9页/共88页10 解:首先选取描述问题状态的方法。在这个问题中,需要考虑两岸的修道士人数和野人数,还需要考虑船在左岸还是在右岸。从而可用一个三元组来表示状态 S=(m,c,b)其中,m表示左岸的修道士人数,c表示左岸的野人数,b表示左岸的船数。右岸的状态可由下式确定:右岸修道士数 m=3-m 右岸野人数 c=3-c 右岸船数 b=1-b 在这种表示方式下,m和c都可取0、1、2、3中之一,b可取0和1中之一。因此,共有442=32种状态。状态空间法3.状态空间的例子第10页/共88页11 这32种状态并非全有意义,除去不合法状态和修道士被野人吃掉的状态,有意义的状态只有16种:S0=(3,3,1)S1=(3,2,1)S2=(3,1,1)S3=(2,2,1)S4=(1,1,1)S5=(0,3,1)S6=(0,2,1)S7=(0,1,1)S8=(3,2,0)S9=(3,1,0)S10=(3,0,0)S11=(2,2,0)S12=(1,1,0)S13=(0,2,0)S14=(0,1,0)S15=(0,0,0)有了这些状态,还需要考虑可进行的操作。操作是指用船把修道士或野人从河的左岸运到右岸,或从河的右岸运到左岸。每个操作都应当满足如下条件:一是船至少有一个人(m或c)操作,离开岸边的m和c的减少数目应该等于到达岸边的m和c的增加数目;二是每次操作船上人数不得超过2个;三是操作应保证不产生非法状态。因此,操作应由条件部分和动作部分:条件:只有当其条件具备时才能使用 动作:刻划了应用此操作所产生的结果。第11页/共88页12操作的表示:用符号Pij表示从左岸到右岸的运人操作 用符号Qij表示从右岸到左岸的操作其中:i表示船上的修道士人数 j表示船上的野人数操作集 本问题有10种操作可供选择:F=P01,P10,P11,P02,P20,Q01,Q10,Q11,Q02,Q20 下面以P01和Q01为例来说明这些操作的条件和动作。操作符号 条件 动作 P01 b=1,m=0或3,c1 b=0,c=c-1 Q01 b=0,m=0或3,c2 b=1,c=c+1第12页/共88页13abc 例4.3猴子摘香蕉问题。在讨论谓词逻辑知识表示时,我们曾提到过这一问题,现在用状态空间法来解决这一问题。解:问题的状态可用4元组 (w,x,y,z)表示。其中:w表示猴子的水平位置;x表示箱子的水平位置;y表示猴子是否在箱子上,当猴子在箱子上时,y取1,否则y取0;z表示猴子是否拿到香蕉,当拿到香蕉时z取1,否则z取0。状态空间法3.状态空间的例子第13页/共88页14所有可能的状态为 S0:(a,b,0,0)初始状态 S1:(b,b,0,0)S2:(c,c,0,0)S3:(c,c,1,0)S4:(c,c,1,1)目标状态允许的操作为 Goto(u):猴子走到位置u,即 (w,x,0,0)(u,x,0,0)Pushbox(v):猴子推着箱子到水平位置v,即 (x,x,0,0)(v,v,0,0)Climbbox:猴子爬上箱子,即 (x,x,0,0)(x,x,1,0)Grasp;猴子拿到香蕉,即 (c,c,1,0)(c,c,1,1)这个问题的状态空间图如下图所示。不难看出,由初始状态变为目标状态的操作序列为:Goto(b),Pushbox(c),Climbbox,Grasp第14页/共88页15猴子摘香蕉问题的解(a,b,0,0)(b,b,0,0)(c,c,0,0)(b,b,1,0)(c,c,1,0)(a,a,0,0)(c,c,1,1)初始状态Goto(b)Goto(b)Pushbox(c)Grasp目标状态猴子摘香蕉问题的状态空间图解序列为:Goto(b),Pushbox(c),Climbbox,GraspPushbox(c)ClimbboxClimbboxPushbox(c)Pushbox(a)Pushbox(a)第15页/共88页16基本思想 当一问题较复杂时,可通过分解或变换,将其转化为一系列较简单的子问题,然后通过对这些子问题的求解来实现对原问题的求解。分解 如果一个问题P可以归约为一组子问题P1,P2,Pn,并且只有当所有子问题Pi都有解时原问题P才有解,任何一个子问题Pi无解都会导致原问题P无解,则称此种归约为问题的分解。即分解所得到的子问题的“与”与原问题P等价。等价变换如果一个问题P可以归约为一组子问题P1,P2,Pn,并且子问题Pi中只要有一个有解则原问题P就有解,只有当所有子问题Pi都无解时原问题P才无解,称此种归约为问题的等价变换,简称变换。即变换所得到的子问题的“或”与原问题P等价。问题归约法1.问题的分解与等价变换第16页/共88页17PP1P2P3与树P1P2P3或树PPP1P2P3P12P12P31P32P33与/或树(1)与树分解(2)或树等价变换(3)与/或树问题归约法2.问题的与/或树表示第17页/共88页18(4)端节点与终止节点在与/或树中,没有子节点的节点称为端节点;本原问题所对应的节点称为终止节点。可见,终止节点一定是端节点,但端节点却不一定是终止节点。(5)可解节点与不可解节点可解节点与不可解节点在与在与/或树中,满足以下三个条件之一的节点为或树中,满足以下三个条件之一的节点为可解节点:可解节点:任何终止节点都是可解节点。任何终止节点都是可解节点。对对“或或”节点,当其子节点中至少有一个为可解节点时,则该或节点节点,当其子节点中至少有一个为可解节点时,则该或节点就是可解节点。就是可解节点。对对“与与”节点,只有当其子节点全部为可解节点时,该与节点才是可节点,只有当其子节点全部为可解节点时,该与节点才是可解节点。解节点。同样,可用类似的方法定义同样,可用类似的方法定义不可解节点:不可解节点:不为终止节点的端节点是不可解节点。不为终止节点的端节点是不可解节点。对对“或或”节点,若其全部子节点都为不可解节点,则该或节点是不可节点,若其全部子节点都为不可解节点,则该或节点是不可解节点。解节点。对对“与与”节点,只要其子节点中有一个为不可解节点,则该与节点是节点,只要其子节点中有一个为不可解节点,则该与节点是不可解节点。不可解节点。第18页/共88页19Pttt解树(6)解树由可解节点构成,并且由这些可解节点可以推出初始节点(它对应着原始问题)为可解节点的子树为解树。在解树中一定包含初始节点。例如,右图给出的与或树中,用红线表示的子树是一个解树。在该图中,节点P为原始问题节点,用t标出的节点是终止节点。根据可解节点的定义,很容易推出原始问题P为可解节点。问题归约求解过程就实际上就是生成解树,即证明原始节点是可解节点的过程。这一过程涉及到搜索的问题,对于与/或树的搜索将在后面详细讨论。第19页/共88页20例4.4三阶梵塔问题。要求把1号钢针上的3个金片全部移到3号钢针上,如下图所示。解:这个问题也可用状态空间法来解,不过本例主要用它来说明如何用归约法来解决问题。为了能够解决这一问题,首先需要定义该问题的形式化表示方法。设用三元组(i,j,k)表示问题在任一时刻的状态,用“”表示状态的转换。上述三元组中i代表金片C所在的钢针号j代表金片B所在的钢针号k代表金片A所在的钢针号123123问题归约法2.问题的与/或树表示第20页/共88页21利用问题归约方法,原问题可分解为以下利用问题归约方法,原问题可分解为以下三个子问题:三个子问题:(1)把金片把金片A及及B移到移到2号钢针上的双金片移动问题。即号钢针上的双金片移动问题。即(1,1,1)(1,2,2)(2)把金片把金片C移到移到3号钢针上的单金片移动问题。即号钢针上的单金片移动问题。即(1,2,2)(3,2,2)(3)把金片把金片A及及B移到移到3号钢针的双金片移动问题。即号钢针的双金片移动问题。即(3,2,2)(3,3,3)其中,子问题其中,子问题(1)和和(3)都是一个二阶梵塔问题,它们都还可以再继续进行分解;都是一个二阶梵塔问题,它们都还可以再继续进行分解;子问题子问题(2)是本原问题,它已不需要再分解。是本原问题,它已不需要再分解。三阶梵塔问题的分解过程可用如下图与三阶梵塔问题的分解过程可用如下图与/或树来表示或树来表示(1,1,1)(3,3,3)(1,1,1)(1,2,2)(1,2,2)(3,2,2)(3,2,2)(3,3,3)(1,1,1)(1,1,3)(1,1,3)(1,2,3)(1,2,3)(1,2,2)(3,2,2)(3,2,1)(3,2,1)(3,3,1)(3,3,1)(3,3,3)在该与/或树中,有7个终止节点,它们分别对应着7个本原问题。如果把这些本原问题从左至右排列起来,即得到了原始问题的解:(1,1,1)(1,3,3)(1,3,3)(1,2,3)(1,2,3)(1,2,2)(1,2,2)(3,2,2)(3,2,2)(3,2,1)(3,2,1)(3,3,1)(3,3,1)(3,3,3)第21页/共88页22v搜索的基本概念 状态空间的盲目搜索v状态空间的启发式搜索v与/或树的盲目搜索v与/或树的启发式搜索v博弈树的启发式搜索第4章搜索策略第22页/共88页234.2状态空间的盲目搜索一般图搜索过程广度优先和深度优先搜索代价树搜索第23页/共88页24状态空间搜索的基本思想 先把问题的初始状态作为当前扩展节点对其进行扩展,生成一组子节点,然后检查问题的目标状态是否出现在这些子节点中。若出现,则搜索成功,找到了问题的解;若没出现,则再按照某种搜索策略从已生成的子节点中选择一个节点作为当前扩展节点。重复上述过程,直到目标状态出现在子节点中或者没有可供操作的节点为止。所谓对一个节点进行“扩展”是指对该节点用某个可用操作进行作用,生成该节点的一组子节点。一般图搜索过程算法的数据结构和符号约定Open表:用于存放刚生成的节点Closed表:用于存放已经扩展或将要扩展的节点S0:用表示问题的初始状态G:表示搜索过程所得到的搜索图M:表示当前扩展节点新生成的且不为自己先辈的子节点集。第24页/共88页25一般图搜索过程一般图搜索过程 (1)把初始节点把初始节点S0放入放入Open表,并建立目前仅包含表,并建立目前仅包含S0的图的图G;(2)检查检查Open表是否为空,若为空,则问题无解,失败推出;表是否为空,若为空,则问题无解,失败推出;(3)把把Open表的第一个节点取出放入表的第一个节点取出放入Closed表,并记该节点为节点表,并记该节点为节点n;(4)考察节点考察节点n是否为目标节点。若是则得到了问题的解,成功退出;是否为目标节点。若是则得到了问题的解,成功退出;(5)扩展节点扩展节点n,生成一组子节点。把这些子节点中不是节点,生成一组子节点。把这些子节点中不是节点n先辈的那先辈的那部分子节点记入集合部分子节点记入集合M,并把这些子节点作为节点,并把这些子节点作为节点n的子节点加入的子节点加入G中中(6)针对针对M中子节点的不同情况,分别作如下处理:中子节点的不同情况,分别作如下处理:对那些没有在对那些没有在G中出现过的中出现过的M成员设置一个指向其父节点(即节点成员设置一个指向其父节点(即节点n)的指针,并把它放入)的指针,并把它放入Open表。(新生成的)表。(新生成的)对那些原来已在对那些原来已在G中出现过,但还没有被扩展的中出现过,但还没有被扩展的M成员,确定是否需成员,确定是否需要修改它指向父节点的指针。(原生成但未扩展的)要修改它指向父节点的指针。(原生成但未扩展的)对于那些先前已在对于那些先前已在G中出现过,并已经扩展了的中出现过,并已经扩展了的M成员,确定是否需成员,确定是否需要修改其后继节点指向父节点的指针。(原生成也扩展过的)要修改其后继节点指向父节点的指针。(原生成也扩展过的)(7)按某种策略对按某种策略对Open表中的节点进行排序。表中的节点进行排序。(8)转第转第(2)步。步。第25页/共88页26算法的几点说明:(1)上述过程是状态空间的一般图搜索算法,它具有通用性,后面所要讨论的各种状态空间搜索策略都是上述过程的一个特例。各种搜索策略的主要区别在于对Open表中节点的排列顺序不同。例如,广度优先搜索把先生成的子节点排在前面,而深度优先搜索则把后生成的子节点排在前面。(2)在第(5)步对节点n扩展后,生成并记入M的子节点有以下三种情况:该子节点来从未被任何节点生成过,由n第一次生成;该子节点原来被其他节点生成过,但还没有被扩展,这一次又被n再次生成;该子节点原来被其他节点生成过,并且已经被扩展过,这一次又被n再次生成。以上三种情况是对一般图搜索算法而言的。对于盲目搜索,由于其状态空间是树状结构,因此不会出现后两种情况,每个节点经扩展后生成的子节点都是第一次出现的节点,不必检查并修改指向父节点的指针。第26页/共88页27 (3)在第(6)步针对M中子节点的不同情况进行处理时,如果发生当第种情况,那么,这个M中的节点究竟应该作为哪一个节点的后继节点呢?一般是由原始节点到该节点路径上所付出的代价来决定的,哪一条路经付出的代价小,相应的节点就作为它的父节点。所谓由原始节点到该节点路径上的代价是指这条路经上的所有有向边的代价之和。如果发生第种情况,除了需要确定该子节点指向父节点的指针外,还需要确定其后继节点指向父节点的指针。其依据也是由原始节点到该节点的路径上的代价。(4)在搜索图中,除初始节点外,任意一个节点都含有且只含有一个指向其父节点的指针。因此,由所有节点及其指向父节点的指针所构成的集合是一棵树,称为搜索树。(5)在搜索过程的第(4)步,一旦某个被考察的节点是目标节点,则搜索过程成功结束。由初始节点到目标节点路径上的所有操作就构成了该问题的解,而路径由第(6)步所形成的指向父节点的指针来确定。(6)如果搜索过程终止在第(2)步,即没有达到目标,且Open表中已无可供扩展的节点,则失败结束。第27页/共88页28基本思想 从初始节点S0开始逐层向下扩展,在第n层节点还没有全部搜索完之前,不进入第n+1层节点的搜索。Open表中的节点总是按进入的先后排序,先进入的节点排在前面,后进入的节点排在后面。搜索算法(1)把初始节点S0放入Open表中;(2)如果Open表为空,则问题无解,失败退出;(3)把Open表的第一个节点取出放入Closed表,并记该节点为n;(4)考察节点n是否为目标节点。若是,则得到问题的解,成功退出;(5)若节点n不可扩展,则转第(2)步;(6)扩展节点n,将其子节点放入Open表的尾部,并为每一个子节点设置指向父节点的指针,然后转第(2)步。广度优先和深度优先搜索1.广度优先搜索第28页/共88页29 例4.5 八数码难题。在33的方格棋盘上,分别放置了表有数字1、2、3、4、5、6、7、8的八张牌,初始状态S0,目标状态Sg,如下图所示。可以使用的操作有 空格左移,空格上移,空格右移,空格下移即只允许把位于空格左、上、右、下方的牌移入空格。要求应用广度优先搜索策略寻找从初始状态到目标状态的解路径。2 8 31 47 6 5 1 2 38 47 6 5 S0 Sg第29页/共88页30283147652831476523184765283147652831647583214765283714652318476523184765281437652831457628316475283164758321476528371465832147658132476528374615283714651238476512378465123847652341876528143765283145762836417528316754S0123456789101112131415161718192021222324252627Sg第30页/共88页31算法描述 (1)(1)把初始节点S0放入Open表中;(2)(2)如果OpenOpen表为空,则问题无解 ,失败退出;(3)(3)把OpenOpen表的第一个节点取出放入ClosedClosed表,并记该节点为n n;(4)(4)考察节点n n是否为目标节点。若是,则得到问题的解,成功退出;(5)(5)若节点n n不可扩展,则转第(2)(2)步;(6)(6)扩展节点n n,将其子节点放入OpenOpen表的首部,并为每一个子节点设置 指向父节点的指针,然后转第(2)(2)步。广度优先和深度优先搜索2.深度优先搜索基本思想 从初始节点S0开始,在其子节点中选择一个最新生成的节点进行考察,如果该子节点不是目标节点且可以扩展,则扩展该子节点,然后再在此子节点的子节点中选择一个最新生成的节点进行考察,依此向下搜索,直到某个子节点既不是目标节点,又不能继续扩展时,才选择其兄弟节点进行考察。第31页/共88页322831476528314765231847652831476528316475283164752831647528316754283167542816375428163754S0123456八数码难题的深度优先搜索如右图一种改进的深度优先算法是有界深度优先搜索算法,深度限制为dm例4.6八数码难题第32页/共88页33 在代价树中,可以用g(n)表示从初始节点S0到节点n的代价,用c(n1,n2)表示从父节点n1到其子节点n2的代价。这样,对节点n2的代价有:g(n2)=g(n1)+c(n1,n2)。代价树搜索的目的是为了找到最佳解,即找到一条代价最小的解路径。代价树搜索1.代价树的广度优先搜索代价树的广度优先搜索算法:(1)把初始节点S0放入Open表中,置S0的代价g(S0)=0;(2)如果Open表为空,则问题无解,失败退出;(3)把Open表的第一个节点取出放入Closed表,并记该节点为n;(4)考察节点n是否为目标。若是,则找到了问题的解,成功退出;(5)若节点n不可扩展,则转第(2)步;(6)扩展节点n,生成其子节点ni(i=1,2,),将这些子节点放入Open表中,并为每一个子节点设置指向父节点的指针。按如下公式:g(ni)=g(n)+c(ni)i=1,2,.计算各子结点的代价,并根据各子结点的代价对Open表中的全部结点按由小到大的顺序排序。然后转第(2)步。第33页/共88页34 例4.7 城市交通问题。设有5个城市,它们之间的交通线路如左图所示,图中的数字表示两个城市之间的交通费用,即代价。用代价树的广度优先搜索,求从A市出发到E市,费用最小的交通路线。ABCDE434523245AC1B1D1D2E1E2B2C2E3E43434235城市交通图 城市交通图的代价树解:代价树如右图所示。其中,红线为最优解,其代价为8第34页/共88页35代价树搜索2.代价树的深度优先搜索代价树的深度优先搜索算法:(1)把初始节点S0放入Open表中,置S0的代价g(S0)=0;(2)如果Open表为空,则问题无解,失败退出;(3)把Open表的第一个节点取出放入Closed表,并记该节点为n;(4)考察节点n是否为目标节点。若是,则找到了问题的解,成功退出;(5)若节点n不可扩展,则转第(2)步;(6)扩展节点n,生成其子节点ni(i=1,2,),将这些子节点按边代价由小到大放入Open表的首部,并为每一个子节点设置指向父节点的指针。然后转第(2)步。第35页/共88页36v搜索的基本概念v状态空间的盲目搜索 状态空间的启发式搜索v与/或树的盲目搜索v与/或树的启发式搜索v博弈树的启发式搜索第4章搜索策略第36页/共88页374.3状态空间的启发式搜索启发性信息和估价函数A算法A*算法A*算法应用举例第37页/共88页38 启发性信息的概念 启发性信息是指那种与具体问题求解过程有关的,并可指导搜索过程朝着最有希望方向前进的控制信息。启发性信息的种类 有效地帮助确定扩展节点的信息;有效的帮助决定哪些后继节点应被生成的信息;能决定在扩展一个节点时哪些节点应从搜索树上删除的信息。启发性信息的作用 启发信息的启发能力越强,扩展的无用结点越少。启发性信息和估价函数1.启发性信息第38页/共88页39 估价函数用来估计节点重要性的函数。估价函数f(n)被定义为从初始节点S0出发,约束经过节点n到达目标节点Sg的所有路径中最小路径代价的估计值。它的一般形式为:f(n)=g(n)+h(n)其中,g(n)是从初始节点S0到节点n的实际代价;h(n)是从节点n到目标节点Sg的最优路径的估计代价。启发性信息和估价函数2.估价函数 例4.8 八数码难题。设问题的初始状态S0和目标状态Sg如下图所示,且估价函数为 f(n)=d(n)+W(n)其中:d(n)表示节点n在搜索树中的深度 W(n)表示节点n中“不在位”的数码个数。请计算初始状态S0的估价函数值f(S0)第39页/共88页40 解:取g(n)=d(n),h(n)=W(n)。它说明是用从S0到n的路径上的单位代价表示实际代价,用结点n中“不在位”的数码个数作为启发信息。一般来说,某节点中的“不在位”的数码个数越多,说明它离目标节点越远。对初始节点S0,由于d(S0)=0,W(S0)=3,因此有 f(S0)=0+3=3 2 8 31 47 6 5 1 2 38 47 6 5 S0 Sg第40页/共88页41概念:在图搜索算法中,如果能在搜索的每一步都利用估价函数f(n)=g(n)+h(n)对Open表中的节点进行排序,则该搜索算法为A算法。由于估价函数中带有问题自身的启发性信息,因此,A算法也被称为启发式搜索算法。类型:可根据搜索过程中选择扩展节点的范围,将启发式搜索算法分为全局择优搜索算法和局部择优搜索算法。全局择优:从Open表的所有节点中选择一个估价函数值最小的一个进行扩展。局部择优:仅从刚生成的子节点中选择一个估价函数值最小的一个进行扩展。算法第41页/共88页42全局择优搜索A A算法描述:(1)(1)把初始节点S0放入Open表中,f(S0)=g(S0)+h(S0);(2)(2)如果Open表为空,则问题无解,失败退出;(3)(3)把Open表的第一个节点取出放入Closed表,并记该节点为n;(4)(4)考察节点n是否为目标节点。若是,则找到了问题的解,成功退出;(5)(5)若节点n不可扩展,则转第(2)步;(6)(6)扩展节点n,生成其子节点ni(i=1,2,),计算每一个子节点的估价值f(ni)(i=1,2,),并为每一个子节点设置指向父节点的指针,然后将这些子节点放入Open表中;(7)(7)根据各节点的估价函数值,对Open表中的全部节点按从小到大的顺序重新进行排序;(8)(8)转第(2)步。算法第42页/共88页43 例4.9 八数码难题。设问题的初始状态S0和目标状态Sg如图所示,估价函数与例4.8相同。请用全局择优搜索解决该问题。解:该问题的全局择优搜索树如下图所示。在该图中,每个节点旁边的数字是该节点的估价函数值。例如,对节点S2,其估价函数值的计算为:f(S2)=d(S2)+W(S2)=1+3=42 8 31 47 6 5 1 2 38 47 6 5 S0Sg第43页/共88页442831476528314765231847652831476528316475S0832147652837146523184765231847651238476512378465123847654455564644SgS1S2八数码难题的全局择优搜索树该问题的解为:S0S1S2S3SgS36第44页/共88页45 算法 A*算法是对A算法的估价函数f(n)=g(n)+h(n)加上某些限制后得到的一种启发式搜索算法 假设f*(n)是从初始节点出发,约束经过节点n达到目标节点的最小代价,估价函数f(n)是对f*(n)的估计值。且 f*(n)=g*(n)+h*(n)A*算法对A算法(全局择优的启发式搜索算法)中的g(n)和h(n)分别提出如下限制:第一,g(n)是对最小代价g*(n)的估计,且g(n)0;第二,h(n)是最小代价h*(n)的下界,即对任意节点n均有h(n)h*(n)。即满足上述两条限制的A算法称为A*算法。第45页/共88页46 算法1.A*算法的可纳性(1)可纳性的含义:对任一状态空间图,当从初始节点到目标节点有路经存在时,如果搜索算法总能在有限步骤内找到一条从初始节点到目标节点的最佳路径,并在此路径上结束,则称该搜索算法是可采纳的。A*算法可纳性的证明 以下分三步(定理4.1、定理4.2、定理4.3,即引理)进行证明。定理4.1 对有限图,如果从初始节点S0到目标节点Sg有路径存在,则算法A*一定成功结束。证明:首先证明算法必然会结束。由于搜索图为有限图,如果算法能找到解,则成功结束;如果算法找不到解,则必然会由于Open表变空而结束。因此,A*算法必然会结束。然后证明算法一定会成功结束。由于至少存在一条有初始节点到目标节点的路径,设此路径为 S0=n0,n1,nk=Sg算法开始时,节点n0在Open表中,而且路径中任一节点ni离开Open表后,其后继节点ni+1必然进入Open表,这样,在Open表变为空之前,目标节点必然出现在Open表中。因此,算法一定会成功结束。第46页/共88页47 引理4.1 对无限图,如果从初始节点S0到目标节点Sg有路径存在,则算法A*算法不终止的话,则从Open表中选出的节点必将具有任意大的f值。证明:设d*(n)是A*生成的从初始节点S0到节点n的最短路经长度,由于搜索图中每条边的代价都是一个正数,令这些正数中的最小的一个数是e,则有 g*(n)d*(n)e因为g*(n)是最佳路径的代价,故有 g(n)g*(n)d*(n)e又因为h(n)0,故有 f(n)=g(n)+h(n)g(n)d*(n)e 如果A*算法不终止的话,从Open表中选出的节点必将具有任意大的d*(n)值,因此,也将具有任意大的f值。算法1.A*算法的可纳性(2)第47页/共88页48 引理4.2 在A*算法终止前的任何时刻,Open表中总存在节点n,它是从初始节点S0到目标节点的最佳路径上的一个节点,且满足f(n)f*(S0)。证明:设从初始节点S0到目标节点t的一条最佳路径序列为S0=n0,n1,nk=Sg算法开始时,节点S0在Open表中,当节点S0离开Open表进入Closed表时,节点n1进入Open表。因此,A*没有结束以前,在Open表中必存在最佳路径上的节点。设这些节点中排在最前面的节点为n,则有f(n)=g(n)+h(n)由于n在最佳路径上,故有g(n)=g*(n),从而f(n)=g*(n)+h(n)又由于A*算法满足h(n)h*(n),故有f(n)g*(n)+h*(n)=f*(n)因为在最佳路径上的所有节点的f*值都应相等,因此有f(n)f*(S0)算法1.A*算法的可纳性(3)第48页/共88页49 定理4.2 对无限图,若从初始节点S0到目标节点t有路径存在,则A*算法必然会结束。证明:(反证法)假设A*不结束,由引理4.1知Open表中的节点有任意大的f值,这与引理4.2的结论相矛盾,因此,A*算法只能成功结束。推论4.1 Open表中任一具有f(n)f*(S0)但由引理4.2可知,在A*算法结束前,必有最佳路径上的一个节点n在Open表中,且有 f(n)f*(S0)h1(n)则在搜索过程中,被A2*扩展的节点也必然被A1*扩展,即A1*扩展的节点不会比A2*扩展的节点少,亦即A2*扩展的节点集是A1*扩展的节点集的子集。算法2.A*算法的最优性(1)第52页/共88页53 算法2.A*算法的最优性(2)证明:(用数学归纳法)(1)对深度d(n)=0的节点,即n为初始节点S0,如n为目标节点,则A1*和A2*都不扩展n;如果n不是目标节点,则A1*和A2*都要扩展n。(2)假设对A2*中d(n)=k的任意节点n结论成立,即A1*也扩展了这些节点。(3)证明A2*中d(n)=k+1的任意节点n,也要由A1*扩展。(用反证法)假设A2搜索树上有一个满足d(n)=k+1的节点n,A2*扩展了该节点,但A1*没有扩展它。根据第(2)条的假设,知道A1*扩展了节点n的父节点。因此,n必定在A1*的Open表中。既然节点n没有被A1*扩展,则有 f1(n)f*(S0)即 g1(n)+h1(n)f*(S0)。但由于d=k时,A2*扩展的节点A1*也一定扩展,故有 g1(n)g2(n)因此有h1(n)f*(S0)-g2(n)另一方面,由于A2*扩展了n,因此有 f2(n)f*(0)即 g2(n)+h2(n)f*(S0),亦即 h2(n)f*(S0)-g2(n),所以有 h1(n)h2(n)这与我们最初假设的h1(n)h2(n)矛盾,因此反证法的假设不成立。第53页/共88页54 在A*算法中,每当扩展一个节点n时,都需要检查其子节点是否已在Open表或Closed表中。对已在Open表中的子节点,需要决定是否调整指向其父节点的指针;对已在Closed表中的子节点,除需要决定是否调整其指向父节点的指针外,还需要决定是否调整其子节点的后继节点的父指针。如果能够保证,每当扩展一个节点时就已经找到了通往这个节点的最佳路径,就没有必要再去作上述检查 为满足这一要求,我们需要对启发函数h(n)增加单调性限制。定义4.1 如果启发函数满足以下两个条件:(1)h(Sg)=0;(2)对任意节点ni及其任一子节点nj,都有 0h(ni)-h(nj)c(ni,nj)其中c(ni,nj)是ni到其子节点nj的边代价,则称h(n)满足单调限制。算法3.h(n)的单调限制(1)第54页/共88页55 定理4.5 如果h满足单调条件,则当A*算法扩展节点n时,该节点就已经找到了通往它的最佳路径,即g(n)=g*(n)。证明:设A*正要扩展节点n,而节点序列 S0=n0,n1,nk=n是由初始节点S0到节点n的最佳路径。其中,ni是这个序列中最后一个位于Closed表中的节点,则上述节点序列中的ni+1节点必定在Open表中,则有 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*(ni)+h(ni)g*(ni+1)+h(ni+1)一直推导下去可得 g*(ni+1)+h(ni+1)g*(nk)+h(nk)由于节点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)所以有 g(n)=g*(n)算法3.h(n)的单调限制(2)第55页/共88页56 定理4.6 如果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)不满足单调性限制,则它们不一定成立。在h(n)满足单调性限制下的A*算法常被称为改进的A*算法。算法3.h(n)的单调限制(2

    注意事项

    本文(搜索策略人工智能原理及其应.pptx)为本站会员(莉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开