您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 投融资/租赁 > 遗传算法改进及经典算法应用PPT..
遗传算法原理—段玉帅马聪聪舒豪杰主要内容遗传算法基本原理2遗传算法概述1遗传算法的应用及一些问题4遗传算法改进31、优化方法遗传算法概述传统的优化方法(局部优化)共轭梯度法、拟牛顿法、单纯形方法全局优化方法GA、漫步法(RandomWalk)、模拟退火法遗传算法(GA)遗传算法是模拟在自然环境中的遗传和进化过程而形成的一种全适应概率搜索算法2、遗传算法优点遗传算法(GA)模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中都保留一组候选解,并按某种指标从解群中选取较优的个体,利用遗传算子(选择、交叉和变异)对这些个体进行组合,产生新一代的候选解群,重复此过程,直到满足某种收敛指标为止。其遗传进化操作过程简单,容易理解。GA流程遗传算法基本原理1、基本思想模拟自然界优胜劣汰的进化现象,把搜索空间映射为遗传空间,把可能的解编码成一个向量——染色体,向量的每个元素称为基因。通过不断计算各染色体的适应值,选择最好的染色体,获得最优解。2、遗传算法的基本运算⑴选择运算⑵交换操作⑶变异选择运算从旧的种群中选择适应度高的染色体,放入匹配集(缓冲区),为以后染色体交换、变异,产生新的染色体作准备。选择方法——适应度比例法(转轮法)某染色体被选的概率:Pc)()(iicxfxfPxi为种群中第i个染色体,f(xi)为第i个染色体的适应度值。具体步骤1)计算各染色体适应度值2)累计所有染色体适应度值,记录中间累加值S-mid和最后累加值sum=∑f(xi)3)产生一个随机数N,0〈N〈sum4)选择对应中间累加值S-mid的第一个染色体进入交换集5)重复(3)和(4),直到获得足够的染色体。举例:⒈具有6个染色体的二进制编码、适应度值、Pc累计值。染色体的适应度和所占的比例用转轮方法进行选择染色体被选的概率染色体编号12345678910适应度8217721211737被选概率0.10.020.220.090.020.160.140.090.030.09适应度累计8102734364859666976被选的染色体个数随机数2349761312757所选染色体号码37103137交换操作方法:随机选择二个染色体(双亲染色体),随机指定一点或多点,进行交换,可得二个新的染色体(子辈染色体).新的子辈染色体:A’11010001B’01011110变异模拟生物在自然界环境变化,引起基因的突变.在染色体二进制编码中,1变成0;或0变成1.突变产生染色体的多样性,避免进化中早期成熟,陷入局部极值点,突变的概率很低.简单遗传算法(GA)的基本参数①种群规模P:参与进化的染色体总数.②代沟G:二代之间不相同的染色体数目,无重叠G=1;有重叠0G1③选择方法:转轮法,精英选择法,竞争法.④交换率:Pc一般为60~100%.⑤变异率:Pm一般为0.1~10%实例1、产生初始种群00011000000101111001000000010110011101001010101010(8)(5)(2)(10)(7)1110010110100101101111000000011001110100000101001(12)(5)(19)(10)(14)2、计算适应度3、选择个体染色体适应度选择概率累积概率10001100000820101111001530000000101241001110100105101010101076111001011012710010110115811000000011991001110100101000010100111488+5+2+10+7+12+5+19+10+140.0869570.05434858+5+2+10+7+12+5+19+10+140.0217390.1086960.0760870.1304350.0543480.2065220.1086960.1521743、选择个体染色体适应度选择概率累积概率1000110000082010111100153000000010124100111010010510101010107611100101101271001011011581100000001199100111010010100001010011140.0869570.0543480.0217390.1086960.0760870.1304350.0543480.2065220.1086960.1521740.0869570.1413040.1630430.2717390.3478260.4782610.5326090.7391300.8478261.0000003、选择在0~1之间产生一个随机数:0.5459290.7845670.4469300.5078930.2911980.7163400.2709010.3714350.854641个体染色体适应度选择概率累积概率1000110000082010111100153000000010124100111010010510101010107611100101101271001011011581100000001199100111010010100001010011140.0869570.0869570.0543480.1413040.0217390.1086960.0760870.1304350.0543480.2065220.1086960.1521740.2717390.3478260.4782610.5326090.7391300.8478261.0000000.163043淘淘汰4、交叉0001100000111001011011000000011001110100101010101011100101101001011011100111010011000000010001010011000110000011100101101100000001100111010000011110100000010110111100001011010110111100001001110100000110011101001100000001101010100010100100115、变异00011000001110010110110000000110011101001010101010111001011010010110111100000001100111010000010100110001111010000001011011110000101101011011110000100111010000011001110100110000000110101010001010010011000110000011100101101100000001100111010010101010101110010110100101101111000000011001110100000101001100011110100000010110111100001011010110111100001001010100000110011101001100000001101010100010100100116、至下一代,适应度计算→选择→交叉→变异,直至满足终止条件。遗传算法的改进轮盘赌选择方式是传统遗传算法中最经常使用的选择手段,因为轮盘赌选择方式非常直观而且也很简单,所以深受欢迎。轮盘赌不足之处:首先是在遗传进化的开始阶段,这个时候可能存在适应度较高的生物个体,根据轮盘赌选择方法,那么这个个体被选中的机会就会非常大,从而会选择复制出相当数量的子代,这就容易导致种群的多样性丧失,种群中个体太单调,很难再进行遗传进化,所以也很难搜索到全局最优解。选择算子的改进其次是在遗传进化的末了阶段,这个时候种群中的所有个体之间的差异不是很大了,因而适应度也很接近,所以此时的轮盘赌选择方法已经无效,丧失了继续选择的功能,也就无法分辨种群中个体的好坏了。改进方法:对种群中的全部个体来一次排序,根据种群中每个个体的适应度高低对这些个体进行降序列出。把这些按顺序排列出来的所有个体从头到尾依次分成四等份。适应度最低的排在最后面的1/4比例的个体全部扔掉,也就是直接淘汰掉,不进入到下一代当中;把适应度中等的排在中间的2/4比例的个体全部拷贝一份,也就是选择到下一代当中;剩下来的适应度最高的排在最前面的1/4比例的个体全部拷贝两份,也就是把这两份都选择到下一代当中。采用此种改进策略进行选择操作可以有以下几种好处:一、可以把适应度非常低的个体直接淘汰出该种群,使得这些个体没有机会进入到下一代当中,因此能够提升算法的收敛速度。二、快速增加种群中适应度较好的个体的数量,使得算法更加高效实用。交叉算子的改进一些较早的遗传算法当中,关于交叉算子的操作是非常简陋的,也是有点盲目的。对于一对需要进行交叉操作的父代个体,使用一个恒定不变的交叉概率来对这对父代个体实行交叉互换,也不论这对父代个体的相似程度如何。相似度:假定有两个父代个体,它们的编码是二进制的,一个个体叫做X,另一个个体口LI做Y,则关于个体X和个体Y的相似度可以进行这样定义:s=c/nS就表示两个父代个体的相似度,C表示个体X与个体Y的最长的共同子串的长度,n叫做种群中个体染色体编码的长度。假设个体x的染色体编码为10101011,个体Y的染色体编码为10101110,则个体X和个体Y的最长的共同子串就为101011。这个最长的共同子串的长度即为6,也就是C等于6,种群中个体染色体编码的长度是8,也即n等于8,因此就得到了个体X和个体Y的相似度的大小,即等于6/8。显然,种群中任意两个个体的相似度S的值是一个[0,1]之间的数。修正过的交叉临界值的公式为:r就表示交叉临界值,g表示该种群此时的进化代数,G表示该种群规定的总的进化代数。r是一个(1/3,2/3]之间的数,并不是固定不变的,是随着当前的进化代数的增长而不断增大的。如果需要进行交叉的两个父代个体的相似度S大于或等于当前的交叉临界值r时,则不准这两个父代个体进行交叉互换操作,以避免破坏它们的优良基因模式。需要进行交叉的两个父代个体的相似度S小于当前的交叉临界值r时,则允许这两个父代个体进行交叉互换操作。在种群进化的初期,由于种群中各个个体之间的差异比较大,因此它们的染色体编码也具有很大的差别,这个时候种群中各个个体之间的相似程度也会很小,所以必须给出一个相对较小的交叉临界值。随着种群的不断进化,种群中各个个体之间的差异会渐渐变小,因而各个个体之间的相似程度也会渐渐提高,所以此时必须给出一个相对较大的交叉临界值。种群中个体之间的交叉临界值随着当前进化代数动态的改变是有道理的,有助于提高遗传算法的收敛性能以及收敛速度。变异算子的改进基本遗传算法(SGA)中,变异概率是固定不变的,通常是一个很小的常数。在遗传进化后期,如果变异概率不发生改变,很容易造成局部收敛的情况,从而对算法的运行效率产生极大地影响。提出一种修正过的变异概率p。随适应度作自适应变化的公式:Pm为将要变异个体的变异概率,Pm_max为最大变异概率,这里取0.2,Pm_min为最小变异概率,这里取0.001,f即为将要变异个体的适应度,f_max为种群中最大的适应度,favg为每一代种群适应度的平均值。变异的个体的适应度大于等于此时种群的平均适应度时,如果将要变异个体的适应度越大,则该个体的变异概率就越小,正好符合“优胜劣汰,适者生存”的进化规律。变异的个体的适应度小于此时种群的平均适应度时,说明此个体为劣质个体或是非优良个体,不适应生存,为了扩大解空间,增强种群的多样性,需要给该个体一个较大的变异概率。这样做还可以使算法的局部搜索能力增强,有助于算法更快地达到全局收敛,因而能够很好的改善遗传算法的性能。遗传算法的应用及一些问题1、遗传算法的应用领域(1)组合优化(2)函数优化(3)自动控制(4)生产调度(5)图像处理(6)机器学习(7)人工生命(8)数据挖掘2、遗传算法在应用中的一些问题1)知识的编码二进制和十进制的比较:二进制有更多图
本文标题:遗传算法改进及经典算法应用PPT..
链接地址:https://www.777doc.com/doc-5190632 .html