《2022年遗传算法程序参照 .pdf》由会员分享,可在线阅读,更多相关《2022年遗传算法程序参照 .pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、遗传算法(一)目的:通过遗传算法实现函数F(x1,x2)=100*(x12-x2)2+(1-x2)2的最优解,其中 x1,x2 在-2.048 和 2.048 之间。(二)程序代码:clear clc G=100; % 循环次数%/随机初始化 / E1=rand(80,20);E=round(E1); for p=1:G %迭代次数q=size(E); row=q(1); for i=1:row for j=1:10 x1(i,j)=E(i,j); end end for i=1:row for j=11:20 x2(i,(j-10)=E(i,j); end end %*主要是编程实现二进制换
2、十进制* for i=1:row c=0; for j=1:10 a=x1(i,j)*2(10-j); c=c+a; y1(i)=c;% 十进制数据存y1 end end for i=1:row d=0; for j=1:10 b=x2(i,j)*2(10-j); d=d+b; y2(i)=d;% 十进制数据存y2 end end %*编码(转换区间)* 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - for i=1:row x
3、11(i)=y1(i)/1023*4.096-2.048; x22(i)=y2(i)/1023*4.096-2.048; end %/选择 / for i=1:row f(i)=100*(x11(i)2-x22(i)2+(1-x11(i)2;%求 f(i)值end Or,idx1=sort(f);% 对 f 排序f1(p)=Or(row);%f最大值r1(p)=x11(idx1(row);%f最大时对应x11 的与 x22 值r2(p)=x22(idx1(row); %*求 f 平均值 * s=0; for i=1:row s=s+f(i); end avr=s/row;% 平均适应度%/繁殖
4、 / for i=1:row k(i)=f(i)/avr;%选中概率g(i)=round(k(i);% 四舍五入end %/新建矩阵Et/ k=1; for i=1:row n=g(i); if n0 for j=1:n for l=1:20 Et(k,l)=E(i,l); end k=k+1; end end end %/交叉 / o1=size(Et); for i=1:o1 r3=rand(1); if r3=0.6 r4=rand(1); z1=ceil(r4*10); for j=10:-1:z1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -
5、- - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - temp=Et(i,j); Et(i,j)=Et(i,10+j); Et(i,10+j)=temp; end end end %/变异 / o2=size(Et); for i=1:o2 r4=rand(1); if r4=0.1 r5=ceil(10*rand); r6=Et(i,r5); r6=r6; Et(i,r5)=r6; end end %/为下面图像输出做准备/ E=Et; end for p=1:G w(p)=p; end %/用图像显示每次迭代的最优
6、值/ subplot(3,1,1); plot(w,f1,b-); grid on; title( 每次迭代f 的最大值 ); subplot(3,1,2); plot(w,r1,b-); grid on; title( 每次迭代f 的最大值时对应的X1 值); subplot(3,1,3); plot(w,r2,b-); grid on; title( 每次迭代f 的最大值时对应的X2 值); %/提炼输出最优值/ A,idx2=sort(f1);% 对每次迭代产生的f 最优值进行排序v1=idx2(G); f_best=A(G)%f最优值x1_best=r1(v1) x2_best=r2(
7、v1) (三)输出结果:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - (1)迭代次数为 100 时的最优输出结果:迭代次数为 100时的输出图像:(2)迭代次数为 500 时的输出结果:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 迭代次数为 500时的输出图像:(3)迭代次数为 20 时的输出结果:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 迭代次数为 20 时的输出图像:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -