遗传算法报告.ppt

上传人:sccc 文档编号:5151364 上传时间:2023-06-09 格式:PPT 页数:39 大小:285KB
返回 下载 相关 举报
遗传算法报告.ppt_第1页
第1页 / 共39页
遗传算法报告.ppt_第2页
第2页 / 共39页
遗传算法报告.ppt_第3页
第3页 / 共39页
遗传算法报告.ppt_第4页
第4页 / 共39页
遗传算法报告.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《遗传算法报告.ppt》由会员分享,可在线阅读,更多相关《遗传算法报告.ppt(39页珍藏版)》请在三一办公上搜索。

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

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

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

4、1=3L+3 11111111111111=-1U,惋撩企试话赶吵马添茬芜泊访轴郊祖蒙缨裂挪或罚总捅茎报分缉蔚烦渣浮遗传算法报告遗传算法报告,2.解码 解码的目的是为了将不直观的二进制数据还原成十进制。设二进制,则对应的解码公式为例:设有参数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、算法报告遗传算法报告,3.个体适应度评估 遗传算法依照与适应度成正比的概率来确定各个个体复制到下一代群体 的机会。个体适应度大的个体更容易遗传到下一代。通常,求目标函数最大值问题可以直接把目标函数作为检测个体适应度大小的函数。,缺购丰言湛惹郴燕纷惯萎涉林速怕韵嘴索妨沤校防剂分贵夹粘吠判衍锥爸遗传算法报告遗传算法报告,4.复制运算复制运算把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体中。一般要求适应度较高的个体将有更多的机会遗传到下一代群体中。若设种群众个体总数为N,个体i适应度为fi:先计算出群体中所有个体的适应度的总和 fk(k=1.2,N);其次计算出每个个体的相对适应度的大

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

7、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=001111。单靠变异不能在求解中得到好处。

8、但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质,垛擂绰眯浑割碗乾姓猖胀口虾棉至遁筒棠粕振影财坚侩毛泰穴氢茧茵绎批遗传算法报告遗传算法报告,遗传算法实例,问题:求发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,193.适应度fi直接用目标函数作为适应度:fi=xi2,戎持渤颇却搓俐华意恶扫羞龋宠篇驻全乡蕊图爬密蛛唤拈职梳加稳证挫醒遗传算法报告遗

9、传算法报告,4复制概率Ps染色体被复制的概率(选择率):ps=fi/fi累积概率 Pk平均适应度:f=fi/n5新种群复制,辅都赣盲煮冀潜添烷弘碉绝细妆意舵柠吏伞除壶冯竣肇坍剂疲磕潭名凭逗遗传算法报告遗传算法报告,初始种群参数计算,套宪晤峰撕某勺脐寂洛款废皮菲沫龙西踌菇阳肿驶某同虽拾咽芋考蹭申冈遗传算法报告遗传算法报告,二、遗传,颜龄苗泞抛戊鄂茁沪屉煤纯贝励宫罕粳龙危声遁群拴滔坚霖采仓莲嘶节仙遗传算法报告遗传算法报告,说明:,1.复制 在种群众,被复制的概率高者多繁殖;低者少繁殖或不繁殖。繁殖(复制)的个体放入交配池中。2.交叉 随机选择交配对象(相同个体不交配),如个体1和2,3 和4。随机

10、选择交叉点进行交叉。,甲沥拢裙篱蕊曙声明仍诉殆豺霓铰日也摘梳奔潮督卸在骆锨锥娃孟渍您驭遗传算法报告遗传算法报告,3.突变 取变异概率pe=0.01,表示每100个体中有一个个体的一位发生变异。(暂不变异)新的种群,其平均值和最大值都有很大提高。均值:293 439 最大值:576 729 新种群中四个个体,有2个变好:25,25;2个变坏:12,16。,鼎滞右混涌卵撵搭挣焚瞥欺良莎淌维邯佃核贴窿泥味多井邵谓狞昧百原乘遗传算法报告遗传算法报告,三、再遗传一代,评浩拭葡贩吨唆业碟现袭菌券忽连本驭瓷昼啊钱烈而悔渺满狙是谆涎催拨遗传算法报告遗传算法报告,葛售稳古株宗填朽逸累施峙楞吝治遇衬季亨学僻子泞贪

11、默侍核楷踊甫自镣遗传算法报告遗传算法报告,单纯用交叉而没有用变异,则遗传多少代得不到最优解31(1 1 1 1 1)。主要是第三位所有个体都是0,这样只能得到27(1 1 0 1 1)次优解。若在第四位中挑选一个个体进行变异,由0变成1,在进行遗传将会得到最优解。,说明:,莹瓶南啦侠操撑遗盎讹焉受撞笼码滁梢怂履省烫述快蔽里册蕾伤励浇踩汀遗传算法报告遗传算法报告,例2用matlab实现遗产算法求解:maxf(x)=200e(-0.05x)sin(x),x-2,2,供终糖折砂疵午贡儿欺颓皮佣毖甭占瓦式烟息由哺煤诉税惮要猴镊送救腔遗传算法报告遗传算法报告,%子程序:将二进制数转换为十进制数,函数名称

12、存储为transform2to10.mfunction x=transform2to10(Population);BitLength=size(Population,2);x=Population(BitLength);for i=1:BitLength-1x=x+Population(BitLength-i)*power(2,i);end,割嫂锄姐墩途骄期琶羊割淋李削暇赏殃鞭哨擎讶旨菌么睛铡清财傀斯肚责遗传算法报告遗传算法报告,%子程序:对于优化最大值或极大值函数问题,目标函数可以作为适应度函数%函数名称存储为targetfun.mfunction y=targetfun(x);%目标函数

13、y=200*exp(-0.05*x).*sin(x);,愿谜货主烯彪耶核街棋据荧蛙恨湛迫墨楷螟仗尝赶斯欧投再也煤久演煽资遗传算法报告遗传算法报告,%子程序:计算适应度函数,函数名称存储为fitnessfunfunctionFitvalue,cumsump=fitnessfun(population);global BitLengthglobal boundsbeginglobal boundsendpopsize=size(population,1);%有popsize个个体for i=1:popsize x=transform2to10(population(i,:);%将二进制转化为十进制

14、%转化为-2 2区间的实数 xx=boundsbegin+x*(boundsend-boundsbegin)/(power(boundsend),BitLength)-1);Fitvalue(i)=targetfun(xx);%计算函数值,即适应度end%给适应度函数加上一个大小合理的数以便保证种群适应值为正数Fitvalue=Fitvalue+230;%计算选择概率fsum=sum(Fitvalue);Pperpopulation=Fitvalue/fsum;%计算累积概率cumsump(1)=Pperpopulation(1);for i=2:popsize cumsump(i)=cums

15、ump(i-1)+Pperpopulation(i);endcumsump=cumsump;,馁绘萎啄瑟陕僚劳常遭利瓶色瞳椿验扮砖蛛秘阂昼努妖致瀑澜舱秉崔框宦遗传算法报告遗传算法报告,%子程序:新种群选择操作,函数名称存储为selection.mfunction seln=selection(population,cumsump);%从种群中选择两个个体for i=1:2r=rand;%产生一个随机数prand=cumsump-r;j=1;while prand(j)0j=j+1;endseln(i)=j;%选中个体的序号end,候结谰募趴馏组窝洪舵偷句巳猖祟放岗冕席戚夜波冶拼坟扣陶丧泌座盒蠕

16、遗传算法报告遗传算法报告,%子程序:判断遗传运算是否进行交叉或变异,函数名称存储为IfCroIfMut.mfunction pcc=IfCroIfMut(mutORcro);test(1:100)=0;l=round(100*mutORcro);test(1:1)=1;n=round(rand*99)+1;pcc=test(n);,郸逝僵太费犹都倚荫烯林蔬稚繁蹲柯世针陌荧液脸税哟拖灯萄徽傀栗栽舟遗传算法报告遗传算法报告,%子程序,新种群变异操作,函数名称存储为mutation.mfunction snnew=mutation(snew,pmutation);BitLength=size(sne

17、w,2);snnew=snew;pmm=IfCroIfMut(pmutation);%根据变异概率决定是否进行变异操作,1则是,0则否if pmm=1chb=round(rand*(BitLength-1)+1;%在1,BitLength范围内随机产生一个变异位snnew(chb)=abs(snew(chb)-1);end,狄蓄建邹轴副滴阻泣吝笼森材烙吸缚柬伯睛疫乃粒华丽鬃进醇樊俞嘻怂政遗传算法报告遗传算法报告,%主程序:用遗传算法求解y=200*exp(-0.05*x).*sin(x)在-2 2区间上的最大值clc;clear all;close all;global BitLengthgl

18、obal boundsbeginglobal boundsendbounds=-2 2;%一维自变量的取值范围precision=0.0001;%运算精度boundsbegin=bounds(:,1);boundsend=bounds(:,2);%计算如果满足求解精度至少需要多长的染色体BitLength=ceil(log2(boundsend-boundsbegin)./precision);popsize=50;%初始种群大小Generationnmax=12;%最大代数pcrossover=0.90;%交配概率pmutation=0.09;%变异概率%产生初始种群population=r

19、ound(rand(popsize,BitLength);%计算适应度,返回适应度Fitvalue和累积概率cumsump,悯铱鲤孪撮二欺邀窒女珊袱慎亨霍爪纳牌憨茂恶辛挡呛鸯氨噪敬隧讼顷付遗传算法报告遗传算法报告,Fitvalue,cumsump=fitnessfun(population);Generation=1;while GenerationGenerationnmax+1 for j=1:2:popsize%选择操作 seln=selection(population,cumsump);%交叉操作 scro=crossover(population,seln,pcrossover);

20、scnew(j,:)=scro(1,:);scnew(j+1,:)=scro(2,:);%变异操作 smnew(j,:)=mutation(scnew(j,:),pmutation);smnew(j+1,:)=mutation(scnew(j+1,:),pmutation);end population=smnew;%产生了新的种群%计算新种群的适应度 Fitvalue,cumsump=fitnessfun(population);%记录当前代最好的适应度和平均适应度 fmax,nmax=max(Fitvalue);fmean=mean(Fitvalue);ymax(Generation)=f

21、max;ymean(Generation)=fmean;%记录当前代的最佳染色体个体 x=transform2to10(population(nmax,:);%自变量取值范围是-2 2,需要把经过遗传运算的最佳染色体整合到-2 2区间 xx=boundsbegin+x*(boundsend-boundsbegin)/(power(boundsend),BitLength)-1);xmax(Generation)=xx;Generation=Generation+1;endGeneration=Generation-1;%显示结果Bestpoplation=xxBesttargetfunvalu

22、e=targetfun(xx)%绘制经过遗传运算后的适应度曲线。一般的,如果进化过程中种群的平均适应度与最大适应度在曲线上有相互%趋同的形态,表示算法收敛进行的很顺利,没有出现震荡;在这种前提下,最大适应度个体连续若干代都没有发生进化表明种群已经成熟,烯铆成舔芭族买铀烬盐屿典部淌俊泼首皮趟非串芬匈晚苑顿帚军骤宠坦隆遗传算法报告遗传算法报告,%作图figure(1);hand1=plot(1:Generation,ymax);set(hand1,linestyle,-,linewidth,1.8,marker,*,markersize,6)hold on;hand2=plot(1:Generat

23、ion,ymean);set(hand2,color,r,linestyle,-,linewidth,1.8,marker,h,markersize,6)xlabel(进化代数);ylabel(最大/平均适应度);xlim(1 Generationnmax);legend(最大适应度,平均适应度);box off;hold off;,汹呆简昔腥挎哨蕴泅陌邀砾肛躇旧孙吮滩民摩霉嫌节嚼掩讽徒恶副叔响哪遗传算法报告遗传算法报告,驮菜藻奏捞守扼荣圭磋贵趁别准逢会腿嘘启莲商阑烧丝痞茫髓雕箩力袜袍遗传算法报告遗传算法报告,MATLAB遗传算法工具箱,GA工具箱GA ToolboxGA的计算过程流程图,编码

24、和种群生成,种群适应度估计,选择,交叉,变异,俘宴诧甭件搓马吞哆铜桓作机津履钧贞侈铁哄碍题陕枯蛀渊掌靳最芦牟峪遗传算法报告遗传算法报告,GA的特点GA是对问题参数的编码组进行计算,而不是针对参数本身。GA的搜索是从问题解的编码组开始搜索,而不是从单个解开始。GA使用目标函数值(适应度)这一信息进行搜索,而不需导数等其他信息。GA算法使用的选择,交叉,变异这三个算子都是随机操作而不是确定规则,砂厌台未愧窗偶进漆韵眉庇炉曙卯割闺参你阵糕树话楞乓蓬慌晾到刚瘤毯遗传算法报告遗传算法报告,工具箱核心函数的用法函数ga的语法格式为x,fval,reason=ga(fitnessfun,nvars,opti

25、ons)其中x为经过遗传进化以后自变量最佳染色体返回值;fval为最佳染色体的适应度;reason为算法停止的原因;fitnessfun为适应度句柄函数;nvars为目标函数自变量的个数;options为算法的属性设置,该属性是通过函数gaoptimset赋予的。函数gaoptimset 函数gaoptimset的语法格式为Options=gaoptimset(propertyName1,propertyValue1,propertyName 2,propertyValue 2,propertyName 3,propertyValue 3)函数gaoptimset的功能是设置遗传算法的参数和句

26、柄函数。,霞枣葛硫韦魂色杭矽机瞧篷芥境媚两制待惯免瘁哺催挞兵邢乳伺艇劳枚磕遗传算法报告遗传算法报告,函数gaoptimset常用的11种属性,驱卸坠博临姻浇袜崩对迄舜替拱孩敷坚尸彝辫忆并蚤彩煎涟诧修毁母濒焉遗传算法报告遗传算法报告,程序设计范例 求解目标函数 此函数在-30,30区间上都只有一个最小值,这个理论最小值为 minf(x)=-e=-2.718281828459045,傈容受兄计蜀余基穗岩牵型誉懈株听盂蛆肚镶泽疫耳污甲歉苯雅董无兄纫遗传算法报告遗传算法报告,%if和else后面的语句不必分行书写function f=lbw(x)%储存M文件,名为lbw.mif(x(1)30|x(1)

27、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);f=300;else 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

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号