遗传算法简单一元函数优化实例.docxVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.遗传算法简单一元函数优化实例利用遗传算法计算最大值f(x)=x sin(10*pi*x)+2,????x in [-1,2]选择二进制编码,种群中个体数目为40,每个种群的长度为20,使用代沟为0.9,最大遗传代数为25。下面为一元函数优化问题的MATLAB代码figure(1);fplot(variable.*sin(10*pi*variable)+2.0,[-1,2]);???%画出函数曲线%定义遗传算法参数NIND=40;????????%个体数目(Number of individuals)MAXGEN=25;??????%最大遗传代数(Maximum number of generations)PRECI=20;???????%变量的二进制位数(Precision of variables)GGAP=0.9;???????%代沟(Generation gap)trace=zeros(2, MAXGEN);????????????????????????%寻优结果的初始值FieldD=[20;-1;2;1;0;1;1];??????????????????????%区域描述器(Build field descriptor)Chrom=crtbp(NIND, PRECI);??????????????????????%初始种群gen=0;?????????????????????????????????????????%代计数器variable=bs2rv(Chrom, FieldD);?????????????????%计算初始种群的十进制转换ObjV=variable.*sin(10*pi*variable)+2.0;????????%计算目标函数值while genMAXGEN???FitnV=ranking(-ObjV);??????????????????????????????????%分配适应度值(Assign fitness values)???????????SelCh=select(sus, Chrom, FitnV, GGAP);???????????????%选择???SelCh=recombin(xovsp, SelCh, 0.7);???????????????????%重组???SelCh=mut(SelCh);??????????????????????????????????????%变异???variable=bs2rv(SelCh, FieldD);?????????????????????????%子代个体的十进制转换???ObjVSel=variable.*sin(10*pi*variable)+2.0;?????????????%计算子代的目标函数值???[ChromObjV]=reins(Chrom, SelCh, 1, 1, ObjV, ObjVSel); %重插入子代的新种群???variable=bs2rv(Chrom, FieldD);???gen=gen+1;?????????????????????????????????????????????%代计数器增加???%输出最优解及其序号,并在目标函数图像中标出,Y为最优解,I为种群的序号???[Y, I]=max(ObjV);hold on;???plot(variable(I), Y, bo);???trace(1, gen)=max(ObjV);???????????????????????????????%遗传算法性能跟踪???trace(2, gen)=sum(ObjV)/length(ObjV);endvariable=bs2rv(Chrom, FieldD);????????????????????????????%最优个体的十进制转换hold on, grid;plot(variable,ObjV,b*);figure(2);plot(trace(1,:));hold on;plot(trace(2,:),-.);gridlegend(解的变化,种群均值的变化)基于排序的适应度分配计算由程序段FitnV=ranking(-ObjV)实现,这里的评定算法假设目标函数是最小化的,所以ObjV前加了个负号,使目标函数最大化,适应度值结果由向量FitnV返回。2.matlab遗传算法工具箱函数及实例讲解核心函数:(1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始种群的生成函数【输出参数】???pop--生成的初始种群【输入参数】???num--种群中的个体数目???bounds--代表变量的上下界的矩阵???eev

文档评论(0)

ktj823 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档