遗传算法报告

上传人:cl****1 文档编号:572175350 上传时间:2024-08-12 格式:PPT 页数:39 大小:285KB
返回 下载 相关 举报
遗传算法报告_第1页
第1页 / 共39页
遗传算法报告_第2页
第2页 / 共39页
遗传算法报告_第3页
第3页 / 共39页
遗传算法报告_第4页
第4页 / 共39页
遗传算法报告_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《遗传算法报告》由会员分享,可在线阅读,更多相关《遗传算法报告(39页珍藏版)》请在金锄头文库上搜索。

1、 遗传算法及其MATLAB实现糯仲麦鳖格戮怔吕胳拔庙莽月姑堂庶诵划漆沫娥奇否叭广峙麦清汪双舍答遗传算法报告遗传算法报告遗传的生物学基础v遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。 Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些能适应环境的个体特征方能保留下来。 Mendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种

2、适应性。因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。 肝热式弦俭捷烘姚筋怠拦捻罩类酌猛弯陪关硒帐池气摸佰雾偏龙组茅营啮遗传算法报告遗传算法报告遗传算法的概念v遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法。v简单遗传算法有编解码、个体适应度评估和遗传算法三大模块组成,而遗传运算又包括染色体复制、交叉变异等。狂砸赴宴渤滁饿湖橙誓柔咱蛔倘脆鳖员羔谤橡希温蓖惜盼姿廉烩栈很燎赡遗传算法报告遗传算法报告遗传算法的实现步骤v1.编码v2.解码v3.个体适应度评估v4.复制v5.交配v6.突变v7.倒位陡昌讨篆深秦赵琼限役苏块友玩睡磕磕逢离军鸟眼

3、沏纹耸央泞速一床逊廖遗传算法报告遗传算法报告遗传算法基本操作流程图 开始产生初始种群(编码、解码)计算个体适应度值 复制 交配 变异满足终止条件? 输出最优解 结束YN赖吩卷俊货达惕副瘟惫假衙速原瞬岛缆防拇斌鳖妮则营缠牢烦额绢溢庸缉遗传算法报告遗传算法报告v1.编码 遗传算法的编码有浮点编码和二进制编码两种。 二进制编码二进制编码符合计算机处理信息的原理,能对染色体进行 遗传,编译和突变等操作。v设某一参数的取值范围为(L,U),长度为k,则它共有 种不同的编码。 00000000000000=0L 00000000000001=1 L+ 00000000000010=2L+2 0000000

4、0000011=3L+3 11111111111111= -1U 惋撩企试话赶吵马添茬芜泊访轴郊祖蒙缨裂挪或罚总捅茎报分缉蔚烦渣浮遗传算法报告遗传算法报告v2.解码 解码的目的是为了将不直观的二进制数据还原成十进制。 设二进制 ,则对应的解码公式为例:设有参数x2,3,现用4位二进制数对x进行编码,可 得 条染色体: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 任意数据代入译码公式,如x=0111 x=2+7* =2.4666667 飞综寂砍霍迈楼寡呻蓟乎趋挫嫉嚼航食言狮引署芯成

5、儒总片树位学菩潮寅遗传算法报告遗传算法报告v3.个体适应度评估 遗传算法依照与适应度成正比的概率来确定各个个体复制到下一代群体 的机会。 个体适应度大的个体更容易遗传到下一代。通常,求目标函数最大值问题可以直接把目标函数作为检测个体适应度大小的函数。缺购丰言湛惹郴燕纷惯萎涉林速怕韵嘴索妨沤校防剂分贵夹粘吠判衍锥爸遗传算法报告遗传算法报告v4.复制运算复制运算把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体中。一般要求适应度较高的个体将有更多的机会遗传到下一代群体中。 若设种群众个体总数为N,个体i适应度为fi: 先计算出群体中所有个体的适应度的总和 fk ( k=1.2,N );

6、其次计算出每个个体的相对适应度的大小 fI/ fK,它即为每个个体被遗传到下一代群体中的概率。 每个概率值组成一个区域,全部概率值之和为1; 最后再产生一个0到1之间的随机数,依据该随机数出现在上述哪一个概率区域内来确定各个个体被选中的次数。 连练酋蔑谗焰纸联凯具逼抨实酷孽甲佰员赠卓课拢剿姆叉厚勇牛禽敲撵集遗传算法报告遗传算法报告v5交配 对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交配概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交配时,可实行单点交配或多点交配。 例如有个体 S1=100101 S2=010111 选

7、择它们的左边3位进行交配操作,则有 S1=010101 S2=100111 一般而言,交配概率P。取值为0.250.75。 群涂扛飞怠徽找恋水汝商宿丑群聚炎都括坛杨祈挑雏偿该拭吩漠千剐肾惨遗传算法报告遗传算法报告6.突变 突变运算是使用基因位进行基因突变。假设突变几率Pm,即种群内所有基因都有Pm的概率进行突变,每个基因突变几率是均等的。因此将产生一系列随机数,然后将小于Pm的随机数选出,并将其对应的基因值翻转,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。 例如有个体S101011。对其的第1,4位置的基因进行变异,则有 S=0

8、01111 。单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质 垛擂绰眯浑割碗乾姓猖胀口虾棉至遁筒棠粕振影财坚侩毛泰穴氢茧茵绎批遗传算法报告遗传算法报告遗传算法实例 问题:求发问题:求发f(x)=x2在在0,31上的上的 最大值最大值。一、初始种群一、初始种群1.编码:用五位二进制表示编码:用五位二进制表示x,有,有x=0 0 0 0 0 0 x=31 1 1 1 1 1 2.初始种群初始种群随机产生随机产生4个个体:个个体:13 , 24 , 8 ,

9、193.适应度适应度f fi i直接用目标函数作为适应度:直接用目标函数作为适应度:f fi i=x=xi i2 2戎持渤颇却搓俐华意恶扫羞龋宠篇驻全乡蕊图爬密蛛唤拈职梳加稳证挫醒遗传算法报告遗传算法报告4复制概率复制概率Ps染色体被复制的概率(选择率):染色体被复制的概率(选择率): p ps=f=fi/f/fi累积概率累积概率 PPk k平均适应度:平均适应度: f f =f =fi/n/n5 5新种群复制新种群复制 辅都赣盲煮冀潜添烷弘碉绝细妆意舵柠吏伞除壶冯竣肇坍剂疲磕潭名凭逗遗传算法报告遗传算法报告编号初始种群位串 参数值x值目标适应值f(x)=x2复制概率率fi/fi累积概率下一代

10、个体数目12340 1 1 0 11 1 0 0 00 1 0 0 0 1 0 0 1 1132489169576643610.140.490.060.310.140.630.691.001201总和平均值最大值11702935761.000.250.494.01.02.0初始种群参数计算套宪晤峰撕某勺脐寂洛款废皮菲沫龙西踌菇阳肿驶某同虽拾咽芋考蹭申冈遗传算法报告遗传算法报告二、遗传二、遗传选择后的交配池(下划线部分交叉)交配对象(随机选择)交叉位置(随机选择)新的种群xf(x)=x20 1 1 0 11 1 0 0 01 1 0 0 0 1 0 0 1 1214344220 1 1 0 01

11、 1 0 0 11 1 0 1 1 1 0 0 0 0 12252716144625729256总和平均值最大值1754439729颜龄苗泞抛戊鄂茁沪屉煤纯贝励宫罕粳龙危声遁群拴滔坚霖采仓莲嘶节仙遗传算法报告遗传算法报告说明:说明:1.复制复制 在种群众,被复制的概率高者多繁殖;低者在种群众,被复制的概率高者多繁殖;低者少繁殖或不繁殖。少繁殖或不繁殖。 繁殖(复制)的个体放入交配池中。繁殖(复制)的个体放入交配池中。2.交叉交叉 随机选择交配对象(相同个体不交配),如随机选择交配对象(相同个体不交配),如个体个体1和和2,3 和和4。 随机选择交叉点进行交叉。随机选择交叉点进行交叉。甲沥拢裙篱

12、蕊曙声明仍诉殆豺霓铰日也摘梳奔潮督卸在骆锨锥娃孟渍您驭遗传算法报告遗传算法报告3.突变突变 取变异概率取变异概率pe=0.01,表示每,表示每100个体中有一个体中有一个个体的一位发生变异。(暂不变异)个个体的一位发生变异。(暂不变异) 新的种群,其平均值和最大值都有很大提高。新的种群,其平均值和最大值都有很大提高。 均值:均值:293 439最大值最大值:576 729 新种群中四个个体,有新种群中四个个体,有2个变好:个变好:25,25;2个变坏:个变坏:12,16。鼎滞右混涌卵撵搭挣焚瞥欺良莎淌维邯佃核贴窿泥味多井邵谓狞昧百原乘遗传算法报告遗传算法报告三、再遗传一代三、再遗传一代编号初始

13、种群位串 参数值x值目标适应值f(x)=x2复制概率率fi/fi累积概率下一代个体12340 1 1 0 01 1 0 0 11 1 0 1 11 0 0 0 0122527161446257292560.080.360.420.140.080.440.861.000121总和平均值最大值17544397291.000.250.42评浩拭葡贩吨唆业碟现袭菌券忽连本驭瓷昼啊钱烈而悔渺满狙是谆涎催拨遗传算法报告遗传算法报告选择后的交配池(下划线部分交叉)交叉对象(随机选择)交叉位置(随机选择)新的种群xf(x)=x21 1 0 0 11 1 0 1 11 1 0 1 1 1 0 0 0 02143

14、11331 1 0 1 11 1 0 0 11 1 0 0 0 1 0 0 1 127252419729625576361总和平均值最大值2291572729葛售稳古株宗填朽逸累施峙楞吝治遇衬季亨学僻子泞贪默侍核楷踊甫自镣遗传算法报告遗传算法报告 单纯用交叉而没有用变异,则遗传多少代得单纯用交叉而没有用变异,则遗传多少代得不到最优解不到最优解31(1 1 1 1 1 )。主要是第三位所有。主要是第三位所有个体都是个体都是0,这样只能得到,这样只能得到27(1 1 0 1 1) 次次优解。优解。 若在第四位中挑选一个个体进行变异,由若在第四位中挑选一个个体进行变异,由0变成变成1,在进行遗传将会

15、得到最优解。,在进行遗传将会得到最优解。说明:说明:莹瓶南啦侠操撑遗盎讹焉受撞笼码滁梢怂履省烫述快蔽里册蕾伤励浇踩汀遗传算法报告遗传算法报告v例2用matlab实现遗产算法求解: maxf(x)=200e(-0.05x)sin(x), x-2,2供终糖折砂疵午贡儿欺颓皮佣毖甭占瓦式烟息由哺煤诉税惮要猴镊送救腔遗传算法报告遗传算法报告v%子程序:将二进制数转换为十进制数,函数名称存储为transform2to10.mvfunction x=transform2to10(Population);vBitLength=size(Population,2);vx=Population(BitLengt

16、h);vfor i=1:BitLength-1vx=x+Population(BitLength-i)*power(2,i);vend割嫂锄姐墩途骄期琶羊割淋李削暇赏殃鞭哨擎讶旨菌么睛铡清财傀斯肚责遗传算法报告遗传算法报告v%子程序:对于优化最大值或极大值函数问题,目标函数可以作为适应度函数v%函数名称存储为targetfun.mvfunction y=targetfun(x); %目标函数 vy=200*exp(-0.05*x).*sin(x);愿谜货主烯彪耶核街棋据荧蛙恨湛迫墨楷螟仗尝赶斯欧投再也煤久演煽资遗传算法报告遗传算法报告v%子程序:计算适应度函数,函数名称存储为fitnessfu

17、nvfunctionFitvalue,cumsump=fitnessfun(population);vglobal BitLengthvglobal boundsbeginvglobal boundsendvpopsize=size(population,1); %有popsize个个体vfor i=1:popsizev x=transform2to10(population(i,:); %将二进制转化为十进制v %转化为-2 2区间的实数v xx=boundsbegin+x*(boundsend-boundsbegin)/(power(boundsend),BitLength)-1);v F

18、itvalue(i)=targetfun(xx); %计算函数值,即适应度vendv%给适应度函数加上一个大小合理的数以便保证种群适应值为正数vFitvalue=Fitvalue+230;v%计算选择概率vfsum=sum(Fitvalue);vPperpopulation=Fitvalue/fsum;v%计算累积概率vcumsump(1)=Pperpopulation(1);vfor i=2:popsizev cumsump(i)=cumsump(i-1)+Pperpopulation(i);vendvcumsump=cumsump;馁绘萎啄瑟陕僚劳常遭利瓶色瞳椿验扮砖蛛秘阂昼努妖致瀑澜舱秉

19、崔框宦遗传算法报告遗传算法报告v%子程序:新种群选择操作,函数名称存储为selection.mvfunction seln=selection(population,cumsump);v%从种群中选择两个个体vfor i=1:2vr=rand; %产生一个随机数vprand=cumsump-r;vj=1;vwhile prand(j)0vj=j+1;vendvseln(i)=j; %选中个体的序号vend候结谰募趴馏组窝洪舵偷句巳猖祟放岗冕席戚夜波冶拼坟扣陶丧泌座盒蠕遗传算法报告遗传算法报告v%子程序:判断遗传运算是否进行交叉或变异,函数名称存储为IfCroIfMut.mvfunction p

20、cc=IfCroIfMut(mutORcro);vtest(1:100)=0;vl=round(100*mutORcro);vtest(1:1)=1;vn=round(rand*99)+1;vpcc=test(n);郸逝僵太费犹都倚荫烯林蔬稚繁蹲柯世针陌荧液脸税哟拖灯萄徽傀栗栽舟遗传算法报告遗传算法报告v%子程序,新种群变异操作,函数名称存储为mutation.mvfunction snnew=mutation(snew,pmutation);vBitLength=size(snew,2);vsnnew=snew;vpmm=IfCroIfMut(pmutation); %根据变异概率决定是否进

21、行变异操作,1则是,0则否vif pmm=1vchb=round(rand*(BitLength-1)+1; %在1,BitLength范围内随机产生一个变异位vsnnew(chb)=abs(snew(chb)-1);vend狄蓄建邹轴副滴阻泣吝笼森材烙吸缚柬伯睛疫乃粒华丽鬃进醇樊俞嘻怂政遗传算法报告遗传算法报告v%主程序:用遗传算法求解y=200*exp(-0.05*x).*sin(x)在-2 2区间上的最大值vclc;vclear all;vclose all;vglobal BitLengthvglobal boundsbeginvglobal boundsendvbounds=-2 2

22、; %一维自变量的取值范围vprecision=0.0001; %运算精度vboundsbegin=bounds(:,1); vboundsend=bounds(:,2);v%计算如果满足求解精度至少需要多长的染色体vBitLength=ceil(log2(boundsend-boundsbegin)./precision);vpopsize=50; %初始种群大小vGenerationnmax=12; %最大代数vpcrossover=0.90; %交配概率vpmutation=0.09; %变异概率v%产生初始种群vpopulation=round(rand(popsize,BitLeng

23、th);v%计算适应度,返回适应度Fitvalue和累积概率cumsump悯铱鲤孪撮二欺邀窒女珊袱慎亨霍爪纳牌憨茂恶辛挡呛鸯氨噪敬隧讼顷付遗传算法报告遗传算法报告vFitvalue,cumsump=fitnessfun(population);vGeneration=1;vwhile Generation %if和else后面的语句不必分行书写vfunction f=lbw(x) %储存M文件,名为lbw.mvif(x(1)30|x(1)30|x(2)30|x(3)30|x(4)30|x(5)30|x(6)30|x(7)30|x(8)30|x(9)30|x(10)-30);v f=300;ve

24、lsev f=-2*pi*exp(-0.2*sqrt(1/10*(x(1).2+(x(2).2+(x(3).2+(x(4).2+(x(5).2+(x(6).2+(x(7).2+(x(8).2+(x(9).2+(x(10).2)-exp(1/10*(cos(2*pi*x(1)+cos(2*pi*x(2)+cos(2*pi*x(3)+cos(2*pi*x(4)+cos(2*pi*x(5)+cos(2*pi*x(6)+cos(2*pi*x(7)+cos(2*pi*x(8)+cos(2*pi*x(9)+cos(2*pi*x(10)+2*pi;vend%保存为M文件v在命令窗口输入:voptions=gaoptimset(Generations,800,StallGenLimit,300,PlotFcns,gaplotbestf);vx,f=ga(lbw,10,options)酸趾擦魏桩肉动槛钩彰柑兆系悉僧恿毫资滋披薪乎水哈疡蕾煞嫉闻民棋神遗传算法报告遗传算法报告汉另娥甄牲契袱榆诅鸽突挞辫特邹括似汕糖妖赃洲巳颁抿予酿迭迫锨盗嘻遗传算法报告遗传算法报告v 谢 谢!仆疙肯灾侄咬涧劫牺抄修骑亨鸭扇抑轧炒赋健战霞枝上巢十痕钓阅陪邵照遗传算法报告遗传算法报告

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 销售管理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号