智能控制实验遗传算法产量预测神经网络(下)..docxVIP

智能控制实验遗传算法产量预测神经网络(下)..docx

  1. 1、本文档共7页,可阅读全部内容。
  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文档。上传文档
查看更多
智能控制实验遗传算法产量预测神经网络(下).

实验三、基本遗传算法设计实验%初始化function result=Initial(length)for i=1:length r=rand();result(i)=round(r);end%十进制与二进制转换function y=Dec(a,b,x,L)base=2.^((L-1):-1:0); y=dot(base,x); y=a+y*(b-a)/(2^L-1);%适应度函数的自变量%适应度函数function F=fitness(x)F=20+x+10*sin(4*x)+8*cos(3*x);%GA函数function [xv, fv]=GA(fitness,a,b,NP,NG,pc,pm)L=4;x=zeros(NP,L);% 20X5的零矩阵for i=1:NP; x(i,:)=Initial(L);%调用初始化函数 fx(i)=fitness(Dec(a,b,x(i,:),L));%计算目标适应度endfor k=1:NG%NG为迭代次数 sumfx=sum(fx);%适应度总和 px=fx/sumfx;%每个种群适应度除以总适应度 ppx=0; ppx(1)=px(1); for i=2:NP ppx(i)=ppx(i-1)+px(i);%计算累计适应度 end for i=1:NP sita=rand();%生成随机数 for n=1:NP %确定父体染色体 if sita=ppx(n) SelFather=n;break; end end SelMother=floor(rand()*(NP-1))+1;%计算母体 posCut=floor(rand()*(L-2))+1;%求基因交叉点 r1=rand();%随机生成交叉率决定是否进行交叉 if r1=pc nx(i,1:posCut)=x(SelFather,1:posCut);%保留父体的交叉断点前面的基因 nx(i,(posCut+1):L)=x(SelMother,(posCut+1):L);%保留母体交叉断点后面的基因 r2=rand();%随机生成变异率决定是否进行变异 if r2=pm posMut=round(rand()*(L-1)+1);%变异基因位置 nx(i,posMut)=~nx(i,posMut);%第i行posMut列取反,即变异 end else nx(i,:)=x(SelFather,:);%不交叉时处理,副本等于下一代基因 end end x=nx;%交叉变异后得到子代基因 for i=1:NP fx(i)=fitness(Dec(a,b,x(i,:),L));%计算子代基因的适应度 endend fv=-inf; %筛选进化NG代后NP个种群中各个种群基因的适应度的最大值 for i=1:NP fitx=fitness(Dec(a,b,x(i,:),L));%求适应度 if fitxfv%比较适应度,保留较大值 fv=fitx; xv=Dec(a,b,x(i,:),L); end end %遗传算法主程序a=0;b=10;%计算区间[0 10]NP=50;%初始种群个数NG=10000;%迭代次数pc=0.6;%交叉率pm=0.04;%变异率[xv, fv]=GA(@fitness,a,b,NP,NG,pc,pm); disp 最优个体xvdisp 最优适应度fv运行结果:思考题1、求y=x*x在【0,31】的最大值找到并修改以下三处:y-x*x 适应度函数b=31; 主程序中改变赋值L=5; GA中改变赋值2、如何求最小值并考虑怎样修改程序:f(x)=x^2-10x+16【0,31】的最小值?f(x)=10000-(x*x-10*x+16)适应度函数b=31; 主程序中改变赋值L=5; GA中改变赋值fv= 10000-fv 主程序中最后一句注:文中加粗且加背景色的地方为可改变的地方,基本上每个人都不一样!!!

文档评论(0)

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

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

1亿VIP精品文档

相关文档