第4章搜索策略人工智能原理及其应电子教案课件.ppt
《第4章搜索策略人工智能原理及其应电子教案课件.ppt》由会员分享,可在线阅读,更多相关《第4章搜索策略人工智能原理及其应电子教案课件.ppt(88页珍藏版)》请在三一办公上搜索。
1、搜索是人工智能中的一个基本问题,并与推理密切相关,搜索策略的优劣,将直接影响到智能系统的性能与推理效率。,搜索的基本概念状态空间的盲目搜索状态空间的启发式搜索与/或树的盲目搜索与/或树的启发式搜索博弈树的启发式搜索,第4章 搜索策略,1,搜索是人工智能中的一个基本问题,并与推理密切相关,搜索策,4.1 搜索的基本概念,搜索的含义状态空间法问题归约法,2,4.1 搜索的基本概念搜索的含义2,4.1.1 搜索的含义,适用情况:不良结构或非结构化问题;难以获得求解所需的全部信息;更没有现成的算法可供求解使用。概念:依靠经验,利用已有知识,根据问题的实际情况,不断寻找可利用知识,从而构造一条代价最小的
2、推理路线,使问题得以解决的过程称为搜索,搜索的类型 按是否使用启发式信息:盲目搜索:按预定的控制策略进行搜索,在搜索过程中获得的中间信息并不改变控制策略。启发式搜索:在搜索中加入了与问题有关的启发性信息,用于指导搜索朝着最有希望的方向前进,加速问题的求解过程并找到最优解。按问题的表示方式:状态空间搜索:用状态空间法来求解问题所进行的搜索 与或树搜索:用问题归约法来求解问题时所进行的搜索,3,4.1.1 搜索的含义适用情况:搜索的类型3,4.1.2 状态空间法1.状态空间表示方法,状态(State):是表示问题求解过程中每一步问题状况的数据结构,它可形式地表示为:Sk=Sk0,Sk1,当对每一个
3、分量都给以确定的值时,就得到了一个具体的状态。操作(Operator)也称为算符,它是把问题从一种状态变换为另一种状态的手段。操作可以是一个机械步骤,一个运算,一条规则或一个过程。操作可理解为状态集合上的一个函数,它描述了状态之间的关系。状态空间(State space)用来描述一个问题的全部状态以及这些状态之间的相互关系。常用一个三元组表示为:(S,F,G)其中,S为问题的所有初始状态的集合;F为操作的集合;G为目标状态的集合。状态空间也可用一个赋值的有向图来表示,该有向图称为状态空间图。在状态空间图中,节点表示问题的状态,有向边表示操作。,4,4.1.2 状态空间法状态(State):4,
4、状态空间法求解问题的基本过程:首先为问题选择适当的“状态”及“操作”的形式化描述方法;然后从某个初始状态出发,每次使用一个“操作”,递增地建立起操作序列,直到达到目标状态为止;此时,由初始状态到目标状态所使用的算符序列就是该问题的一个解。,4.1.2 状态空间法2.状态空间问题求解,5,状态空间法求解问题的基本过程:4.1.2 状态空间法5,例4.1 二阶梵塔问题。设有三根钢针,它们的编号分别是1号、2号和3号。在初始情况下,1号钢针上穿有A、B两个金片,A比B小,A位于B的上面。要求把这两个金片全部移到另一根钢针上,而且规定每次只能移动一个金片,任何时刻都不能使大的位于小的上面。,解:设用S
5、k=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),4.1.2 状态空间法3.状态空间的例子,6,例4.1 二阶梵塔问题。设有三根钢针,它们的编号分,AB,AB,AB,1 2 3,1 2 3,1 2 3,二阶梵塔问题的初始状态和目标状态,问题的初始状态集合为S=S0 目标状态集合为G=S4,S5,初始状态S0和目标状态S4、S8如图所示,S0=(1,1),S4=(2,2)
6、,S8=(3,3),4.1.2 状态空间法3.状态空间的例子,7,AAA 1 2 3 1,操作分别用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种操作,可构成二阶梵塔问题的状态空间图,如下图所示。,4.1.2 状态空间法3.状态空间的例子,8,操作分别用A(i,j)和B(i,j)表示4.1,(3,3)(1
7、,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),9,(3,3)(,例4.2 修道士(Missionaries)和野人(Cannibals)问题(简称M-C问题)。设在河的一岸有三个野人、三个修道士和一条船,修道士想用这条船把所有的
8、人运到河对岸,但受以下条件的约束:一是修道士和野人都会划船,但每次船上至多可载两个人;二是在河的任一岸,如果野人数目超过修道士数,修道士会被野人吃掉。如果野人会服从任何一次过河安排,请规划一个确保修道士和野人都能过河,且没有修道士被野人吃掉的安全过河计划。,4.1.2 状态空间法3.状态空间的例子,10,例4.2 修道士(Missionaries)和野人(,解:首先选取描述问题状态的方法。在这个问题中,需要考虑两岸的修道士人数和野人数,还需要考虑船在左岸还是在右岸。从而可用一个三元组来表示状态 S=(m,c,b)其中,m表示左岸的修道士人数,c表示左岸的野人数,b表示左岸的船数。右岸的状态可由
9、下式确定:右岸修道士数 m=3-m 右岸野人数 c=3-c 右岸船数 b=1-b 在这种表示方式下,m和c都可取0、1、2、3中之一,b可取0和1中之一。因此,共有442=32种状态。,4.1.2 状态空间法3.状态空间的例子,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)S1
10、1=(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个;三是操作应保证不产生非法状态。因此,操作应由条件部分和动作部分:条件:只有当其条件具备时才能使用 动作:刻划了应用此操作所产生的结果。,12,这32种状态并非全有意义,除去不合法状态和修道士,操作的表示:用符号Pij表示从左岸到右
11、岸的运人操作 用符号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,13,操作的表示:13,a,b,c,例4.3 猴子摘香蕉问题。在讨论谓词逻辑知识表示时,我们曾提到过这一问题,现在用状态空间法来解决这一问题。,解:问题的状态可用4元组(w,x,y,z)表示。其中:w表
12、示猴子的水平位置;x表示箱子的水平位置;y表示猴子是否在箱子上,当猴子在箱子上时,y取1,否则y取0;z表示猴子是否拿到香蕉,当拿到香蕉时z取1,否则z取0。,4.1.2 状态空间法3.状态空间的例子,14,abc 例4.3 猴子摘香蕉问题。在讨论谓词逻辑知识表,所有可能的状态为 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)Climb
13、box:猴子爬上箱子,即(x,x,0,0)(x,x,1,0)Grasp;猴子拿到香蕉,即(c,c,1,0)(c,c,1,1)这个问题的状态空间图如下图所示。不难看出,由初始状态变为目标状态的操作序列为:Goto(b),Pushbox(c),Climbbox,Grasp,15,所有可能的状态为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),Pu
14、shbox(c),Climbbox,Grasp,Pushbox(c),Climbbox,Climbbox,Pushbox(c),Pushbox(a),Pushbox(a),16,猴子摘香蕉问题的解(a,b,0,0)(b,b,0,0)(c,基本思想 当一问题较复杂时,可通过分解或变换,将其转化为一系列较简单的子问题,然后通过对这些子问题的求解来实现对原问题的求解。,分解 如果一个问题P可以归约为一组子问题P1,P2,Pn,并且只有当所有子问题Pi都有解时原问题P才有解,任何一个子问题Pi无解都会导致原问题P无解,则称此种归约为问题的分解。即分解所得到的子问题的“与”与原问题P等价。等价变换 如果
15、一个问题P可以归约为一组子问题P1,P2,Pn,并且子问题Pi中只要有一个有解则原问题P就有解,只有当所有子问题Pi都无解时原问题P才无解,称此种归约为问题的等价变换,简称变换。即变换所得到的子问题的“或”与原问题P等价。,4.1.3 问题归约法1.问题的分解与等价变换,17,基本思想分解 4.1.3 问题归约法17,(1)与树 分解,(2)或树 等价变换,(3)与/或树,4.1.3 问题归约法2.问题的与/或树表示,18,PP1 P2 P3P1,(4)端节点与终止节点 在与/或树中,没有子节点的节点称为端节点;本原问题所对应的节点称为终止节点。可见,终止节点一定是端节点,但端节点却不一定是终
16、止节点。,(5)可解节点与不可解节点 在与/或树中,满足以下三个条件之一的节点为可解节点:任何终止节点都是可解节点。对“或”节点,当其子节点中至少有一个为可解节点时,则该或节点就是可解节点。对“与”节点,只有当其子节点全部为可解节点时,该与节点才是可解节点。同样,可用类似的方法定义不可解节点:不为终止节点的端节点是不可解节点。对“或”节点,若其全部子节点都为不可解节点,则该或节点是不可解节点。对“与”节点,只要其子节点中有一个为不可解节点,则该与节点是不可解节点。,19,(4)端节点与终止节点(5)可解节点与不可解节点19,(6)解树 由可解节点构成,并且由这些可解节点可以推出初始节点(它对应
17、着原始问题)为可解节点的子树为解树。在解树中一定包含初始节点。例如,右图给出的与或树中,用红 线表示的子树是一个解树。在该图中,节点P为原始问题节点,用t标出的节点是终止节点。根据可解节点的定义,很容易推出原始问题P为可解节点。问题归约求解过程就实际上就是生成解树,即证明原始节点是可解节点的过程。这一过程涉及到搜索的问题,对于与/或树的搜索将在后面详细讨论。,20,Pt t,例4.4 三阶梵塔问题。要求把1号钢针上的3个金片全部移到3号钢针上,如下图所示。解:这个问题也可用状态空间法来解,不过本例主要用它来说明如何用归约法来解决问题。为了能够解决这一问题,首先需要定义该问题的形式化表示方法。设
18、用三元组(i,j,k)表示问题在任一时刻的状态,用“”表示状态的转换。上述三元组中 i 代表金片C所在的钢针号 j 代表金片B所在的钢针号 k 代表金片A所在的钢针号,1,2,3,1,2,3,4.1.3 问题归约法2.问题的与/或树表示,21,例4.4 三阶梵塔问题。要求把1号钢针上的3,利用问题归约方法,原问题可分解为以下三个子问题:(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)都
19、是一个二阶梵塔问题,它们都还可以再继续进行分解;子问题(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
20、,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),22,利用问题归约方法,原问题可分解为以下三个子问题:在该,搜索的基本概念 状态空间的盲目搜索状态空间的启发式搜索与/或树的盲目搜索与/或树的启发式搜索博弈树的启发式搜索,第4章 搜索策略,23,搜索的基本概念第4章 搜索策略23,4.2 状态空间的盲目搜索,一般图搜索过程广度优先和深度优先搜索代价树搜索,24,4.2 状态空间的盲目搜索一般图搜索过程24,状态空间搜索的基本思想 先把问题的初始状态作为当前扩展节点对其进行扩展,生成一组子节点,然后检查问题的目标
21、状态是否出现在这些子节点中。若出现,则搜索成功,找到了问题的解;若没出现,则再按照某种搜索策略从已生成的子节点中选择一个节点作为当前扩展节点。重复上述过程,直到目标状态出现在子节点中或者没有可供操作的节点为止。所谓对一个节点进行“扩展”是指对该节点用某个可用操作进行作用,生成该节点的一组子节点。,4.2.1 一般图搜索过程,算法的数据结构和符号约定 Open表:用于存放刚生成的节点 Closed表:用于存放已经扩展或将要扩展的节点 S0:用表示问题的初始状态 G:表示搜索过程所得到的搜索图 M:表示当前扩展节点新生成的且不为自己先辈的子节点集。,25,状态空间搜索的基本思想4.2.1 一般图搜
22、索过程算法的数据,一般图搜索过程(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中出现过,
23、但还没有被扩展的M成员,确定是否需要修改它指向父节点的指针。(原生成但未扩展的)对于那些先前已在G中出现过,并已经扩展了的M成员,确定是否需要修改其后继节点指向父节点的指针。(原生成也扩展过的)(7)按某种策略对Open表中的节点进行排序。(8)转第(2)步。,26,一般图搜索过程26,算法的几点说明:(1)上述过程是状态空间的一般图搜索算法,它具有通用性,后面所要讨论的各种状态空间搜索策略都是上述过程的一个特例。各种搜索策略的主要区别在于对Open表中节点的排列顺序不同。例如,广度优先搜索把先生成的子节点排在前面,而深度优先搜索则把后生成的子节点排在前面。(2)在第(5)步对节点n扩展后,生
24、成并记入M的子节点有以下三种情况:该子节点来从未被任何节点生成过,由n第一次生成;该子节点原来被其他节点生成过,但还没有被扩展,这一次又被n再次生成;该子节点原来被其他节点生成过,并且已经被扩展过,这一次又被n再次生成。以上三种情况是对一般图搜索算法而言的。对于盲目搜索,由于其状态空间是树状结构,因此不会出现后两种情况,每个节点经扩展后生成的子节点都是第一次出现的节点,不必检查并修改指向父节点的指针。,27,算法的几点说明:27,(3)在第(6)步针对M中子节点的不同情况进行处理时,如果发生当第种情况,那么,这个M中的节点究竟应该作为哪一个节点的后继节点呢?一般是由原始节点到该节点路径上所付出
25、的代价来决定的,哪一条路经付出的代价小,相应的节点就作为它的父节点。所谓由原始节点到该节点路径上的代价是指这条路经上的所有有向边的代价之和。如果发生第种情况,除了需要确定该子节点指向父节点的指针外,还需要确定其后继节点指向父节点的指针。其依据也是由原始节点到该节点的路径上的代价。(4)在搜索图中,除初始节点外,任意一个节点都含有且只含有一个指向其父节点的指针。因此,由所有节点及其指向父节点的指针所构成的集合是一棵树,称为搜索树。(5)在搜索过程的第(4)步,一旦某个被考察的节点是目标节点,则搜索过程成功结束。由初始节点到目标节点路径上的所有操作就构成了该问题的解,而路径由第(6)步所形成的指向
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 搜索 策略 人工智能 原理 及其 电子 教案 课件
链接地址:https://www.31ppt.com/p-2109185.html