【教学课件】第三章搜索技术.ppt
《【教学课件】第三章搜索技术.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第三章搜索技术.ppt(105页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章搜索技术第一节引言一、搜索对于无成熟方法可用的问题求解,必须一步步地摸索求解,这种问题求解过程就是搜索。注:搜索技术是人工智能的核心技术之一。二、研究和选用搜索算法的原则1、有限搜索还是无限搜索?若搜索空间有限,则任何一种穷举算法均能完成任务。第三章搜索技术第一节引言二、研究和选用搜索算法的原则2、搜索空间是静态的还是动态生成的?在人工智能中,搜索的对象(常称状态)是在搜索过程中逐步生成的,需将搜索对象的生成和评估的代价计算在内。对于一般搜索,搜索空间基本是静态的,或表或数组或数据库。3、已知目标还是未知目标?4、只要目标还是也要路径?路径是解题过程中应用的操作序列。第三章搜索技术第一节
2、引言二、研究和选用搜索算法的原则5、状态空间搜索还是问题空间搜索?在解题过程中的每一时刻,所要解决的问题均处于一定的状态,搜索过程只是将一个状态变成另一个状态(如,一盘棋局变成另一盘棋局),则称为状态空间搜索。若搜索的对象是问题,搜索的原则是把一个复杂的问题化为一组比较简单的子问题(如把一个复杂的下棋策略分为几个子策略),则称为问题空间搜索。注:问题空间搜索常常比状态空间搜索有效,但算法要复杂些。第三章搜索技术第一节引言二、研究和选用搜索算法的原则6、有约束还是无约束?问题空间搜索时,若子问题间互相无约束关系,则求接比较简单,否则,一般需要回溯,即,放弃已解决的子问题,走回头路,寻找新的解法。
3、7、数据驱动还是目标驱动?数据驱动是向前搜索,目标驱动是向后搜索。8、单向搜索还是双向搜索?第三章搜索技术第一节引言二、研究和选用搜索算法的原则9、盲目搜索还是启发式搜索?按照预定的控制策略实行搜索,在搜索过程中获取的中间信息不用来改进控制策略,称为盲目搜索,反之,称为启发式搜索。注:关于“启发式”,可有两种看法:1)任何有助于找到问题的解,但不能保证找到解的方法均是启发式方法;2)有助于加速求解过程和找到较优解的方法是启发式方法。第三章搜索技术第一节引言二、研究和选用搜索算法的原则10、有对手搜索还是无对手搜索?若有两个控制源均能改变同一状态空间,并且任何一方向目标前进时,另一方均试图将它从
4、目标拉开,则称为有对手搜索,通常称为博弈搜索。注:博弈搜索算法可以看成是一种特殊的问题空间搜索。第三章搜索技术第一节引言三、一般搜索方法分类1、盲目搜索1)无变量的盲目搜索状态空间、问题空间的盲目搜索深度优先、广度优先、代价优先、混合向前、向后、双向2)有变量的盲目搜索通代2、启发式搜索第三章搜索技术第二节启发式搜索一、启发式搜索把要求解的问题的具体领域的知识加进搜索算法中,控制搜索过程,以提高算法效率的搜索方法,称为启发式搜索。注:1)这里,搜索的对象(常称状态)往往是边搜索边生成,因此在考虑这种搜索的复杂性时,必须将搜索对象的生成和评估的代价计算在内。第三章搜索技术第二节启发式搜索一、启发
5、式搜索注:2)根据启发性信息(特定领域的知识信息),在生成搜索树时可考虑种种可能的选择:a)下一步展开哪个节点?b)是部分展开还是全部展开?c)使用哪个规则(算子)?d)怎样决定舍弃还是保留新生成的节点?e)怎样决定舍弃还是保留一棵子树?f)怎样决定停止或继续搜索?g)如何定义启发函数(估值函数)?h)如何决定搜索方向?第三章搜索技术第二节启发式搜索二、有序搜索算法1、基本思想a)对于每个在搜索过程中遇到的新状态,计算一个估计值,根据估计值的大小,确定下一步将从哪一个状态开始继续前进。b)一般以估计值小者作为较优的状态,以此实现最佳优先搜索。c)计算状态估计值的函数是确定的,但每个状态的估计值
6、的大小与初始状态到该路径有关。第三章搜索技术第二节启发式搜索二、有序搜索算法2、算法1)建立一个空的状态序列SS2)建立一个空的状态库SB3)定义一个估值函数f4)若初始状态为S0,则定义初始状态S0(0,f(0)为当前新状态5)将当前新状态按估计值从小到大的顺序插入到SS中,若新状态为目标状态,则将相应状态插入到具有相同估计值的状态的最前面;否则将相应状态插入到具有相同估计值的状态的最后面第三章搜索技术第二节启发式搜索二、有序搜索算法2、算法6)若在SS或SB中原有一个状态与当前新状态共一个状态,则删去原有状态7)若新状态在SS的最前面,则转11)8)若某种状态极限已达到,则搜索失败,算法运
7、行结束,无解第三章搜索技术第二节启发式搜索二、有序搜索算法2、算法9)若任何规则均不能应用于状态序列SS中的第一个状态,或者虽能应用,但不能产生合适的新状态(在SS或SB中均没有者,称为新),或虽能产生合适的新状态S(path2,f(path2),但不是改进型的(若SS和SB中已有状态S(path1,f(path1),它与新状态共一个状态S,且f(path2)f(path1),则称新状态不是改进型的),则将此第一个状态从SS中除去,送入SB中,否则转12)第三章搜索技术第二节启发式搜索二、有序搜索算法2、算法10)若SS成为空序列,则搜索失败,算法运行结束,无解11)若SS中第一个状态已是目标
8、状态,则搜索成功,算法运行结束(若该状态形如S(path,f(path),则解就是(path);否则转9)12)取一个可应用于SS的第一个状态S(path,f(path),并产生改进型的合适新状态的规则Rn,产生新状态T(path,n,f(path),定义它为当前新状态,转5)#算法完第三章搜索技术第二节启发式搜索二、有序搜索算法2、算法注:1)状态是带路径和估计值的状态,而状态只是一个状态2)对当前生成的新状态是否是目标状态的判断需要两次3)这里每次只生成一个后代4)给定估计值函数f的意义,则有序搜索就可归结为已知的搜索,如令f为状态节点的深度,则有序搜索就成为广度优先搜索第三章搜索技术第二
9、节启发式搜索二、有序搜索算法2、算法注:5)有序搜索算法不一定找到解,即使有解6)有序搜索算法的特点是使用启发式信息(表现在估计值函数f上),可是启发式信息也会骗人,会引人误入歧途7)有序搜索即使能找到解,也未必一定是最优的第三章搜索技术第二节启发式搜索二、有序搜索算法3、算法改进1)用多个估计值函数来“层层设卡”2)对估计值函数的形式加以限制,以保证它一定能找到解,甚至一定能找到最优解。第三章搜索技术第二节启发式搜索三、估计值函数的改进令S为初始节点,ti为一组目标节点,n,ni,nj为任意节点k*(ni,nj)为从ni到nj的最小代价g*(n)=k*(S,n)为从初始节点S到节点n的最小代
10、价h*(n)=mink*(n,ti)为从节点n到一个目标节点ti的最小代价f*(n)=g*(n)+h*(n)为从初始节点出发,经过节点n,到达一个目标节点的最小代价ti第三章搜索技术第二节启发式搜索三、估计值函数的改进g(n)为对g*(n)的估计,g(n)0h(n)为对h*(n)的估计,h(n)0f(n)=g(n)+h(n)为每个节点n处的估计值函数第三章搜索技术第二节启发式搜索四、H算法使用上述改进的估计值函数f的有序搜索算法就是H算法。注:1)g(n)是容易找到的,如将从初始节点到节点n实际上走过的路径的代价作为g(n),且永远有g*(n)g(n)。g(n)不断改进,随着更多的搜索信息的获
11、取,g(n)的值呈下降趋势。2)h(n)的选取要与具体问题领域的启发信息相关。3)由于h(n)的选择仍有很大的随意性,因此,H算法并不能保证找到一个解,更不能保证找到最优解。从而需要改进。第三章搜索技术第二节启发式搜索五、H*算法1.在H算法中规定h(n)h*(n)2.推广k*(ni,nj)的定义:令k*(n1,n2,nm)为从n1出发,经过n2,到达nm的最小代价,规定存在一个正整数e0,使得对任意的ni,nj,nm(njnm)均有k*(ni,nj,nm)-k*(ni,nj)e3.经过如此限制以后的H算法就是H*算法。注:1)可以证明:只要目标状态存在,并且从初始状态到目标状态有一条通路,则
12、H*算法一定在有限步内终止,并找到一个最优解(即代价为最低的解)。第三章搜索技术第二节启发式搜索五、H*算法注:2)H*算法的搜索效率在很大程度上取决于函数h(n)的选择,它要求h(n)h*(n),但若h(n)太小,则启发信息就很少。3)若h(n)0,g(n)为搜索深度或代价,则H*算法将退化为广度优先搜索或代价优先搜索。4)h(n)的值在满足小于或等于h*(n)的前提下越大越好,启发式信息多(即h值大)的H*算法展开的节点是启发式信息少(即h值小)的H*算法展开的节点的子集。第三章搜索技术第二节启发式搜索五、H*算法注:5)若估计值函数h(n)满足单调条件:h(ni)-h(nj)k*(ni,
13、nj)(其中k*(ni,nj)是从ni到nj的最小代价,nj是ni的后续节点),则H*算法是循着从初始状态通向该节点的最优路径到达该节点的。6)在H*算法中,每次只生成一个后续节点。第三章搜索技术第二节启发式搜索六、完全展开的有序搜索算法1)建立一个空的状态序列SS2)建立一个空的状态库SB3)定义一个估值函数f4)若初始状态为S0,则定义初始状态S0(0,f(0)为当前新状态5)将所有当前新状态按估计值从小到大的顺序插入到SS中第三章搜索技术第二节启发式搜索六、完全展开的有序搜索算法6)若在SS或SB中原有一个状态与当前某个新状态共一个状态,则删去原有状态7)若SS的第一项是一个新状态,则转
14、11)8)若某种状态极限已达到,则搜索失败,算法运行结束,无解第三章搜索技术第二节启发式搜索六、完全展开的有序搜索算法9)若任何规则均不能应用于状态序列SS中的第一个状态,或者虽能应用,但不能产生改进型的合适新状态,则将此第一个状态从SS中除去,送入SB中,否则转12)10)若SS成为空序列,则搜索失败,算法运行结束,无解11)若SS中第一个状态已是目标状态,则搜索成功,算法运行结束(若该状态形如S(path,f(path),则解就是(path);否则转9)第三章搜索技术第二节启发式搜索六、完全展开的有序搜索算法12)取所有可应用于SS的第一个状态S(path,f(path),并产生各不相同的
15、改进型的合适新状态的规则Ri(iI),产生新状态集T(path,i,f(path),其中对属于同一状态的各个状态只取一个最优者,转5)#算法完第三章搜索技术第二节启发式搜索七、A算法使用估计值函数f(n)=g(n)+h(n)的完全展开的有序搜索算法。第三章搜索技术第二节启发式搜索八、A*算法在A算法规定:h(n)h*(n),k*(ni,nj,nm)-k*(ni,nj)e,则A算法成为A*算法注:1)A*算法与H*算法的主要区别有a)在H*算法中每次只生成一个后继节点,而在A*算法中每次生成一个节点的所有节点b)在H*算法中,每生成一个新节点,就询问它是否是目标节点,而在A*算法中,只询问栈顶节
16、点是否是目标节点2)在A*算法中,估计值函数f(n)=g(n)+h(n)的选择是一个关键第三章搜索技术第二节启发式搜索八、A*算法注:3)A*算法一定能保证找到最优解4)若按展开的节点个数来估计它的效率,则当启发式函数h的值单调上升时,它的效率只会上升,不会下降,且有较合理的渐近性质5)若不是考虑被展开的节点个数,而是考虑各节点被展开的次数,则A*算法在最坏情况下表示出很高的复杂性6)为了避免不正常的h值对解题路径的影响,Martelli提出了B算法,基本思想是h(n)可动态修改,在h值不正常时,只根据g的值来选择展开的节点。第三章搜索技术第二节启发式搜索八、A*算法注:7)在f(x)=g(x
17、)+h(x)中,g(x)是“经验”项,起着稳定形势的作用,而h(x)是“冒险”项。九、双向启发式搜索十、几种特殊的启发式搜索1、生成与测试方法穷举?仍需要经验知识的指导2、并行搜索法3、爬山法4、黄金分割法十一、与或树的启发式搜索AO*算法第二节启发式搜索十二、遗传算法1、基本概念模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率自适应全局优化概率搜索算法。第三章搜索技术第三章搜索技术第二节启发式搜索十二、遗传算法2、基本思想寻找X,使得第三章搜索技术第二节启发式搜索十二、遗传算法2、基本思想式中,为决策变量,f(X)为目标函数,U是基本空间,R是U的一个子集。遗传算法中,将n
18、维决策向量用n个记号所组成的符号串X来表示:第三章搜索技术第二节启发式搜索十二、遗传算法2、基本思想把每一个看作一个遗传基因,它的所有可能取值称为等位基因,这样,X就可看作是由n个遗传基因所组成的一个染色体。染色体的长度可以是固定的,也可以是变化的。等位基因可以是一组整数,也可以是某一范围内的实数值,或者是记号。最简单的等位基因是由0和1这两个整数组成的,相应的染色体就可表示为一个二进制符号串。第三章搜索技术第二节启发式搜索十二、遗传算法2、基本思想这种编码所形成的排列形式X是个体的基因型,与它对应的X值是个体的表现型。染色体X也称为个体X,对于每一个个体X,要按照一定的规则确定出其适应度。个
19、体的适应度与其对应的个体表现型X的目标函数值相关联,X越接近于目标函数的最优点,其适应度越大;反之,其适应度越小。第三章搜索技术第二节启发式搜索十二、遗传算法2、基本思想遗传算法中,决策变量X组成了问题的解空间。对问题最优解的搜索是通过对染色体X的搜索过程来进行的,从而由所有的染色体X就组成了问题的搜索空间。生物的进化是以集团为主体的。与此相对应,遗传算法的运算对象是由M个个体所组成的集合,称为群体。第三章搜索技术第二节启发式搜索十二、遗传算法2、基本思想与生物一代一代的自然进化过程相似,遗传算法的运算过程也是一个反复迭代过程,第t代群体记做P(t),经过一代遗传和进化后,得到第t+1代群体,
20、它们也是由多个个体组成的集合,记做P(t+1)。这个群体不断地经过遗传和进化操作,并且每次都按照优胜劣汰的规则将适应度较高的个体更多地遗传到下一代,这样最终在群体中将会得到一个优良的个体X,它所对应的表现型X将达到或接近于问题的最优解。第三章搜索技术第二节启发式搜索十二、遗传算法2、基本思想生物的进化过程主要是通过染色体之间的交叉和染色体的变异来完成的。遗传算法中最优解的搜索过程也模仿生物的这个进化过程,使用所谓的遗传算子(geneticoperators)作用于群体P(t)中,进行下述遗传操作,从而得到新一代群体P(t+1)。第三章搜索技术第二节启发式搜索十二、遗传算法2、基本思想选择(se
21、lection):根据各个个体的适应度,按照一定的规则或方法,从第t代群体P(t)中选择出一些优良的个体遗传到下一代群体P(t+1)中。交叉(crossover):将群体P(t)内的各个个体随机搭配成对,对每一个个体,以某个概率(称为交叉概率,crossoverrate)交换它们之间的部分染色体。第三章搜索技术第二节启发式搜索十二、遗传算法2、基本思想变异(mutation):对群体P(t)中的每一个个体,以某一概率(称为变异概率,mutationrate)改变某一个或一些基因座上基因值为其它的等位基因。第三章搜索技术第二节启发式搜索十二、遗传算法3、特点以决策变量的编码作为运算对象以目标函数
22、值作为搜索信息同时进行解空间的多点搜索使用概率搜索技术第三章搜索技术第二节启发式搜索十二、遗传算法4、算法实现关键染色体编码群体的初始化适应值评价选择种群(轮盘赌)种群交配种群变异算法流程第三章搜索技术第二节启发式搜索十二、遗传算法5、基本遗传算法基本遗传算法(SimpleGeneticAlgorithms,简称SGA)是一种统一的最基本的遗传算法,它只使用选择、交叉、变异这三种基本遗传算子,其遗传进化操作过程简单,容易理解,是其他一些遗传算法的雏形和基础,它不仅给各种遗传算法提供了一个基本框架,同时也具有一定的应用价值。第三章搜索技术第二节启发式搜索十二、遗传算法5、基本遗传算法基本遗传算法
23、的构成要素染色体编码方法。基本遗传算法使用固定长度的二进制符号串来表示群体中的个体,其等位基因是由二值符号集0,1所组成的。初始群体中各个个体的基因值可用均匀分布的随机数来生成。第三章搜索技术第二节启发式搜索十二、遗传算法5、基本遗传算法基本遗传算法的构成要素个体适应度评价。基本遗传算法按与个体适应度成正比的概率来决定当前群体中每个个体遗传到下一代群体中的机会多少。为正确计算这个概率,这里要求所有个体的适应度必须为正数或零。遗传算子。基本遗传算法使用下述三种遗传算子:选择运算使用比例选择算子,交叉运算使用单点交叉算子,变异运算使用基本位变异算子或均匀变异算子。第三章搜索技术第二节启发式搜索十二
24、、遗传算法5、基本遗传算法基本遗传算法的构成要素基本遗传算法的运行参数。基本遗传算法有下述4个运行参数需要提前设定:群体大小M,即群体中所含个体数目,一般取为20100;遗传运算的终止进化代数T,一般取为100500;交叉概率Pc,一般取为0.40.99;变异概率Pm,一般取为0.00010.1。第三章搜索技术第二节启发式搜索十二、遗传算法5、基本遗传算法基本遗传算法的实现个体适应度评价在遗传算法中,以个体适应度的大小来确定该个体被遗传到下一代群体中的概率。个体适应度越大,该个体被遗传到下一代的概率也越大;反之,个体的适应度越小,该个体被遗传到下一代的概率也越小。基本遗传算法使用比例选择算子来
25、确定群体中各个个体遗传到下一代群体中的数量。为正确计算不同情况下各个个体的遗传概率,要求所有个体的适应度必须为正数或零,不能是负数。第三章搜索技术第二节启发式搜索十二、遗传算法5、基本遗传算法基本遗传算法的实现比例选择算子比例选择实际上是一种有退还随机选择,也叫做赌盘(RouletteWheel)选择,因为这种选择方式与赌博中的赌盘操作原理非常相似。比例选择算子的具体执行过程是:先计算出群体中所有个体的适应度之和;其次计算出每个个体的相对适应度的大小,此值即为各个个体被遗传到下一代群体中的概率;最后再使用模拟赌盘操作(即0到1之间的随机数)来确定各个个体被选中的次数。第三章搜索技术第二节启发式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第三 搜索 技术
限制150内