遗传算法及其在路径规划中的应用课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《遗传算法及其在路径规划中的应用课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遗传 算法 及其 路径 规划 中的 应用 课件
- 资源描述:
-
1、2023年1月26日21时08分北京科技大学自动化学院控制科学与工程系1遗传算法及其在路径规划遗传算法及其在路径规划中的应用中的应用北京科技大学自动化学院控制科学与工程系北京科技大学自动化学院控制科学与工程系2023年1月26日21时08分北京科技大学自动化学院控制科学与工程系2参考书目:参考书目:(1)周德俭,吴斌)周德俭,吴斌.智能控制智能控制.重庆:重庆大学出重庆:重庆大学出版社,版社,2005(2)李少远,王景成)李少远,王景成.智能控制智能控制.北京:机械工业北京:机械工业出版社,出版社,2005(3)李人厚)李人厚.智能控制理论和方法智能控制理论和方法.西安:西安电西安:西安电子科
2、技大学出版社,子科技大学出版社,1999(4)王顺晃,舒迪前)王顺晃,舒迪前.智能控制系统及其应用(第智能控制系统及其应用(第二版)二版).北京:机械工业出版社,北京:机械工业出版社,20052023年1月26日21时08分北京科技大学自动化学院控制科学与工程系3 20世纪世纪60年代,美、德等国家的一些科学家开始模仿生物年代,美、德等国家的一些科学家开始模仿生物和人类进化的方法来求解复杂优化问题,从而形成了和人类进化的方法来求解复杂优化问题,从而形成了模拟进化模拟进化优化方法优化方法(Optimization Method by Simulated Evolution),),其代表性方法有遗
3、传算法(其代表性方法有遗传算法(GA:Genetic Algorithms)、进化)、进化规划(规划(EP:Evolutionary Programming)、进化策略()、进化策略(ES:Evolutionary Strategies)。本讲将主要对)。本讲将主要对GA进行详细介绍。进行详细介绍。常规的数学优化技术基于梯度寻优技术,计算速度快,但常规的数学优化技术基于梯度寻优技术,计算速度快,但要求优化问题具有可微性,且通常只能求得局部最优解;而模要求优化问题具有可微性,且通常只能求得局部最优解;而模拟进化方法拟进化方法无可微性要求,适用于任意的优化问题无可微性要求,适用于任意的优化问题,尤
4、其适用,尤其适用于求解组合优化问题以及目标函数不可微或约束条件复杂的非于求解组合优化问题以及目标函数不可微或约束条件复杂的非线性优化问题。由于它们采用随机优化技术,所以会以较大的线性优化问题。由于它们采用随机优化技术,所以会以较大的概率求得全局最优解。其计算费用较高的问题也因计算机软硬概率求得全局最优解。其计算费用较高的问题也因计算机软硬件技术的飞速发展而不再成为制约因素。件技术的飞速发展而不再成为制约因素。1 遗传算法产生的背景遗传算法产生的背景2023年1月26日21时08分北京科技大学自动化学院控制科学与工程系41.1 遗传算法的基本概念遗传算法的基本概念1.1.1 进化的基本理论进化的
5、基本理论(1)Darwin生物进化论生物进化论(2)Mendel自然遗传学说自然遗传学说1.1.2 遗传算法术语简介遗传算法术语简介(1)个体(染色体):遗传算法求解实际问题时,首先对待)个体(染色体):遗传算法求解实际问题时,首先对待优化问题的优化问题的参数参数进行编码(一般采用二进制码串表示),从而进行编码(一般采用二进制码串表示),从而得到一个字符串,该字符串被称为一个个体(得到一个字符串,该字符串被称为一个个体(individual)或)或一个染色体(一个染色体(chromosome)。(2)种群(群体):所有个体的集合()种群(群体):所有个体的集合(population)。)。(3
6、)种群规模:种群中个体的数量称为种群规模()种群规模:种群中个体的数量称为种群规模(population size)。)。(4)基因:个体中的每一位称为一个基因()基因:个体中的每一位称为一个基因(gene)。)。(5)适应度函数:能够评价个体对环境适应能力的函数)适应度函数:能够评价个体对环境适应能力的函数(fitness function)。)。2023年1月26日21时08分北京科技大学自动化学院控制科学与工程系51.1.3 遗传算法应用引例遗传算法应用引例例:求例:求 的最大值。的最大值。2(),0,31f xxx解解:(:(1)编码方式的确定)编码方式的确定 采用五位二进制代码表示变
7、量采用五位二进制代码表示变量x。表表1 产生的初始种群产生的初始种群标号标号初始种群初始种群x值值1011011321100024301000841001119 (2)初始种群的产生)初始种群的产生设种群规模设种群规模N=4,随机产生初始种群如表,随机产生初始种群如表1所示。所示。2023年1月26日21时08分北京科技大学自动化学院控制科学与工程系6(3)适应度函数值的计算)适应度函数值的计算 取适应度函数为取适应度函数为f(x)=x2,则,则4个样本的适应度值分别如下个样本的适应度值分别如下表所示。表所示。表表2 适应度函数计算适应度函数计算标号标号初始种群初始种群适应度值适应度值f(x)
8、=x210110116921100057630100064410011361总总 计计1170平均值平均值292.5最大值最大值576x值值13248192023年1月26日21时08分北京科技大学自动化学院控制科学与工程系7(4)复制)复制 采用赌轮法计算各个个体被复制的次数。采用赌轮法计算各个个体被复制的次数。表表3 复制操作过程复制操作过程标号标号初始种群初始种群适应度适应度f(x)=x210110116921100057630100064410011361总总 计计1170平均值平均值292.5最大值最大值576x值值1324819复制概率复制概率期望的复制期望的复制数数实际得到实际得
9、到的复制数的复制数0.1440.4920.0550.3091.0000.250.4920.581.970.221.234.001.001.971201412iiffiiff2023年1月26日21时08分北京科技大学自动化学院控制科学与工程系8(5)交叉)交叉 采用随机交叉配对,一点交叉方式进行交叉。采用随机交叉配对,一点交叉方式进行交叉。表表4 交叉操作过程交叉操作过程标号标号复制后匹配复制后匹配池中的个体池中的个体1011013211000431100014100112总总 计计平均值平均值最大值最大值新种群新种群01000110011110110010f(x)=x235358252918
10、646258413241854463.5841配对对象配对对象(随机选取(随机选取)交叉点交叉点(随机选取(随机选取)x值值2023年1月26日21时08分北京科技大学自动化学院控制科学与工程系9(6)变异)变异 采用单点随机变异方式进行变异操作采用单点随机变异方式进行变异操作。表表5 变异操作过程变异操作过程标号标号交叉后交叉后的种群的种群101000211001311101410010总总 计计平均值平均值最大值最大值新种群新种群01100110011110110010f(x)=x23/122529181446258413241934483.5841变异点位置变异点位置x值值2023年1月
11、26日21时08分北京科技大学自动化学院控制科学与工程系101.2 遗传算法的基本步骤遗传算法的基本步骤1.2.1 遗传算法的流程遗传算法的流程确定表示问题解的编码确定表示问题解的编码随机生成初始种群随机生成初始种群确定适应度函数确定适应度函数f计算种群中各个体的适应度计算种群中各个体的适应度 fi选择高适应度的个体进行复制选择高适应度的个体进行复制交叉交叉变异变异输出最优解输出最优解是否满足收敛判据?是否满足收敛判据?是是否否图图1 遗传算法的基本流程图遗传算法的基本流程图2023年1月26日21时08分北京科技大学自动化学院控制科学与工程系111.2.2 遗传算法的具体实现遗传算法的具体实
12、现(1)编码方式的选取)编码方式的选取 利用遗传算法求解实际问题时,问题的解是用字符串来表利用遗传算法求解实际问题时,问题的解是用字符串来表示的,示的,遗传算子也是直接对字符串进行操作的遗传算子也是直接对字符串进行操作的。因此,如何用。因此,如何用适当的字符串编码来表示问题的解成为了遗传算法应用过程中适当的字符串编码来表示问题的解成为了遗传算法应用过程中的首要问题。的首要问题。目前所使用的字符串编码方式主要有:目前所使用的字符串编码方式主要有:二进制、实数(浮二进制、实数(浮点数)和符号点数)和符号等。等。(1)采用二进制形式编码,个体的位数多,描述得比较)采用二进制形式编码,个体的位数多,描
13、述得比较细致,从而加大了搜索范围;但交叉运算的计算量较大,并且细致,从而加大了搜索范围;但交叉运算的计算量较大,并且由于大量的具体问题本身都是十进制的,所以还需对实际参数由于大量的具体问题本身都是十进制的,所以还需对实际参数进行编码和译码,从而增加了额外的计算时间。进行编码和译码,从而增加了额外的计算时间。(2)采用实数(浮点数)编码,交叉运算的计算量较小,)采用实数(浮点数)编码,交叉运算的计算量较小,但变异过程难于进行。但变异过程难于进行。(3)符号编码方式通常在一些专门的应用场合使用。)符号编码方式通常在一些专门的应用场合使用。2023年1月26日21时08分北京科技大学自动化学院控制科
14、学与工程系12(2)初始种群的产生)初始种群的产生 初始种群对应着问题的初始解,通常有两种方式产生:初始种群对应着问题的初始解,通常有两种方式产生:完全随机方式产生(字符串每一位均随机产生);完全随机方式产生(字符串每一位均随机产生);随机数发生器方式产生(整个字符串用随机数发生器一随机数发生器方式产生(整个字符串用随机数发生器一次产生)。次产生)。另外,如果对于寻优问题有某些先验知识,则可先将这些另外,如果对于寻优问题有某些先验知识,则可先将这些先验知识转变为必须满足的一组先验知识转变为必须满足的一组约束约束,然后再在满足这些,然后再在满足这些约束约束的解中随机地选取个体以组成初始种群。的解
15、中随机地选取个体以组成初始种群。(3)适应度函数的确定)适应度函数的确定 适应度函数是遗传算法与实际优化问题之间的接口。在遗适应度函数是遗传算法与实际优化问题之间的接口。在遗传算法中传算法中要求适应度函数值是非负的,且任何情况下都希望其要求适应度函数值是非负的,且任何情况下都希望其值越大越好值越大越好;而实际优化问题的目标函数并不一定满足这个条;而实际优化问题的目标函数并不一定满足这个条件,有的是正的,有的可能为负,甚至可能是复数值。因此,件,有的是正的,有的可能为负,甚至可能是复数值。因此,对于任意优化问题,首先应把其数学形式表示为遗传算法适于对于任意优化问题,首先应把其数学形式表示为遗传算
16、法适于求解的形式,同时要保证二者在数学优化层面上是等价的。这求解的形式,同时要保证二者在数学优化层面上是等价的。这个过程称为适应度转换。个过程称为适应度转换。2023年1月26日21时08分北京科技大学自动化学院控制科学与工程系13 适应度转换首先要保证适应度值是非负的,其次要求目标适应度转换首先要保证适应度值是非负的,其次要求目标函数的优化方向应与适应度值增大的方向一致。设实际优化问函数的优化方向应与适应度值增大的方向一致。设实际优化问题的目标函数为题的目标函数为J(x),遗传算法的适应度函数为,遗传算法的适应度函数为f(x),则有:,则有:可以将适应度函数表示为实际优化问题目标函数的线性可
17、以将适应度函数表示为实际优化问题目标函数的线性形式,即有形式,即有bxJaxf)()(其中,其中,a,b是系数,可根据具体问题的特征及所期望适应度的是系数,可根据具体问题的特征及所期望适应度的分散程度来确定。分散程度来确定。对于最小化问题,一般采用如下转换形式:对于最小化问题,一般采用如下转换形式:其中,其中,cmax既可以是到目前为止所有进化代中目标函数既可以是到目前为止所有进化代中目标函数 J(x)的的最大值(此时最大值(此时cmax将随着进化而有所变化),也可以根据经验将随着进化而有所变化),也可以根据经验人为设定。人为设定。maxmax()()()0cJ xJ xcf x当当其它其它2
18、023年1月26日21时08分北京科技大学自动化学院控制科学与工程系14 对于最大化问题(如需要),一般采用如下转换形式:对于最大化问题(如需要),一般采用如下转换形式:其中,其中,cmin既可以是当前代中目标函数既可以是当前代中目标函数 J(x)的最小值,也可以根的最小值,也可以根据经验人为设定。据经验人为设定。采用如下的指数函数形式:采用如下的指数函数形式:在最大化问题时,在最大化问题时,c一般取一般取1.618或或2;而在最小化问题时,;而在最小化问题时,c可取为可取为0.618。这样,既保证了适应度值非负,又使适应度值。这样,既保证了适应度值非负,又使适应度值增大方向和目标函数优化方向
19、一致。增大方向和目标函数优化方向一致。()()J xf xcminmin()()0()0J xcJ xcf x当当其它其它2023年1月26日21时08分北京科技大学自动化学院控制科学与工程系15(4)复制(选择)()复制(选择)(Reproduction or Selection)复制是基于适者生存理论而提出的,是指种群中每一个体复制是基于适者生存理论而提出的,是指种群中每一个体按照适应度函数进入到匹配池中的过程。适应度值高于种群平按照适应度函数进入到匹配池中的过程。适应度值高于种群平均适应度的个体在下一代中将有更多的机会繁殖一个或多个后均适应度的个体在下一代中将有更多的机会繁殖一个或多个后
20、代,而低于平均适应度的个体则有可能被淘汰掉。复制的目的代,而低于平均适应度的个体则有可能被淘汰掉。复制的目的在于保证那些适应度高的优良个体在进化中生存下去,在于保证那些适应度高的优良个体在进化中生存下去,复制不复制不会产生新的个体会产生新的个体。常用的复制方法有:。常用的复制方法有:赌轮法赌轮法两两竞争法两两竞争法 从种群中随机地选择两个个体,将其中适应度较大的个体从种群中随机地选择两个个体,将其中适应度较大的个体作为被复制的个体;作为被复制的个体;若若两个体适应度相同,两个体适应度相同,则则任意任意选择选择一个。一个。排序法排序法 首先根据目标函数值的大小将个体排序,根据具体问题应首先根据目
21、标函数值的大小将个体排序,根据具体问题应用各个体的排序序号分配各自进入匹配池的概率。适应度可以用各个体的排序序号分配各自进入匹配池的概率。适应度可以按序号线性变化,也可以按某种非线性关系变化。按序号线性变化,也可以按某种非线性关系变化。2023年1月26日21时08分北京科技大学自动化学院控制科学与工程系16(5)交叉()交叉(Crossover)交叉是指对从匹配池中随机选出的两个个体按一定的交叉交叉是指对从匹配池中随机选出的两个个体按一定的交叉概率概率 pc 部分地交换某些基因的过程。一般分两步实现:第一步部分地交换某些基因的过程。一般分两步实现:第一步是将新复制产生的匹配池中的个体随机两两
22、配对;第二步是进是将新复制产生的匹配池中的个体随机两两配对;第二步是进行交叉繁殖,产生一对新的个体。行交叉繁殖,产生一对新的个体。交叉的目的是为了生成新的交叉的目的是为了生成新的个体个体,产生新的基因组合,避免每代种群中个体的重复。,产生新的基因组合,避免每代种群中个体的重复。单点交叉(单点交叉(One-Point Crossover)对每一对相互配对的个体,依设定的交叉概率对每一对相互配对的个体,依设定的交叉概率p pc c在其交叉在其交叉点处相互交换两个父代个体的部分染色体,从而产生出两个新点处相互交换两个父代个体的部分染色体,从而产生出两个新的个体,如下图所示。的个体,如下图所示。交叉前
23、交叉前individual 111001 11001individual 201010 00110图图2 单点交叉单点交叉交叉后交叉后11001 0011001010 110012023年1月26日21时08分北京科技大学自动化学院控制科学与工程系17两点交叉(两点交叉(Two-Point Crossover)按交叉概率随机设置两个交叉点,然后交换两个父代个体按交叉概率随机设置两个交叉点,然后交换两个父代个体在两个交叉点之间的在两个交叉点之间的基因基因。均匀交叉(均匀交叉(Uniform Crossover)其操作过程是:先选出两个父代个体,之后依据交叉概率其操作过程是:先选出两个父代个体,之
24、后依据交叉概率 pc 产生一个与父代个体同样长度的二进制串,这里称其为产生一个与父代个体同样长度的二进制串,这里称其为模板模板(template)。若模板中的某位为)。若模板中的某位为0,则两个父代个体对应位不,则两个父代个体对应位不进行交换;反之,模板中的某位为进行交换;反之,模板中的某位为1时,则交换两个父代个体时,则交换两个父代个体对应位的基因。对应位的基因。交叉前交叉前individual 111 01011 000individual 210 10110 101图图3 两点交叉两点交叉交叉后交叉后11 10110 00010 01011 1012023年1月26日21时08分北京科技
25、大学自动化学院控制科学与工程系18算数交叉(算数交叉(Arithmetic Crossover)算数交叉的操作对象一般是由算数交叉的操作对象一般是由浮点数编码浮点数编码所表示的个体,所表示的个体,它通过两个父代个体的线性组合而产生出两个新的个体。它通过两个父代个体的线性组合而产生出两个新的个体。假设在两个父代个体假设在两个父代个体 ,之间进行算数交叉,则交叉运之间进行算数交叉,则交叉运算后所产生出的两个新个体是算后所产生出的两个新个体是tAXtBX11(1)(1)tttAABtttBBAXXXXXX式中式中 为一参数,它若是一个常数,此时所进行的交叉运算称为一参数,它若是一个常数,此时所进行的
展开阅读全文