用遗传算法求函数的最大值MATLAB程序

用遗传算法求函数的最大值MATLAB程序

ID:39870520

大小:80.04 KB

页数:5页

时间:2019-07-13

用遗传算法求函数的最大值MATLAB程序_第1页
用遗传算法求函数的最大值MATLAB程序_第2页
用遗传算法求函数的最大值MATLAB程序_第3页
用遗传算法求函数的最大值MATLAB程序_第4页
用遗传算法求函数的最大值MATLAB程序_第5页
资源描述:

《用遗传算法求函数的最大值MATLAB程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2利用遗传算法求解f(x)=x,0≤x≤31的最大值。MATLAB程序如下:clearclctotal=1;%总的进化代数Num=0;MaN1=0;MaN2=0;flag=0;N1=initialize();N2=initialize();N3=initialize();N4=initialize();%复制-reproductionwhile1while1DecN1=BinToDec(N1);%计算适配度DecN2=BinToDec(N2);DecN3=BinToDec(N3);DecN4=BinToDec(N4);f1=DecN1^2

2、;f2=DecN2^2;f3=DecN3^2;f4=DecN4^2;ttt=[f1,f2,f3,f4];ifflag==0MaN1=max(ttt);elseMaN2=max(ttt);endifMaN1==MaN2Num=Num+1;elseNum=0;endsum=f1+f2+f3+f4;aver=sum/4;n1=round(f1/aver);%实际得到的复制个数n2=round(f2/aver);n3=round(f3/aver);n4=round(f4/aver);N=n1+n2+n3+n4;%总的复制个数ifN~=4%引入N:

3、保持原种群大小不变N1=initialize();N2=initialize();N3=initialize();N4=initialize();total=1;Num=0;MaN1=0;MaN2=0;flag=0;continue;elsebreak;endendtemp1=cal(N1,n1);temp2=cal(N2,n2);temp3=cal(N3,n3);temp4=cal(N4,n4);M=[temp1;temp2;temp3;temp4];N1=M(1,:);N2=M(2,:);N3=M(3,:);N4=M(4,:);%交叉

4、-crossoverwhile1p=floor(1000*rand);ifp>1break;elsecontinue;endendk=mod(p,3);switchkcase0[N1,N2,N3,N4,ps]=crossover(N1,N2,N3,N4);case1[N1,N3,N2,N4,ps]=crossover(N1,N3,N2,N4);case2[N1,N4,N2,N3,ps]=crossover(N1,N4,N2,N3);end%变异-mutationU=[N1,N2,N3,N4];pos=mod(floor(1000*rand

5、),20)+1;ifU(1,pos)==0U(1,pos)=1;elseU(1,pos)=0;endN1=U(1,1:5);N2=U(1,6:10);N3=U(1,11:15);N4=U(1,16:20);%遗传算法结束条件:连续10代最大值均保持一致ifNum==10disp('进化代数:')total-10disp('现在的种群:')N1N2N3N4disp('最大值:')MaN1break;endflag=mod(flag+1,2);total=total+1;endMATLAB仿真结果:其中:initialize.m程序funct

6、ion[X]=initialize()X=zeros(1,5);forj=1:5X(1,j)=round(rand);endBinToDec.m程序functionsum=BinToDec(X)sum=0;fori=5:-1:1sum=sum+X(1,i)*2^(5-i);endcal.m程序function[temp]=cal(X,n)temp=zeros(n,5);fori=1:ntemp(i,:)=X;endcrossover.m程序function[A1,A2,A3,A4,position]=crossover(t1,t2,t3,

7、t4)while1p=floor(1000*rand);ifp>1break;elsecontinue;endendposition=mod(p,4)+1;A1=[t1(1:position),t2(position+1:5)];A2=[t2(1:position),t1(position+1:5)];A3=[t3(1:position),t4(position+1:5)];A4=[t4(1:position),t3(position+1:5)];

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。