人工智能课件第3章搜索策略.ppt
《人工智能课件第3章搜索策略.ppt》由会员分享,可在线阅读,更多相关《人工智能课件第3章搜索策略.ppt(219页珍藏版)》请在三一办公上搜索。
1、2022/12/27,1,第3章 搜索策略,问题求解系统划分为两大类知识贫乏系统 依靠搜索技术解决问题 知识贫乏、缺乏针对性效率低 知识丰富系统 依靠推理技术解决问题基于丰富知识的推理技术,直截了当 效率高,2022/12/27,2,3.1 引言,对于给定的问题,智能系统的行为一般是找到能够达到所希望目标的动作序列,并使其所付出的代价最小、性能最好。基于给定的问题,问题求解的第一步是目标的表示。搜索就是找到智能系统的动作序列的过程。,2022/12/27,3,和通常的搜索空间不同,人工智能中大多数问题的状态空间在问题求解之前不是全部知道的。,在人工智能中,搜索问题一般包括两个重要的问题:,搜索
2、什么搜索什么通常指的就是目标。在哪里搜索在哪里搜索就是“搜索空间”。搜索空间通常是指一系列状态的汇集,因此称为状态空间。,2022/12/27,4,所以,人工智能中的搜索可以分成两个阶段:状态空间的生成阶段在该状态空间中对所求问题状态的搜索,搜索可以根据是否使用启发式信息分为盲目搜索启发式搜索,2022/12/27,5,盲目搜索 只是可以区分出哪个是目标状态。 一般是按预定的搜索策略进行搜索。 没有考虑到问题本身的特性,这种搜索具有很大的盲目性,效率不高,不便于复杂问题的求解。,启发式搜索是在搜索过程中加入了与问题有关的启发式信息,用于指导搜索朝着最有希望的方向前进,加速问题的求解并找到最优解
3、。,2022/12/27,6,根据问题的表示方式分为状态空间搜索与或树搜索,状态空间搜索是用状态空间法来求解问题所进行的搜索,与/或树搜索是指用问题规约方法来求解问题时所进行的搜索。,2022/12/27,7,考虑一个问题的状态空间为一棵树的形式。宽度优先搜索深度优先搜索,如果根节点首先扩展,然后是扩展根节点生成的所有节点,然后是这些节点的后继,如此反复下去。,在树的最深一层的节点中扩展一个节点。只有当搜索遇到一个死亡节点(非目标节点并且是无法扩展的节点)的时候,才返回上一层选择其他的节点搜索。,2022/12/27,8,无论是宽度优先搜索还是深度优先搜索,遍历节点的顺序一般都是固定的,即一旦
4、搜索空间给定,节点遍历的顺序就固定了。这种类型的遍历称为“确定性”的,也就是盲目搜索。对于启发式搜索,在计算每个节点的参数之前无法确定先选择哪个节点扩展,这种搜索一般也称为非确定的。,2022/12/27,9,完备性:如果存在一个解答,该策略是否保证能够找到?时间复杂性:需要多长时间可以找到解答?空间复杂性:执行搜索需要多少存储空间?最优性:如果存在不同的几个解答,该策略是否可以发现最高质量的解答?,搜索策略评价标准:,2022/12/27,10,有许多智力问题(如梵塔问题、旅行商问题、八皇后问题、农夫过河问题等)和实际问题(如路径规划、机器人行动规划等)都可以归结为状态空间搜索。,用状态空间
5、搜索来求解问题的系统均定义一个状态空间,并通过适当的搜索算法在状态空间中搜索解答路径。,3.2 基于状态空间的搜索技术,2022/12/27,11,3.2.1 图搜索的基本概念,显式图与隐式图 显式图把问题有关的全部状态空间图,即相应的全部有关知识(叙述性知识、过程性知识和控制性知识),都直接存入知识库 隐式图只存储与问题求解有关的部分知识(即部分状态空间)。这种存储方式称为隐式存储。,2022/12/27,12,图搜索的基本思想 图搜索-一种在图中寻找路径的方法 从图中的初始节点开始,至目标节点为止。初始节点和目标节点分别代表产生式系统的初始数据库和满足终止条件的数据库。方法:把问题的初始状
6、态作为当前状态,选择适用的算符对其进行操作,生成一组子状态,检查目标状态是否在其中出现。若出现,则搜索成功,找到了问题的解;若不出现,则按某种搜索策略从已生成的状态中再选一个状态作为当前状态。重复上述过程,直到目标状态出现或者不再有可供操作的状态及算符时为止。,2022/12/27,13,3.2.2状态空间搜索1.什么是状态空间图,例:钱币翻转问题 设有3个钱币,其初始状态为(反、正、反),欲得的目标状态为(正、正、正)或(反、反、反)。问题是允许每次只能且必须翻转一个钱币,连翻三次。问能否达到目标状态。 引入一个三维变量将问题表示出来。设三维变量为:Q=q1,q2,q3,式中qi (i=1,
7、2,3)=0表示钱币为正面,qi (i=1,2,3)=1表示钱币为反面。三个钱币可能出现的状态有8种组合: Q0=(0,0,0),Q1=(0,0,1),Q2=(0,1,0),Q3=(0,1,1),Q4=(1,0,0),Q5=(1,0,1), Q6=(1,1,0), Q7=(1,1,1)。,2022/12/27,14,三枚钱币问题的状态空间图,2022/12/27,15,3.2.2状态空间搜索2.问题的状态空间表示法,(1)状态空间的表示状态空间记为SP,可表示为二元组:SP=(S,O)S问题求解(即搜索)过程中所有可能到达的合法状态构成的集合;O操作算子的集合,操作算子的执行会导致问题状态的变
8、迁 ;状态用于记载问题求解(即搜索)过程中某一时刻问题现状的快照;抽象为矢量形式 Q=q0,q1,qnT每个元素qi称为状态分量 给定每个状态分量qi的值就得到一个具体的状态 Qk=q0k,q1k,qnkT,2022/12/27,16,状态,表示状态的变迁,操作算子,问题的状态空间是一个表示该问题的全部可能状态及其变迁的有向图。,节点状态有向弧状态的变迁 弧上的标签导致状态变迁的操作算子,用状态空间搜索来求解问题的系统均定义一个状态空间,并通过适当的搜索算法在状态空间中搜索解答路径。,2022/12/27,17,3.2.2状态空间搜索2.问题的状态空间表示法,(2)状态空间表示的经典例子“传教
9、士和野人问题”问题的描述:N个传教士带领N个野人划船过河;3个安全约束条件:1)船上人数不得超过载重限量,设为K个人; 2)任何时刻(包括两岸、船上)野人数目不得超过传教士; 3)允许在河的某一岸或者在船上只有野人而没有传教士;,2022/12/27,18,3.2.2状态空间搜索2.问题的状态空间表示法,(2)状态空间表示的经典例子“传教士和野人问题” 特例:N=3,K=2 状态分量m传教士在左岸的实际人数状态分量c野人在左岸的实际人数状态分量b指示船是否在左岸(1、0)3个安全约束条件m c (左岸安全)且 N-m N-c(右岸安全);m=0且0c N (左岸没有传道士,右岸一定安全);N-
10、m=0且0N-cN (右岸没有传道士,左岸一定安全);,2022/12/27,19,设初始状态下传教士、野人和船都在左岸,目标状态下这三者均在右岸,问题状态以(m,c,b)表示。,问题的求解任务可描述为:(3,3,1) (0,0,0)该简单问题可能到达的合法状态:可能状态总数:442=32根据条件得出合法状态:20m c 且 N-m N-c (左岸安全且右岸安全)m=1,c=1;m=2,c=2 m=0且0c N(左岸没有传道士)m=0,c=0,1,2,3 N-m=0且0N-cN(右岸没有传道士)m=3,c=0,1,2,3不可能到达的合法状态:(0,0,1),(0,3,0),(3,0,1),(3
11、,3,0)可能到达的合法状态共16个,2022/12/27,20,3.2.2状态空间搜索2.问题的状态空间表示法,(2)状态空间表示的经典例子“传教士和野人问题”定义2类操作算子:L(x,y)指示从左岸到右岸的划船操作 R(x,y)指示从右岸到左岸的划船操作x + y K=2(船的载重限制);x和y取值的可能组合只有5个10,20,11,01,02 ( 允许在船上只有野人而没有传教士 )共有10个操作算子,2022/12/27,21,渡河问题的状态空间有向图,2022/12/27,22,3.2.2状态空间搜索 3.状态空间搜索的基本思想,由此例可以看出用状态空间方法表示问题时,首先必须定义状态
12、的描述形式,通过使用这种描述形式可把问题的一切状态都表示出来。另外,还要定义一组操作,通过使用这些操作可把问题由一种状态转变为另一种状态。 问题的求解过程是一个不断把操作作用于状态的过程。如果在使用某个操作后得到的新状态是目标状态,就得到了问题的一个解。这个解是从初始状态到目标状态所用操作构成的序列。,2022/12/27,23,3.2.2状态空间搜索 3.状态空间搜索的基本思想,由此例可以看出要使问题由一种状态转变到另一种状态时,就必须使用一次操作。这样,在从初始状态转变到目标状态时,就可能存在多个操作序列(即得到多个解)。那么,其中使用操作最少或较少的解才为最优解(因为只有在使用操作时所付
13、出的代价为最小的解才是最优解)。 对其中的某一个状态,可能存在多个操作使该状态变到几个不同的后继状态那么到底用哪个操作进行搜索呢?这就有赖于搜索策略了不同的搜索策略有不同的顺序,这就是本章后面要讨论的问题。,2022/12/27,24,例:在一个33的方格棋盘上放置着1,2,3,4,5,6,7,8八个数码,每个数码占一格,且有一个空格。这些数码可在棋盘上移动,其移动规则是:与空格相邻的数码方可移入空格。现在的问题是:对于指定的初始棋局和目标棋局,给出数码的移动序列。该问题称为八数码问题。,初始棋局,目标棋局,2022/12/27,25,2 31 8 47 6 5,2022/12/27,26,3
14、.2.3 一般图的搜索算法,或图(一般图)一个状态可以有多个可供选择的操作算子;操作算子间的选择是一种“或”的关系;这样的有向图称为或图。,2022/12/27,27,或图(一般图)一个状态可以有多个可供选择的操作算子;操作算子间的选择是一种“或”的关系,这样的有向图称为或图。状态空间一般都表示为或图(一般图)搜索图在搜索解答路径的过程中画出搜索时涉及到的节点和弧线,构成所谓的搜索图。,状态空间搜索,一般图搜索,3.2.3 一般图的搜索算法,2022/12/27,28,符号说明:s-初始状态节点G-搜索图OPEN-存放待扩展节点的表CLOSE-存放已被扩展的节点的表MOVE-FIRST(OPE
15、N)-取OPEN表首的节点作为当前要被扩展的节点n,同时将节点n移至CLOSE表一般图搜索算法划分为二个阶段:1、初始化 2、搜索循环,一般图搜索算法,2022/12/27,29,算法划分为二个阶段:1、初始化 建立只包含初始状态节点s的搜索图G:=sOPEN:=sCLOSE:= 2、搜索循环MOVE-FIRST(OPEN)-取出OPEN表首的节点n作为扩展的节点,同时将其移到close表 扩展出n的子节点,插入搜索图G和OPEN表 适当的标记和修改指针排序OPEN表通过循环地执行该算法,搜索图G会因不断有新节点加入而逐步长大,直到搜索到目标节点。,一般图搜索算法,2022/12/27,30,
16、以下面的八数码为例,看一般图的搜索算法,初始布局,目标布局,2022/12/27,31,2022/12/27,32,2022/12/27,33,2022/12/27,34,2022/12/27,35,2022/12/27,36,2022/12/27,37,2022/12/27,38,2022/12/27,39,2022/12/27,40,2022/12/27,41,2022/12/27,42,2022/12/27,43,2022/12/27,44,2022/12/27,45,2022/12/27,46,2022/12/27,47,2022/12/27,48,2022/12/27,49,2022
17、/12/27,50,节点n扩展后的子节点分为3类:(i)全新节点(ii)已出现在OPEN表中的节点(iii)已出现的CLOSE表中的节点指针标记和修改的方法:(i)类节点:加入OPEN表,建立从子节点到父节点n的指针(ii)类节点、 (iii)类节点比较经由老父节点、新父节点n到达初始状态节点的路径代价 经由节点n的代价比较小,则移动子节点指向老父节点的指针,改为指向新父节点n (iii)类节点还得从CLOSE表中移出,重新加入OPEN表。,一般图搜索算法搜索过程中的指针修改,2022/12/27,51,S,n4,ni,nj,n1,n2,n3,n31,n32,节点ni是当前扩展的节点;扩展出4
18、个后续节点;n1、n2是新节点,只需建立指向父节点的指针,并加入OPEN表;,2022/12/27,52,S,n4,ni,nj,n1,n2,n3,n31,n32,n4已经存在于OPEN表,并且已有父节点njn4经nj的路径代价大取消n4指向nj的指针改为建立n4指向新父节点ni的指针n3已经存在于CLOSE表,并且已有父节点nj需要做和n4同样的比较和指针修改工作。并且要重新加入open表。,2022/12/27,53,3.3 盲目搜索,一般图搜索算法中,提高搜索效率的关键在于优化OPEN表中节点的排序方式 。若每次排在表首的节点都在最终搜索到的解答路径上,则算法不会扩展任何多余的节点就可快速
19、结束搜索。 一种简单的排序策略就是按预先确定的顺序或随机地排序新加入到OPEN表中的节点,常用的方式是深度优先和宽度优先。,2022/12/27,54,3.3.1 宽度优先搜索,OPEN表中节点简单的排序方式:宽度优先扩展当前节点后生成的子节点总是置于OPEN表的后端,即OPEN表作为队列,先进先出,使搜索优先向横向方向发展。,2022/12/27,55,宽度优先实例,2 31 8 47 6 5,1,2,5,6,7,3,目标,8,4,9,10,11,12,13,14,15,16,17,2022/12/27,56,宽度优先搜索,如果搜索是以接近起始节点的程度依次扩展节点的,那么这种搜索就叫做宽度
20、优先搜索。这种搜索是逐层进行的,在对下一层的任意节点进行搜索之前,必须搜索完本层的所有节点。“先产生的节点先扩展”,2022/12/27,57,(1)把初始节点S0,放入OPEN表。(2)如果OPEN表为空。则问题无解,失败并退出。(3)把OPEN表中的第一个节点取出放入CLOSE表中,并按顺序冠以编号n;(4)考察节点n是否为目标节点。若是,则求得了问题的解,成功并退出。(5)若节点n不可扩展,则转第(2)步;(6)扩展节点n,将其子节点放到OPEN表的尾部,并为每一个子节点都配置指向父节点的指针,然后转第(2)步。,采用队列结构,宽度优先过程如下:,2022/12/27,58,宽度优先搜索
21、算法原理:如果当前的节点不是目标节点,则把当点节点的子孙以任意顺序增加到队列的后面,并把队列的前端元素定义为current。如果目标发现,则算法终止。,2022/12/27,59,例:挪动积木问题 如图所示:通过挪动积木块,希望从初始状态达到一个目的状态,即三块积木堆叠在一起。积木A在顶部,积木B在顶中间,积木C在底部。请画出按照宽度优先搜索策略所产生的搜索树。,2022/12/27,60,积木问题的宽度优先搜索树,2022/12/27,61,宽度优先搜索的性质,当问题有解时,一定能找到解当问题为单位代价时,且问题有解时,一定能找到最优解方法与问题无关,具有通用性效率较低属于图搜索方法,202
22、2/12/27,62,宽度优先搜索是一种盲目搜索,时间和空间复杂度都比较高,当目标节点距离初始节点较远时会产生许多无用的节点,搜索效率低。宽度优先搜索中,时间需求是一个很大的问题,特别是当搜索的深度比较大时,尤为严重,但是空间需求是比执行时间更严重的问题。,宽度优先搜索优点:目标节点如果存在,用宽度优先搜索算法总可以找到该目标节点,而且是最小(即最短路径)的节点。,宽度优先搜索的优点和缺点,2022/12/27,63,OPEN表中节点简单的排序方式:深度优先扩展当前节点后生成的子节点总是置于OPEN表的前端,即OPEN表作为栈,后进先出,使搜索优先向纵深方向发展。,3.3.2 深度优先搜索,2
23、022/12/27,64,深度优先实例,2 31 8 47 6 5,1,2,3,4,6,8,9,11,13,14,16,18,19,目标,5,7,10,12,15,17,20,21,2022/12/27,65,深度优先搜索,在深度优先搜索中,首先扩展最新产生的(最深的)节点,深度 相等的节点可以任意排列。“最晚产生的节点最先扩展”,起始节点深度为0 任何其他节点的深度等于其父辈节点深度加上1 :dn=dn-1+1,2022/12/27,66,深度优先搜索,很明显这样做,不一定找到最佳解,而且由于深度的限制,可能找不到解,然而,若不加深度限制,可能沿着一条路线无限制地扩展下去,这当然是不允许的。
24、为保证找到解,应选择适当的深度界限,或者采取不断加大深度界限的办法,反复搜索,直到找到解。这种改进的方法叫做迭代加深搜索。,2022/12/27,67,1)把初始节点S0放入OPEN表; (2)如果OPEN表为空,则问题无解,失败并退出。 (3)把OPEN表中的第一个节点取出放入CLOSE表中,并按顺序冠以编号n; (4)考察节点n是否为目标节点。若是,则求得了问题的解,成功并退出。 (5)若节点n不可扩展,则转第(2)步; (6)扩展节点n,将其予节点放到OPEN表的首部,并为其配置指向父节点的指针,然后转第(2)步。,基于栈实现的深度优先搜索流程:,2022/12/27,68,初始节点放到
25、栈中,栈指针指向栈的最上边的元素。为了对该节点进行检测,需要从栈中弹出该节点,如果是目标,该算法结束,否则把其子节点以任何顺序压入栈中。该过程直到栈变成为空。遍历一棵树的过程(下图)。,2022/12/27,69,例:卒子穿阵问题 一卒子从顶部通过图所示的列阵到达底部。要求卒子行进中不可进入到代表敌兵驻守的区域内,并不准后退。假定限制值为5。请画出按照深度优先搜索策略所产生的搜索树。,2022/12/27,70,卒子穿阵问题的深度优先搜索树,2022/12/27,71,深度优先搜索的性质,一般不能保证找到最优解当深度限制不合理时,可能找不到解,可以将算法改为可变深度限制最坏情况时,搜索空间等同
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能 课件 搜索 策略
链接地址:https://www.31ppt.com/p-1946451.html