Xie-AI-第3章-搜索原理.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Xie-AI-第3章-搜索原理.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Xie_AI_ 搜索 原理
- 资源描述:
-
1、主 讲:谢 榕 武汉大学国际软件学院第三章第三章 搜索原理搜索原理内容提要:图搜索策略盲目搜索启发式搜索u问题求解问题求解(problem solving)是人工智能中研究得较早且比较成熟的一个领域。u它涉及归约、推断、决策、规划、常识推理、定理证明和相关过程的核心概念。问题求解与搜索策略问题求解与搜索策略 现实世界中如何求解问题?u现实世界中的大多数问题都是非结构化问题,一般不存在特定的求解方法来解这样的问题,而只能利用已有的利用已有的知识知识一步一步地摸索前进。问题求解与搜索策略问题求解与搜索策略u所要解决的问题是如何寻找可利用的知识,即如何确定如何确定推理路线推理路线,才能使得在付出尽量
2、少的代价的前提下把问题圆满解决。u如果存在多条路线可实现对问题的求解,选出一条求解求解代价最小的路线代价最小的路线,以提高求解程序的运行效率。问题求解与搜索策略问题求解与搜索策略u按照一定的策略或规则,从知识库中寻找可利用的知识,从而构造出一条使问题获得解决的推理路线的过程,称为搜索搜索。u搜索包含两层含义:p要找到从初始事实到问题最终答案的一条推理路线推理路线。p所找到的这条路线是时间和空间复杂度时间和空间复杂度最小最小的求解路线。 存在何问题?问题求解与搜索策略问题求解与搜索策略u首先把适用的算符用于初始状态,以产生新的状态;然后,再把另一些适用算符用于这些新的状态;这样继续下去,直至产生
3、目标状态为止。图:十五数码难题部分状态图算符:棋子3右移或空格左移中间棋局初始棋局解题过程解题过程问题求解与搜索策略问题求解与搜索策略u若要把表示问题的整个状态空间整个状态空间都存入计算机,往往需要占据很大的存储空间,尤其是对比较复杂的问题,这几乎是不可能实现的,也无这种必要。u对于一个具体的问题,其解往往只与状态空间的一部分相关,只要计算机生成并存储与问题有关存储与问题有关的解状态空间的解状态空间部分,即可将问题解决。u“如何来生成并存储与问题有关的部分状态空间如何来生成并存储与问题有关的部分状态空间?”是人工智能所研究的搜索技术问题。是人工智能所研究的搜索技术问题。问题求解与搜索策略问题求
4、解与搜索策略盲目搜索启发性搜索图搜索策略宽度优先搜索深度优先搜索等代价搜索有序搜索A*算法有限深度优先搜索3.1 3.1 图搜索策略图搜索策略u例如:从某王姓家族的四代中找王A的后代且其寿命为X的人。王A:寿命47,有儿子王B1、王B3、王B2王B1:寿命77,有儿子王C1、王C2王B3:寿命52,有儿子王D1王B2:寿命65,有儿子王E1、王E2王F1:寿命32王G1:寿命96王C2:寿命87,有儿子王F1王D1:寿命77,没有儿子王E1:寿命57,有儿子王G1王E2:寿命92,有儿子王H1 王C1:寿命27,没有儿子王H1:寿命51图: 用图表示方法的家族表u例如X=57,用通用的图搜索策
5、略求解此问题。u为了求解问题,需要把有关的知识存储在计算机的知识库中,有以下两种存储方式。p显式存储显式存储。把与问题有关的全部状态空间图,即相应的全部有关知识(叙述性知识、过程性知识和控制性知识),都直接存入知识库,这种存储方式称为显式存储或显式图。p隐式存储隐式存储。只存储与问题求解有关的部分知识(即部分状态空间),这种存储方式称为隐式存储。在求解过程中,由初始状态出发,运用相应的知识,逐步生成所需的部分状态空间图,通过搜索推理,逐步转移到要求的目标状态,只需在知识库中存储局部状态空间图,这种图称为隐式图。 u为了节约计算机的存储容量,提高搜索推理效率,通常采用隐式存储方式,进行隐式图搜索
6、推理。关于图关于图u一个图图由结点的集合组成。结点之间由弧连接。如果弧是有方向的,则这种图称为有向图有向图。在图搜索策略中,结点描述状态,弧代表操作。u如果一条弧由结点ni指向nj,则nj称为ni的后继结点后继结点,ni称为nj的父结点父结点。u在一个图中,如果每个结点最多只有一个父节点,则这种图称为树树。树中没有父辈的结点称为根结点根结点,没有后继结点的结点成为叶结点叶结点。u树中的结点可以定义深度深度。根结点的深度定义为0,其它结点的深度定义为它的父结点的深度加1。图搜索的基本思想图搜索的基本思想u图搜索就是一种在图中寻找路径的方法在图中寻找路径的方法。u寻找过程从图中的初始节点开始,至目
7、标节点为止。其中,初始节点和目标节点分别代表产生式系统的初始数据库和满足终止条件的数据库。u方法方法:先把问题的初始状态作为当前状态,选择适用的算符对其进行操作,生成一组子状态,检查目标状态是否在其中出现。 若出现,则搜索成功,找到了问题的解。 若不出现,则按某种搜索策略从己生成的按某种搜索策略从己生成的状态中再选一个状态作为当前状态状态中再选一个状态作为当前状态。重复上述过程,直到目标状态出现或者不再有可供操作的状态及算符时为止。图搜索算法中的重要术语图搜索算法中的重要术语uOPENOPEN表表 存放刚生成的节点,作为以后待考察的对象。 OPEN表是一个“有进有出”的动态数据结构。节点进入O
8、PEN表的排列顺序(即出表的顺序)是由搜索策略决定。uCLOSEDCLOSED表表 存放将要扩展或者已经扩展的节点,记录求解中的信息。 CLOSED表是一个“有进无出”的动态数据结构,当前节点进入CLOSED表的最后。图搜索算法中的重要术语图搜索算法中的重要术语u搜索图与搜索树搜索图与搜索树p搜索过程生成一个明确的图G(称为搜索图)和一个G的子集T(称为搜索树),树T上的每个节点也在图G中。pG中的每个节点(除S外)都有一个只指向G中一个父辈节点的指针,该父辈节点就定为树中那个节点的唯一父辈节点。图搜索的一般过程图搜索的一般过程(1) 建立一个只含有起始节点S的搜索图G,把S放到一个叫做OPE
9、N的未扩展节点表中(简称OPEN表)。(2) 建立一个叫做CLOSED的已扩展节点表(简称CLOSED表),其初始为空表。(3) LOOP:若OPEN表是空表,则失败退出。(4) 选择OPEN表上的第一个节点,把它从OPEN表移出并放进CLOSED表中。称此节点为节点n,它是CLOSED表中节点的编号。(5) 若n为一目标节点,则有解并成功退出,此解是追踪图G中沿着指针从n到S这条路径而得到的(指针将在第7步中设置)。图搜索的一般过程图搜索的一般过程(6) 扩展节点n,同时生成不是n的祖先的那些后继节点的集合M。把M的这些成员作为n的后继节点添入图G中。(7) 对那些未曾在G中出现过的(即未曾
10、在OPEN表上或CLOSED表上出现过的)M成员设置一个通向n的指针。把M的这些成员加进OPEN表。对已经在OPEN或CLOSED表上的每一个M成员,确定是否需要更改通到n的指针方向。对已在CLOSED表上的每个M成员,确定是否需要更改图G中通向它的每个后裔节点的指针方向。(8) 按某一任意方式或按某个探试值,重排OPEN表。(9) GO LOOP。Figure: 图搜索过程框图图搜索方法的几点分析图搜索方法的几点分析u图搜索过程中可以对OPEN表上的节点进行排序,以便能够从中选出一个“最好”的节点作为扩展用。u这种排序可以是任意的即盲目的(属于盲目搜索),也可以是具有各种启发思想或其它准则为
11、依据(属于启发式搜索)。u图搜索策略图搜索策略p无信息搜索策略p启发式搜索策略。3.2 3.2 盲目搜索盲目搜索u无须重新安排OPEN表的搜索叫做无信息搜无信息搜索索或盲目搜索盲目搜索。u盲目搜索包括:p宽度优先搜索p深度优先搜索p等代价搜索u盲目搜索只适用于求解比较简单的问题。3.2.1 3.2.1 宽度优先搜索宽度优先搜索u宽度优先搜索(breadth-first search)u宽度优先搜索的基本思想从初始节点S开始,向下逐层搜索,在n层节点未搜索完之前,不进入n十1层搜索。同层节点的搜索次序可以任意。即先按生成规则生成第一层节点,在该层全部节点中沿宽(广)度进行横向扫描,检查目标节点S
12、g是否在这些子节点中。若没有,则再将所有第一层节点逐一扩展,得到第二层节点,并逐一检查第二层节点中是否包含有Sg,如此依次按照先生成、先检查、先扩展的原则进行下去,直至发现Sg为止。宽度优先搜索算法宽度优先搜索算法(1) 把起始节点放到OPEN表中(如果该起始节点为一目标节点,则求得一个解答)。(2) 如果OPEN是个空表,则没有解,失败退出;否则继续。(3) 把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED的扩展节点表中。(4) 扩展节点n。如果没有后继节点,则转向上述第(2)步。(5) 把n的所有后继节点放到OPEN表的末端,并提供从这些后继节点回到n的指针。(6) 如果n的
13、任一个后继节点是个目标节点,则找到一个解答,成功退出;否则转向第(2)步。Figure: 宽度优先搜索算法框图u列出下列图中树的节点访问序列以满足宽度优先搜索策略:12345671089111213宽度优先搜索:1,2,3,4,5,6,7,8,9,10,11,12,13例:八数码难题例:八数码难题u把宽度优先搜索应用于八数码难题时所生成的搜索树。2831476512384765起始棋局目标棋局u搜索树上的所有节点都标记它们所对应的状态描述,节点扩展的顺序按顺时针方向移动空格。图中最后一个节点是目标节点。Figure: 八数码难题的宽度优先搜索树u对于如图所示的图,给出宽度优先搜索的OPEN表和
14、CLOSED表的变化情况。ABCDEF GH IJKLMNOPQRSTU宽度优先搜索的宽度优先搜索的OPENOPEN表和表和CLOSEDCLOSED表表OPEN=A;CLOSED=OPEN=A;CLOSED=OPEN=B,C,D;CLOSED=AOPEN=B,C,D;CLOSED=AOPEN=C,D,E,F;CLOSED=B,AOPEN=C,D,E,F;CLOSED=B,AOPEN=D,E,F,G,H;CLOSED=C,B,AOPEN=D,E,F,G,H;CLOSED=C,B,AOPEN=E,F,G,H,I,J;CLOSED=D,C,B,AOPEN=E,F,G,H,I,J;CLOSED=D,C
15、,B,AOPEN=F,G,H,I,J,K,L;CLOSED=E,D,C,B,AOPEN=F,G,H,I,J,K,L;CLOSED=E,D,C,B,AOPEN=G,H,I,J,K,L,M;CLOSED=F,E,D,C,B,AOPEN=G,H,I,J,K,L,M;CLOSED=F,E,D,C,B,AOPEN=H,I,J,K,L,M,N;CLOSED=G,F,E,D,C,B,AOPEN=H,I,J,K,L,M,N;CLOSED=G,F,E,D,C,B,A 以此类推直到找到目标或OPEN=宽度优先搜索方法分析宽度优先搜索方法分析u宽度优先搜索是图搜索一般过程的特殊情况,是将OPEN表作为“先进先出”的
16、队列进行操作。u能够保证在搜索树中找到一条通向目标节点的最短途径。u这棵搜索树提供了所有存在的路径(如果没有路径存在,那么对有限图来说,该法失败退出;对于无限图来说,则永远不会终止)。3.2.2 3.2.2 深度优先搜索深度优先搜索u深度优先搜索(depth-first search)。u深度优先搜索基本思想Figure:深度优先搜索示意图从初始节点S开始,按生成规则生成下一级各子节点,检查是否出现目标节点Sg。若未出现,则按“最晚生成的子节点优先扩展”的原则,再用生成规则生成再下一级的子节点,再检查是否出现Sg。如此下去,沿着最晚生成的子节点分枝,逐级“纵向”深入搜索。深度优先搜索出现的问题
17、深度优先搜索出现的问题u在深度优先搜索法中,若目标节点Sg恰好处在最晚生成的子节点分枝树中,则可以较快地求得问题的解,效率比宽度优先搜索法高。u但是,若误陷入无穷分枝,进入“死循环死循环”,则搜索过程无法收敛,不能找到目标节点。图:无深度界限有限深度有先搜索有限深度优先搜索有限深度优先搜索u为了改进深度优先搜索法,以免搜索过程嵌入无穷分枝的死循环,可以引入搜索深度界限搜索深度界限(设为dm )。当沿“最晚”分枝纵向搜索,达到深度dm时,尚未出现目标节点Sg,则返回,对“次晚”分枝搜索,如此按有限深度(d=dm)搜索下去,直到找到目标节点Sg为止。图:有深度界限有限深度优先搜索算法有限深度优先搜
18、索算法(1) 把起始节点S放到未扩展节点OPEN表中。如果此节点为一目标节点,则得到一个解。(2) 如果OPEN为一空表,则失败退出。(3) 把第一个节点(节点n)从OPEN表移到CLOSED表。(4) 如果节点n的深度等于最大深度,则转向(2)。(5) 扩展节点n,产生其全部后裔,并把它们放入OPEN表的前端。如果没有后裔,则转向(2)。(6) 如果后继节点中有任一个为目标节点,则求得一个解,成功退出;否则,转向(2)。33Figure: 有界深度优先搜索算法框图u列出下列图中树的节点访问序列以满足深度优先搜索策略:12345671089111213深度优先搜索:1,2,5,6,10,11,
19、3,7,12,13,4,8,9例:八数码难题例:八数码难题u按深度优先搜索生成八数码难题搜索树,设深度界限为5。2831476512384765起始棋局目标棋局Figure: 八数码难题的深度优先搜索树u对于如图所示的图,给出深度优先搜索的OPEN表和CLOSED表的变化情况。ABCDEF GH IJKLMNOPQRSTU深度优先搜索的深度优先搜索的OPENOPEN表和表和CLOSEDCLOSED表表OPEN=A;CLOSED=OPEN=A;CLOSED=OPEN=B,C,D;CLOSED=AOPEN=B,C,D;CLOSED=AOPEN=E,F,C,D;CLOSED=B,AOPEN=E,F,
20、C,D;CLOSED=B,AOPEN=K,L,F,C,D;CLOSED=E,B,AOPEN=K,L,F,C,D;CLOSED=E,B,AOPEN=S,L,F,C,D;CLOSED=K,E,B,AOPEN=S,L,F,C,D;CLOSED=K,E,B,AOPEN=L,F,C,D;CLOSED=S,K,E,B,AOPEN=L,F,C,D;CLOSED=S,K,E,B,AOPEN=T,F,C,D;CLOSED=L,S,K,E,B,AOPEN=T,F,C,D;CLOSED=L,S,K,E,B,AOPEN=F,C,D;CLOSED=T,L,S,K,E,B,AOPEN=F,C,D;CLOSED=T,L,S
21、,K,E,B,A以此类推直到找到目标或OPEN=3.2.3 3.2.3 等代价搜索等代价搜索u有些问题并不要求有应用算符序列为最少的解,而是要求具有某些特性的解。等代价搜索 = 宽度优先搜索 + 最小代价u搜索树中每条连接弧线上的有关代价以及随之而求得的具有最小代价的解答路径具有最小代价的解答路径,与许多这样的广义准则相符合。u宽度优先搜索可被推广用来解决这种寻找从起始状态至目标状态的具有最小代价的路径问题,这种推广了的宽度优先搜索算法叫做等代价搜索算等代价搜索算法法。等代价搜索中的记号等代价搜索中的记号u起始节点起始节点记为S S。u从节点i到它的后继节点j的连接弧线代价记为c(i,j)c(
22、i,j)。u从起始节点S到任一节点i的路径代价记为g(i)g(i)。在搜索树上,我们假设g(i)也是从起始节点S到节点i的最少代价路径上的代价,因为它是唯一的路径。等代价搜索算法等代价搜索算法(1) 把起始节点S放到未扩展节点表OPEN中。如果此起始节点为一目标节点,则求得一个解;否则令g(S)=0。(2) 如果OPEN是个空表,则没有解而失败退出。(3) 从OPEN表中选择一个节点i,使其g(i)为最小。如果有几个节点都合格,那么就要选择一个目标节点作为节点i(要是有目标节点的话);否则,就从中选一个作为节点i。把节点i从OPEN表移至扩展节点表CLOSED中。(4) 如果节点i为目标节点,
展开阅读全文