搜索与求解-人工智能导论课件.ppt
《搜索与求解-人工智能导论课件.ppt》由会员分享,可在线阅读,更多相关《搜索与求解-人工智能导论课件.ppt(150页珍藏版)》请在三一办公上搜索。
1、1,第 2 章 搜 索,2,本章知识结构,3,本章学习要点,理解搜索及回溯的概念,掌握启发式搜索和盲目搜索的概念;掌握宽度优先搜索算法和深度优先搜索算法,并了解二者的区别;了解A*算法。,4,主 要 内 容,2.1 搜索概述2.2 状态空间搜索2.3 状态空间盲目搜索2.4 状态空间启发式搜索2.5 代价树的搜索2.6 与/或树搜索2.7 博弈树的启发式搜索,5,2.1 搜索的概述,现实世界中的大多数问题都是非结构化问题,一般不存在现成的求解方法,而只能利用已有知识一步一步摸索前进。根据问题的实际情况,按照一定的策略或规则,从知识库中寻找可利用的知识,从而构造出一条使问题获得解决的推理路线的过
2、程,就称为搜索。,6,搜索的含义:,搜索包含两层含义:(1)要找到从初始事实到问题最终答案的一条推理路线;(2)找到的这条路线是时间和空间复杂程度最小的求解路线。,7,搜索的基本技术:,搜索是人工智能技术中进行问题求解的基本技术,也是人工智能中的一个核心技术,是推理不可分隔的一部分,它直接关系到智能系统的性能和运行效率。人工智能进行问题求解的两种基本技术:图搜索 搜索算法,8,(1)图搜索,运用领域知识,以符号推演的方式,顺序地在问题空间进行搜索。其中的问题空间表示为某种状态图(空间)或与或图的形式。该方法模拟人脑分析问题。,9,(2)搜索算法,以计算的方法,随机地在问题的解空间中进行搜索。该
3、方法是借鉴或模拟自然现象或生命现象。,10,搜索的类型:,根据搜索过程中是否使用启发式信息,可以把搜索的类型分为两种:盲目搜索(无信息搜索)启发式搜索(有信息搜索),11,(1)盲目搜索,指在搜索过程中,按照原来规定的搜索策略进行搜索,而没有加入任何中间信息来改变这些控制策略。搜索带有盲目性、效率低。该方法通常只用于解决比较简单的问题。,12,(2)启发式搜索,指在搜索过程中,根据问题本身的特性或一些在搜索过程中产生的信息来不断修改或调整搜索的方向,是搜索向着最有利的方向前进,加快问题求解的速度,并找到最优解。该方法是更易于求解复杂的问题。,13,主 要 内 容,2.1 搜索概述2.2 状态空
4、间搜索2.3 状态空间盲目搜索2.4 状态空间启发式搜索2.5 代价树的搜索2.6 与/或树搜索2.7 博弈树的启发式搜索,14,Sg,内容:状态空间的搜索问题 搜索策略:盲目搜索启发式搜索关键问题:如何利用知识,尽可能有效地找到问题的解(最佳解)。,S0,2.2 状态空间搜索,15,讨论的问题:如何用状态空间法表示问题和问题的求解过程?使用状态空间法求解问题的具体过程如何?,16,【准备知识1:状态空间定义】(参见教材62页),状态:描述问题求解过程中不同时刻状况的数据结构。一般用一组变量的有序集合表示:Q=(q0,q1,q2,qn)算符(操作):引起状态中某些分量发生变化,从而使问题由一个
5、状态变为另一个状态的操作。,17,状态空间,由表示一个问题的全部状态及一切可用算符构成的集合称为该问题的状态空间。状态空间可以用空间三元组(S,F,G)表示:S-问题初始状态的集合F-操作或算符的集合G-目标状态的集合 状态空间的图示形式称为状态空间图。其中的节点表示状态,有向边(弧)表示算符。,18,【状态空间的例子1迷宫问题】,以例3.1中的迷宫为例。我们以每个格子作为一个状态,并用其标识符作为其表示。那么,两个标识符组成的序对就是一个状态转换规则。于是,该迷宫的状态空间表示为,S:SoF:(So,S4),(S4,So),(S4,S1),(S1,S4),(S1,S2),(S2,S1),(S
6、2,S3),(S3,S2),(S4,S7),(S7,S4),(S4,S5),(S5,S4),(S5,S6),(S6,S5),(S5,S8),(S8,S5),(S8,S9),(S9,S8),(S9,Sg)G:Sg,19,迷宫问题的空间状态图为:,20,问题求解,从问题的初始状态集Qs出发,经过一系列的算符运算,到达目标状态Qg。该过程中所用算符的序列f构成问题的一个解。QsS,QgG,算子序列f:f=f1,f2,fn 使得 Qg=fn(f2(f1(Qs),21,【问题求解的例子-八数码难题】,在3*3的方格棋盘上,分别放置了标有数字1、2、3、4、5、6、7、8的八张牌,初始状态So,目标状态为
7、Sg。操作规则是:与空格相邻的数码可通过左移、上移、下移、右移来移入空格。,初始状态So,目标状态Sg,22,状态转移-规则,数码上移,23,路径-状态序列搜索-寻找从初始状态到目标状态的路径;,24,状态空间,25,难点,可用操作冲突如何消解?,如何搜索到最优解?,26,【状态空间及问题求解的例子梵塔问题】(P64),设有三根宝石杆,在1号杆上穿有A、B两个金盘,A小于B,A位于B的上面。要求把这两个金盘全部移到另一根杆上,而且规定每次只能移动一个盘子,任何时刻都不能使B位于A的上面。,27,设用二元组(SA,SB)表示问题的状态,SA表示金盘A所在的杆号,SB表示金盘B所在的杆号,这样,全
8、部可能的状态有9种,可表示如下:(1,1),(1,2),(1,3)(2,1),(2,2),(2,3)(3,1),(3,2),(3,3),28,二阶梵塔的全部状态,29,这里的状态转换规则就是金盘的搬动规则,分别用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),30,由这9种可能的状态和12种操作,二阶梵塔问题的状态
9、空间图如图所示:,31,小 结,使用状态空间表示法表示问题时:首先定义状态的描述形式,并使用这种描述形式把问题的状态全部表示出来;其次定义一组操作,通过使用这些操作把问题从一种状态变为另一种状态。问题的求解过程实际是一个不断操作作用于状态的过程。如果使用某种操作得到的新状态就是目标状态,就得到了问题的一个解。这个解是从问题初始状态到目标状态的操作序列。,32,课 堂 练 习 题,设有三只琴键开关一字排开,初始状态为“关、开、关”,问连按三次后是否会出现“开、开、开”或“关、关、关”的状态?要求每次必须按下一个开关,而且只能按一个开关。请画出状态空间图。【注:琴键开关有这样的特点,若第一次按下时
10、它为“开”,则第二次按下时它就变成了“关”。】,33,【准备知识2:状态图搜索方式】(参见教材50页),树式搜索 在搜索过程中记录所经过的所有节点和边,记录轨迹为一棵“树”。线式搜索 在搜索过程中只记录那些当前认为处在所找路径上的节点和边,记录轨迹是一条“线”(折线)。,34,【准备知识3:状态图搜索策略】(参见教材51页),盲目搜索策略 就是无“向导”的搜索。启发式搜索策略 就是有“向导”的搜索。,35,【准备知识4:状态图搜索基本概念】,节点深度:根节点深度=0;其它节点深度=父节点深度+1。,0,2,36,路径 设一节点序列为(n0,n1,nk),对于 i=1,k,若节点ni-1具有一个
11、后继节点ni,则该序列称为从n0到nk的路径。路径的耗散值 一条路径的耗散值等于连接这条路径各节点间所有耗散值的总和。用C(ni,nj)表示从ni到nj的路径的耗散值。,37,扩展一个节点 生成出该节点的所有后继节点,并给出它们之间的耗散值。这一过程称为“扩展一个节点”。,38,2.2.1 状态空间搜索的一般过程,状态空间搜索实际上就是对有向图的搜索。先把问题的初始状态当作当前扩展节点对其进行扩展,生成一组子节点,然后检查问题的目标状态是否出现在这些子节点中。若出现,则搜索成功,找到了该问题的解;若没有出现,则按照某种搜索策略从已生成的子节点中选择一个作为当前扩展节点。重复上述过程,直到目标状
12、态出现在子节点中或没有可供扩展的节点为止。,39,2.2.2 状态空间图搜索的一般算法(参见教材P51),Open表用于存放还没有扩展的节点,因此,Open表称为未扩展的节点表。Closed表用于存放已经扩展或将要扩展的节点,因此,Closed称为已扩展的节点表。用S0表示问题的初始状态,G表示搜索过程所得到的搜索图,M表示当前扩展节点新生成的且不为自己先辈的子节点集。,40,1.G=G0(G0=s0),OPEN:=(s0);%建立一个只有起始节点S0组成的图G,把S0放到OPEN表中;2.CLOSED:=();%建立一个CLOSED表,置为空;3.LOOP:IF OPEN=()THEN EX
13、IT(FAIL);%判断OPEN表是否为空,若为空,则问题无解,退出;4.n:=FIRST(OPEN),REMOVE(n,OPEN),ADD(n,CLOSED);%从OPEN表中取出第一个节点n放入CLOSED表。5.IF GOAL(n)THEN EXIT(SUCCESS);%如果n是目标节点,成功结束;6.EXPAND(n)mi,G:=ADD(mi,G);%扩展节点n,后继节点记为M=mi,把M加入G中;,41,7.标记和修改指针:ADD(mj,OPEN),并标记mj到n的指针;计算是否要修改mk、ml到n的指针;计算是否要修改ml到其后继节点的指针;8.对OPEN中的节点按某种原则重新排序
14、;9.GO LOOP;,42,状态空间一般搜索流程图,43,修改返回指针,原有返回指针:DCBS0修改后返回指针:DAS0,44,修改指针举例,指针返回路径:423BAS0,B,A,45,原有指针返回路径:423BAS0修改后指针返回路径:46DCS0,46,原有指针返回路径:46DCS0修改后指针返回路径:421S0,47,搜索图,在搜索过程中,生成一个图G,它是问题状态空间图的一部分。,48,搜索树:,由搜索图G中所有节点及指向父节点的反向指针所构成的集合。,49,主 要 内 容,2.1 搜索概述2.2 状态空间搜索2.3 状态空间盲目搜索2.4 状态空间启发式搜索2.5 代价树的搜索2.
15、6 与/或树搜索2.7 博弈树的启发式搜索,50,2.3 状态空间盲目搜索(参见教材53页),在搜索过程中,只按预定的搜索控制策略进行搜索,没有任何中间信息来改变搜索控制策略。由于问题本身的特性对搜索控制策略没有任何影响,使得这样的搜索带有盲目性,效率不高。只适用于解决比较简单的问题。,51,盲目搜索的方法:,主要的盲目搜索方法有:宽度(广度)优先搜索 深度优先搜索 有界深度优先搜索,52,2.3.1 宽度优先搜索(Breadth-first Search),又称为广度优先搜索,是一种盲目搜索策略。宽度优先搜索的基本思想是:从初始节点S0开始,逐层地对节点进行扩展并考察它是否为目标节点,在第n
16、层的节点没有全部扩展并考察之前,不对第n1层的节点进行扩展。OPEN表中的节点总是按进入的先后顺序排列,先进入的节点排在前面,后进入的排在后面。,53,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.EXPAND(n)mi,G:=ADD(mi,G);7.IF 目标在mi中 THEN EXIT(SUCCESS);8.ADD(OPEN,mj),并标记
17、mj 到 n 的指针;9.GO LOOP;,宽度优先搜索算法,54,宽度优先搜索算法流程图,节点n可扩展吗?,回溯求解路径,N,Y,55,2 31 8 47 6 5,1,2,5,6,7,3,目标点,8,4,9,【例】宽度优先求解八数码问题,10,11,12,13,14,15,16,17,解路径:S03817,起始点,56,宽度优先搜索的性质,当问题有解时,一定能找到解搜索效率较低方法与问题无关,具有通用性搜索得到的解是搜索树中路径最短的解(最优解)属于完备搜索策略,57,2.3.2 深度优先搜索(Depth-first Search),在深度优先搜索中,首先扩展最新产生的(即最深的)节点。深度
18、相等的节点可以任意排列。,58,深度优先搜索的基本思想,从初始节点S0开始扩展,若没有得到目标节点,则选择最后产生的子节点进行扩展,若还是不能到达目标节点,则再对刚才最后产生的子节点进行扩展,一直如此向下搜索。当到达某个子节点,且该子节点既不是目标节点又不能继续扩展时,才选择其兄弟节点进行考察。,59,深度优先搜索算法:,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
19、,CLOSED);6.EXPAND(n)mi,G:=ADD(mi,G);7.ADD(mj,OPEN),并标记mj到n的指针;8.GO LOOP;,60,深度优先搜索算法流程图,节点n可扩展吗?,回溯求解路径,N,Y,61,2 31 8 47 6 5,1,2,3,4,目标,例深度优先求解八数码问题,解路径:S0234,62,深度优先搜索的性质,一般不能保证找到最优解最坏情况时,搜索空间等同于穷举是一个通用的与问题无关的方法,63,深度优先搜索不完备问题,为了解决深度优先搜索不完备问题,避免搜索过程陷入无穷分支的死循环,提出了有界深度优先搜索方法。,64,2.3.3 有界深度优先搜索,有界深度优先
20、搜索的基本思想是:对深度优先搜索方法引入搜索深度的界限(设dm),当搜索深度达到了深度界线,而尚未出现目标节点时,就换一个分支进行搜索。,65,有界深度优先搜索算法:,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
21、中 THEN EXIT(SUCCESS);9.ADD(mj,OPEN),并标记mj到n的指针;10.GO LOOP;,66,有界深度优先搜索算法流程图,节点n可扩展吗?,N,Y,节点n的深度=dm?,Y,N,67,有界深度优先搜索的性质,不能保证找到最优解当深度限制不合理时,可能找不到解,可以将算法改为可变深度限制是不完备搜索,深度界限dm的选择很重要!,68,小 结,深度优先搜索与宽度优先搜索的区别,69,70,课 堂 练 习 题,对于如图所示的状态空间图,请给出宽度优先搜索和深度优先搜索的OPEN表和CLOSED表的变化情况。(假设N为目标状态),H,71,主 要 内 容,2.1 搜索概述
22、2.2 状态空间搜索2.3 状态空间盲目搜索2.4 状态空间启发式搜索2.5 代价树的搜索2.6 与/或树搜索2.7 博弈树的启发式搜索,72,2.4 状态空间启发式搜索(参见教材56页),2.4.1 概述,定义:利用问题自身特性信息来提高搜索效率的搜索策略,称为启发式搜索或有信息搜索。可用于指导搜索过程且与具体问题求解有关的控制信息称为启发信息。,73,启发信息的分类:,按其用途划分,启发性信息可分为以下三类:(1)用于扩展节点的选择,即用于决定应先扩展哪一个节点,以免盲目扩展。(2)用于生成节点的选择,即用于决定应生成哪些后续节点,以免盲目地生成过多无用节点。(3)用于删除节点的选择,即用
23、于决定应删除哪些无用节点,以免造成进一步的时空浪费。,74,引入启发信息的目的:,引入启发信息,在保证找到最佳解的情况下,尽可能减少搜索范围,提高搜索效率。启发信息的强度强:降低搜索工作量,但可能导致找不到最优解。弱:一般导致工作量加大,极限情况下变为盲目搜索,但可能可以找到最优解。,75,估价函数(教材P60),我们将要介绍的启发式搜索算法中,采用的启发式信息属于第一种,即决定哪个节点是下一步要扩展的节点。通常构造一个函数来表示节点要扩展的“希望”程度,称这种函数为估价函数。估价函数的任务就是估计待搜索节点的重要程度,给它们排定次序。,76,估价函数的一般形式:f(x)=g(x)+h(x),
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 搜索 求解 人工智能 导论 课件
链接地址:https://www.31ppt.com/p-3766664.html