第四章一般搜索原理优秀PPT.ppt
《第四章一般搜索原理优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第四章一般搜索原理优秀PPT.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章一般搜索原理第一页,本课件共有51页一般搜索原理一般搜索原理 n前面研究的知识表示方法是问题求解所必需的。前面研究的知识表示方法是问题求解所必需的。表示问题是为了进一步解决问题。从问题表示到表示问题是为了进一步解决问题。从问题表示到问题的解决,有个求解的过程。也就是搜索过程。问题的解决,有个求解的过程。也就是搜索过程。在这一过程中,采用适当的搜索技术,包括各种在这一过程中,采用适当的搜索技术,包括各种规则、过程和算法等推理技术,力求找到问题的规则、过程和算法等推理技术,力求找到问题的解答。本章讨论一些早期的搜索技术或用于解决解答。本章讨论一些早期的搜索技术或用于解决比较简单问题的搜索原理
2、。比较简单问题的搜索原理。第二页,本课件共有51页n 从本节起,我们将要研究如何通过网络寻找路径,进而求解问题。我们还将学习宽度优先搜索和深度优先搜索,它们均属于盲目搜索方法。盲目搜索又叫做无信息搜索,一般只适用于求解比较简单的问题。n1.一般搜索过程n 对于一个具体问题,如如何生成它所需要的部分状态空间从而实现对问题的求解呢?在人工智能中是通过运用搜索技术来解决这一问题的。n 其基本思想是:首先把问题的初始状态(即初始节点)作为当前状态,选择适用的算符对其进行操作,生成一组子状态(或称为后继状态,后继节点,子节点),然后检查目标状态是否在其中出现。若出现,则搜索成功,找到了问题的解;若不出现
3、,则按某种搜索策略从已生成的状态中再选出一个状态作为当前状态。重复上述过程,直到目标状态出现或者不再有可供操作的状态及算符时为止。盲目搜索盲目搜索第三页,本课件共有51页解;若不出现,则按某种搜索策略从已生成的状态中再选出一个状态作为当前状态。重复上述过程,直到目标状态出现或者不再有可供操作的状态及算符时为止。下面列出状态空间的一般搜索过程。搜索过程中要用到两个数据结构(OPEN表与CLOSED表)。OPEN表用于存放刚生成的节点。CLOSED表用于存放将要扩展或者已扩展的节点。(所谓对一个节点进行“扩展”是指:用合适的算符对该节点进行操作,生成一组子节点。)第五页,本课件共有51页第六页,本
4、课件共有51页搜索的一般过程如下:(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成员,确定是
5、否需要修改它指向父节点的指针。第七页,本课件共有51页 对于那些先前已在G中出现并已经扩展了的M成员,确定是否需要修改其后继节点指向父节点的指针。(7)按某种搜索策略对OPEN表中的节点进行排序 (8)转第(2)步。说明:(1)上述过程是状态空间的一般搜索过程,具有通用性,在此之后讨论的各种搜索策略都可以看作它的一个特例。各种搜索策略的主要区别是对OPEN表中节点排序的准则不同。例如:宽度优先搜索则把后生成的子节点排在前面。(2)一个节点经一个算符操作后一般只生成一个子节点,但适用于一个节点的算符可能有多个,此时就会生成一组子节点。在这些子节点中可能有些是当前扩展节点(即节点n)的父节点,祖父
6、节点等,此时不能把这些先辈节点作为当前扩展节点的子节点。余下的子节点记为集合M,并加入圈G中。这就是第(5)步要说明的意思。第八页,本课件共有51页 (3)一个新生成的节点,它可能是第一次被生成的节点,也可能是先前已作为被生成,当前又作为另一个节点的后继节点被再次生成。此时,它究竟应作为哪个节点的后继节点呢?一般由原始节点到该节点路径上所付出的代价来决定,哪条路径付出的代价最下,相应当节点就作为它的父节点。这就是搜索过程第(6)步所阐述的内容。由于盲目搜索仅适用于其状态空间是树状结构的问题,因此对盲目搜索而言,不会出现一般搜索过程第(6)步中两点的问题,每个节点经扩展后生成的子节点都是第一次出
7、现的节点,不必检查并修改指针方向。(4)通过搜索所得到的图称为搜索图,由搜索图中的所有节点及反向指针(在第(6)步形成的指向父节点的指针)所构成的集合是一颗树,称为搜索树。第九页,本课件共有51页 (5)在搜索过程中,一旦某个被考虑的节点是目标节点(第(4)步)就得到一个解。该解是由从初始节点到该目标节点上的算符构成的,而路径由第(6)步形成的反向指针指定。(6)如果在搜索中一直找不到目标节点,而且OPEN表中不再有可供扩展的节点,则搜索失败,在第(2)步退出。上述搜索过程可以看出,问题的求解过程实际上就是搜索过程,问题求解状态空间图是通过搜索逐步形成的,边搜索边形成,而且搜索每前进一步,就要
8、检查一下是否到达了目标状态,这样就可能尽量少生成与问题求解无关的状态,既节省了存储空间,又提高了求解效率。第十页,本课件共有51页2.2.宽度优先搜索宽度优先搜索 如果搜索是以接近起始节点的程度依次扩展节点的,那么这种搜索就叫做宽度优先搜索 (breadth-first search)。基本思想:从初始节点S0开始,逐层地对节点进行扩展并考察它是否为目标节点,在第n层的节点没有全部扩展并考察之前,不对第n+1层的节点进行扩展。OPEN表中的节点总是按进入的先后顺序排序列,先进入的节点排在前面,后进入的排在后面。其搜索过程如下:(1)把起始节点S0放到OPEN表中。(2)如果OPEN是个空表,则
9、问题没有解,退出,否则继续。(3)把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED表。第十一页,本课件共有51页(4)扩展节点n是否为目标节点。若是,则求得了问题的解退出。(5)若节点n不可扩展,则转第(2)步。(6)扩展节点n,将其子节点放入OPEN表的尾部,并为每个子节点都配置指向父节点的指针,然后转第(2)。第十二页,本课件共有51页宽度优先搜索流程第十三页,本课件共有51页 这一算法假定起始节点本身不是目标节点。要检验起始节点是目标节点的可能性,只要在第(1)步的未了,加上一句“如果起始节点为一目标节点,则求得一个解答”即可做到,正如第(1)步括号内所写的。这个过程产生的
10、节点和指针构成一棵隐式定义的状态空间树的子树我们称它为搜索树。显而易见宽度优先搜索方法能够保证在搜索树中找到一条通向目标节点的最短途径;这棵搜索树提供了所有存在的路径(如果没有路径存在,那么对有限图来说,我们就说该法失败退出;对于无限图来说,则永远不会终止)。图3.4绘出把宽度优先搜索应用于八数码难题时所生成的搜索树。这个问题就是要把初始棋局变为如下目标棋局的问题:第十五页,本课件共有51页1 2 38 47 6 5 搜索树上的所有节点都标记它们所对应的状态描述,每个节点旁边的数字表示节点扩展的顺序(按顺时针方向移动空格)。图3.4中的第27个节点是目标节点。第十六页,本课件共有51页第十七页
11、,本课件共有51页例:设有三个大小不等的圆盘A,B,C套在一根轴上,每个圆盘上都有数字1,2,3,4,并且每个圆盘都可独立地绕轴做逆时针转动,每次转动90度,其初始状态S0和目标状态S9如图所示,用广度优先所所思求出从S0到S9的路径。第十八页,本课件共有51页3.深度优先搜索 基本思想:从初始节点S0开始选择一个节点进行考察,若不是目标节点,则再在该节点的子节点选择一个节点进行考察,一直如此向下搜索。当到达某个子节点,且该子节点既不是目标节点又不能继续扩展时,才选择其它节点进行考察。深度优先搜索与宽度优先搜索唯一区别:宽度优先搜索是将节点n的子节点放入OPEN表的尾部,而深度优先搜索是把节点
12、n的子节点放入OPEN表的首部。仅次一点不同,就使得搜索的路径完全不一样。在深度优先搜索中,搜索一旦进入某个分支,就将沿着该分支一直向下搜索。如果目标节点在此分支上,则可较快地得到解。但是,如果目标节点不在此分支上,而该分支又是一个无穷分支,则就不可能得到解。所以深度优先搜索是不完备的,即使问题有解,它也不一定能求得解。第十九页,本课件共有51页第二十页,本课件共有51页n在深度优先搜索中,在深度优先搜索中,n我们首先扩展最新产生的我们首先扩展最新产生的(即最深的即最深的)节点,节点,深度相等的节点可以任意排列。深度相等的节点可以任意排列。n我们定义节点的深度如下;我们定义节点的深度如下;n
13、(1)起始节点起始节点(即根节点即根节点)的深度为的深度为0。n (2)任何其它节点的深度等于其父辈节点任何其它节点的深度等于其父辈节点n深度加上深度加上1。第二十一页,本课件共有51页为了解决深度优先搜索不完备的问题,避免搜索过程陷入无穷分支的死循环,提出了有界深度优先搜索方法。有界深度优先搜索的基本思想:对深度优先搜索引入搜索深度的界限(设为dm),当搜索深度达到了深度界限,而尚未出现目标节点时,就换一个分支进行搜索。如果问题有解,且其路径长度dm,则上述搜索过程一定能求得解。但是,若解的路径长度dm,则搜索过程就得不到解。这说明在有界深度优先搜索中,深度界限的选择是很重要的。但这并不是说
14、深度界限越大越好,因为当dm太大时,搜索时将会产生许多无用的子节点,既浪费计算机的存储空间与时间,又降低了搜索效率。第二十二页,本课件共有51页n含有深度界限的深度优先搜索算法如下:含有深度界限的深度优先搜索算法如下:n (1)把起始节点把起始节点S放到末扩展节点放到末扩展节点OPEN表中。如果此节表中。如果此节点为一个目标节点,则得到一个解。点为一个目标节点,则得到一个解。n (2)如果如果OPEN为一空表,则失败退出。为一空表,则失败退出。n (3)把第一个节点把第一个节点(节点节点n)从从OPEN表移到表移到CLOSED表。表。n (4)如果节点如果节点n的深度等于最大深度,则转向的深度
15、等于最大深度,则转向(2)。n (5)扩展节点扩展节点n,产生其全部后裔,并把它们故入,产生其全部后裔,并把它们故入OPEN表的前头。如果没有后裔,表的前头。如果没有后裔,Rn转向转向(2)。n(6)如果后继节点中有任一个为目标节点则求得一个解,成如果后继节点中有任一个为目标节点则求得一个解,成功退出;否则,转向功退出;否则,转向(2)。n有界深度优先搜索算法的程序框图见图有界深度优先搜索算法的程序框图见图 第二十三页,本课件共有51页第二十四页,本课件共有51页 由于解的路径长度事先难预测,所以要恰当地给出dm的值是比较困难的。另外,即使能求出解,它也一定是最优解。为此,可采用下述方法进行改
16、进:先任意给定一个较小的数作为dm,然后进行上述的有界深度优先搜索,当搜索达到了指定的深度界限dm仍未发现目标节点,并且CLOSED表中仍有待扩展节点时,就将这些节点送回OPEN表,同时增大深度界限dm,继续向下搜索。如此不断增大dm,只要问题有解,就一定可以找到它。但是此时找到的解不一定是最优解。为找到最优解,可增设一个表(R),每找到一个目标节点后,就把它放入到R的前面,并令dm等于该目标节点所对应的路径长度,然后继续搜索。由于后求得的解的路径长度不会超过先求得的解的路径长度,所以最后求得的解一定是最优解。第二十五页,本课件共有51页第二十六页,本课件共有51页下面绘出按深度优先搜索生成的
17、八数码难题搜索树,下面绘出按深度优先搜索生成的八数码难题搜索树,其中,我们设置深度界限为其中,我们设置深度界限为5。粗线条的路径表明含有。粗线条的路径表明含有5条应用规则的一个解。从图可见,深度优先搜索过程条应用规则的一个解。从图可见,深度优先搜索过程是沿着一条路径进行下去,宜到深度界限为止,然后是沿着一条路径进行下去,宜到深度界限为止,然后再考虑只有最后一步有差别的相同深度或较浅深度可再考虑只有最后一步有差别的相同深度或较浅深度可供选择的路径,接着再考虑最后两步有差别的那些路供选择的路径,接着再考虑最后两步有差别的那些路径,等等。径,等等。第二十七页,本课件共有51页第二十八页,本课件共有5
18、1页4.等代价搜索(推广的宽度优先搜索)有些问题并不要求有应用算符序列为最少的解,而是要求具有某些特性的解。搜索树中每条连接弧线上的有关代价以及随之而求得的具有员小代价的解答路径,与许多这样的广义准则相符合。宽度优先搜索可被推广用来解决这种寻找从起始状态至目标状态的具有最小代价的路径问题,这种推广了的宽度优先搜索算法叫做等代价搜索算法;如果所有的连接弧线具有相等的代价,那么等代价算法就简化为宽度优先搜索算法。在等代价搜索算法中,不是描述沿着等长度路径断层进行的扩展,而是描述沿着等代价路径断层进行的扩展。在等代价搜索算法中,我们把从节点i到它的后继节点j的连接弧线代价记为c(i,j),把从起始节
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 一般 搜索 原理 优秀 PPT
限制150内