遗传算法改进及经典算法应用PPT课件_第1页
遗传算法改进及经典算法应用PPT课件_第2页
遗传算法改进及经典算法应用PPT课件_第3页
遗传算法改进及经典算法应用PPT课件_第4页
遗传算法改进及经典算法应用PPT课件_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.,1,遗传算法原理,段玉帅马聪聪舒豪杰,.,2,主要内容,遗传算法概述,1,遗传算法改进,3,.,3,1、优化方法,遗传算法概述,传统的优化方法(局部优化)共轭梯度法、拟牛顿法、单纯形方法全局优化方法GA、漫步法(RandomWalk)、模拟退火法遗传算法(GA)遗传算法是模拟在自然环境中的遗传和进化过程而形成的一种全适应概率搜索算法,.,4,2、遗传算法优点,遗传算法(GA)模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中都保留一组候选解,并按某种指标从解群中选取较优的个体,利用遗传算子(选择、交叉和变异)对这些个体进行组合,产生新一代的候选解群,重复此过程,直到满足某种收敛指标为止。其遗传进化操作过程简单,容易理解。,.,5,GA流程,.,6,遗传算法基本原理,1、基本思想模拟自然界优胜劣汰的进化现象,把搜索空间映射为遗传空间,把可能的解编码成一个向量染色体,向量的每个元素称为基因。通过不断计算各染色体的适应值,选择最好的染色体,获得最优解。,2、遗传算法的基本运算,选择运算,交换操作,变异,.,7,选择运算从旧的种群中选择适应度高的染色体,放入匹配集(缓冲区),为以后染色体交换、变异,产生新的染色体作准备。,选择方法适应度比例法(转轮法)某染色体被选的概率:Pc,xi为种群中第i个染色体,f(xi)为第i个染色体的适应度值。,.,8,具体步骤,1)计算各染色体适应度值,2)累计所有染色体适应度值,记录中间累加值S-mid和最后累加值sum=f(xi),3)产生一个随机数N,0Nsum,4)选择对应中间累加值S-mid的第一个染色体进入交换集,5)重复(3)和(4),直到获得足够的染色体。,.,9,举例:具有6个染色体的二进制编码、适应度值、Pc累计值。,染色体的适应度和所占的比例,用转轮方法进行选择,.,10,染色体被选的概率,被选的染色体个数,.,11,交换操作,方法:随机选择二个染色体(双亲染色体),随机指定一点或多点,进行交换,可得二个新的染色体(子辈染色体).,新的子辈染色体:A11010001B01011110,.,12,变异,模拟生物在自然界环境变化,引起基因的突变.在染色体二进制编码中,1变成0;或0变成1.突变产生染色体的多样性,避免进化中早期成熟,陷入局部极值点,突变的概率很低.,.,13,简单遗传算法(GA)的基本参数,种群规模P:参与进化的染色体总数.代沟G:二代之间不相同的染色体数目,无重叠G=1;有重叠0G1选择方法:转轮法,精英选择法,竞争法.交换率:Pc一般为60100%.变异率:Pm一般为0.110%,.,14,实例,1、产生初始种群,00011000000101111001000000010110011101001010101010(8)(5)(2)(10)(7)1110010110100101101111000000011001110100000101001(12)(5)(19)(10)(14),2、计算适应度,.,15,3、选择,0.086957,0.054348,0.0217390.1086960.0760870.1304350.0543480.2065220.1086960.152174,.,16,3、选择,0.086957,0.054348,0.0217390.1086960.0760870.1304350.0543480.2065220.1086960.152174,0.086957,0.141304,0.163043,0.2717390.3478260.4782610.5326090.7391300.8478261.000000,.,17,3、选择,在01之间产生一个随机数:,0.545929,0.784567,0.446930,0.507893,0.291198,0.716340,0.270901,0.371435,0.854641,0.086957,0.086957,0.054348,0.141304,0.0217390.1086960.0760870.1304350.0543480.2065220.1086960.152174,0.2717390.3478260.4782610.5326090.7391300.8478261.000000,0.163043,.,18,4、交叉,0001100000111001011011000000011001110100101010101011100101101001011011100111010011000000010001010011,0001100000111001011011000000011001110100,0001,1110,100000,010110,111,100,0010110,1011011,110000,100111,0100,0001,1001110100,1100000001,1010101,0001010,010,011,.,19,5、变异,.,20,6、至下一代,适应度计算选择交叉变异,直至满足终止条件。,.,21,遗传算法的改进,轮盘赌选择方式是传统遗传算法中最经常使用的选择手段,因为轮盘赌选择方式非常直观而且也很简单,所以深受欢迎。轮盘赌不足之处:首先是在遗传进化的开始阶段,这个时候可能存在适应度较高的生物个体,根据轮盘赌选择方法,那么这个个体被选中的机会就会非常大,从而会选择复制出相当数量的子代,这就容易导致种群的多样性丧失,种群中个体太单调,很难再进行遗传进化,所以也很难搜索到全局最优解。,选择算子的改进,.,22,其次是在遗传进化的末了阶段,这个时候种群中的所有个体之间的差异不是很大了,因而适应度也很接近,所以此时的轮盘赌选择方法已经无效,丧失了继续选择的功能,也就无法分辨种群中个体的好坏了。,.,23,改进方法:对种群中的全部个体来一次排序,根据种群中每个个体的适应度高低对这些个体进行降序列出。把这些按顺序排列出来的所有个体从头到尾依次分成四等份。适应度最低的排在最后面的1/4比例的个体全部扔掉,也就是直接淘汰掉,不进入到下一代当中;把适应度中等的排在中间的2/4比例的个体全部拷贝一份,也就是选择到下一代当中;剩下来的适应度最高的排在最前面的1/4比例的个体全部拷贝两份,也就是把这两份都选择到下一代当中。,.,24,采用此种改进策略进行选择操作可以有以下几种好处:一、可以把适应度非常低的个体直接淘汰出该种群,使得这些个体没有机会进入到下一代当中,因此能够提升算法的收敛速度。二、快速增加种群中适应度较好的个体的数量,使得算法更加高效实用。,.,25,交叉算子的改进,一些较早的遗传算法当中,关于交叉算子的操作是非常简陋的,也是有点盲目的。对于一对需要进行交叉操作的父代个体,使用一个恒定不变的交叉概率来对这对父代个体实行交叉互换,也不论这对父代个体的相似程度如何。,相似度:假定有两个父代个体,它们的编码是二进制的,一个个体叫做X,另一个个体口LI做Y,则关于个体X和个体Y的相似度可以进行这样定义:s=c/nS就表示两个父代个体的相似度,C表示个体X与个体Y的最长的共同子串的长度,n叫做种群中个体染色体编码的长度。,.,26,假设个体x的染色体编码为10101011,个体Y的染色体编码为10101110,则个体X和个体Y的最长的共同子串就为101011。这个最长的共同子串的长度即为6,也就是C等于6,种群中个体染色体编码的长度是8,也即n等于8,因此就得到了个体X和个体Y的相似度的大小,即等于6/8。显然,种群中任意两个个体的相似度S的值是一个0,1之间的数。,修正过的交叉临界值的公式为:,r就表示交叉临界值,g表示该种群此时的进化代数,G表示该种群规定的总的进化代数。,.,27,r是一个(1/3,2/3之间的数,并不是固定不变的,是随着当前的进化代数的增长而不断增大的。如果需要进行交叉的两个父代个体的相似度S大于或等于当前的交叉临界值r时,则不准这两个父代个体进行交叉互换操作,以避免破坏它们的优良基因模式。需要进行交叉的两个父代个体的相似度S小于当前的交叉临界值r时,则允许这两个父代个体进行交叉互换操作。,.,28,在种群进化的初期,由于种群中各个个体之间的差异比较大,因此它们的染色体编码也具有很大的差别,这个时候种群中各个个体之间的相似程度也会很小,所以必须给出一个相对较小的交叉临界值。随着种群的不断进化,种群中各个个体之间的差异会渐渐变小,因而各个个体之间的相似程度也会渐渐提高,所以此时必须给出一个相对较大的交叉临界值。种群中个体之间的交叉临界值随着当前进化代数动态的改变是有道理的,有助于提高遗传算法的收敛性能以及收敛速度。,.,29,变异算子的改进,基本遗传算法(SGA)中,变异概率是固定不变的,通常是一个很小的常数。在遗传进化后期,如果变异概率不发生改变,很容易造成局部收敛的情况,从而对算法的运行效率产生极大地影响。,提出一种修正过的变异概率p。随适应度作自适应变化的公式:,Pm为将要变异个体的变异概率,Pm_max为最大变异概率,这里取0.2,Pm_min为最小变异概率,这里取0.001,f即为将要变异个体的适应度,f_max为种群中最大的适应度,favg为每一代种群适应度的平均值。,.,30,变异的个体的适应度大于等于此时种群的平均适应度时,如果将要变异个体的适应度越大,则该个体的变异概率就越小,正好符合“优胜劣汰,适者生存”的进化规律。,变异的个体的适应度小于此时种群的平均适应度时,说明此个体为劣质个体或是非优良个体,不适应生存,为了扩大解空间,增强种群的多样性,需要给该个体一个较大的变异概率。,这样做还可以使算法的局部搜索能力增强,有助于算法更快地达到全局收敛,因而能够很好的改善遗传算法的性能。,.,31,遗传算法的应用及一些问题,1、遗传算法的应用领域,(1)组合优化(2)函数优化(3)自动控制(4)生产调度(5)图像处理(6)机器学习(7)人工生命(8)数据挖掘,2、遗传算法在应用中的一些问题,1)知识的编码,二进制和十进制的比较:二进制有更多图式和更大的搜索范围;十进制更接近于实际操作。,.,32,基本遗传算法应用实例:求函数的最大值,遗传算法算法实现背包问题,假定背包的最大容量为W,N件物品,每件物品都有自己的价值和重量,将物品放入背包中使得背包内物品的总价值最大。,背包问题是一种组合优化的NP完全问题。,背包问题可以想象这样一个场景小偷在屋子里偷东西,他带着一只背包。屋子里物品数量有限每件物品都具有一定的重量和价值珠宝重量轻但价值高,桌子重但价值低。最重要的是小偷背包容量有限。很明显,他不能把桌子分成两份或者带走珠宝的3/4。对于一件物品他只能选择带走或者不带走。,遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。每个个体实际上是染色体(chromosome)带有特征的实体。,所谓状态,是指在一定的时空范围内,问题所涉及的人、物、时间等的布局关系。通常把问题的初始布局关系称为初始状态,问题解决时到达的状态叫目标状态。,知识表示,状态空间,在背包问题中,初始状态就是有一个空包,包的重量固定为W,有N个商品,每个商品的重量为Wi,价值Ci。目标状态就是将n(n=N)个商品装入包里,包重不超过W,使得包中商品的总重量最大。状态空间就是将商品装入包的所有组合,本实验的解就是价值和最大的装包组合。,3、遗传算法中的抽象概念在背包问题的具体化(1)基因:0或1,代表相应的商品选还是不选。(2)染色体:本实验中固定有50个商品,所以染色体就是50个基因序列,也就是40个0、1串,代表了一种往包里装商品的组合。一个染色体例:0111101101011011110101110101010101011110。(3)群体:一定数量的基因个体组成了群体(population),群体中个体的数量叫做群体大小。本实验的背包问题中,种群大小为100,代表100个往包里装商品的组合。(4)适应度:各个个体对环境的适应程度叫做适应度。本实验的背包问题中,每染色体个体的适应度为选入包中的商品的价值和。,算法实现1、数据结构(1)重要参数:#definezhongqun_size100/种群的规模#definepc0.8/杂交概率#definepm0.08/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论