这是用遗传算法求解matlab多峰函数最大值的程序 看了一天 还是很混乱 %Generic Algorithm for function f(x1,x2) optimumclear all;close all;%ParametersSize=80; G=100; CodeL=10;umax=2.048;umin=-2.048;E=round(rand(Size,2*CodeL)); %
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/10 18:39:15
![这是用遗传算法求解matlab多峰函数最大值的程序 看了一天 还是很混乱 %Generic Algorithm for function f(x1,x2) optimumclear all;close all;%ParametersSize=80; G=100; CodeL=10;umax=2.048;umin=-2.048;E=round(rand(Size,2*CodeL)); %](/uploads/image/z/7144622-62-2.jpg?t=%E8%BF%99%E6%98%AF%E7%94%A8%E9%81%97%E4%BC%A0%E7%AE%97%E6%B3%95%E6%B1%82%E8%A7%A3matlab%E5%A4%9A%E5%B3%B0%E5%87%BD%E6%95%B0%E6%9C%80%E5%A4%A7%E5%80%BC%E7%9A%84%E7%A8%8B%E5%BA%8F+%E7%9C%8B%E4%BA%86%E4%B8%80%E5%A4%A9+%E8%BF%98%E6%98%AF%E5%BE%88%E6%B7%B7%E4%B9%B1+%25Generic+Algorithm+for+function+f%28x1%2Cx2%29+optimumclear+all%3Bclose+all%3B%25ParametersSize%3D80%3B+G%3D100%3B+CodeL%3D10%3Bumax%3D2.048%3Bumin%3D-2.048%3BE%3Dround%28rand%28Size%2C2%2ACodeL%29%29%3B+%25)
这是用遗传算法求解matlab多峰函数最大值的程序 看了一天 还是很混乱 %Generic Algorithm for function f(x1,x2) optimumclear all;close all;%ParametersSize=80; G=100; CodeL=10;umax=2.048;umin=-2.048;E=round(rand(Size,2*CodeL)); %
这是用遗传算法求解matlab多峰函数最大值的程序 看了一天 还是很混乱
%Generic Algorithm for function f(x1,x2) optimum
clear all;
close all;
%Parameters
Size=80;
G=100;
CodeL=10;
umax=2.048;
umin=-2.048;
E=round(rand(Size,2*CodeL)); %Initial Code
GG1=zeros(1,G);
Y=zeros(2,G);
%Main Program
for k=1:1:G
time(k)=k;
for s=1:1:Size
m=E(s,:);
y1=0;y2=0;
%Uncoding
m1=m(1:1:CodeL);
for i=1:1:CodeL
y1=y1+m1(i)*2^(i-1);
end
x1=(umax-umin)*y1/1023+umin;
Y(1,k)=x1;
m2=m(CodeL+1:1:2*CodeL);
for i=1:1:CodeL
y2=y2+m2(i)*2^(i-1);
end
x2=(umax-umin)*y2/1023+umin;
Y(2,k)=x2;
%F(s)=100*(x1^2-x2)^2+(1-x1)^2;%这个就是所对应的适应值函数
F(s)=10*sin(sqrt(x1.^2+x2.^2))./sqrt(1+x1.^2+x2.^2);
end
Ji=1./F;
%
%pm=0.001;
%pm=0.001-[1:1:Size]*(0.001)/Size; %Bigger fi,smaller Pm
%pm=0.0; %No mutation
pm=0.1; %Big mutation
for i=1:1:Size
for j=1:1:2*CodeL
temp=rand;
if pm>temp %Mutation Condition
if TempE(i,j)==0
TempE(i,j)=1;
else
TempE(i,j)=0;
end
end
end
end
%Guarantee TempPop(30,:) is the code belong to the best individual(max(fi))
TempE(Size,:)=BestS;
E=TempE;
end
Max_Value=Bestfi
BestS
x1
x2
figure(1);
plot(time,BestJ);
xlabel('Times');ylabel('Best J');
figure(2);
plot(time,bfi);
xlabel('times');ylabel('Best F');
这是用遗传算法求解matlab多峰函数最大值的程序 看了一天 还是很混乱 %Generic Algorithm for function f(x1,x2) optimumclear all;close all;%ParametersSize=80; G=100; CodeL=10;umax=2.048;umin=-2.048;E=round(rand(Size,2*CodeL)); %
首先第一步你要懂遗传算法的各个部分,然后对照各个部分的算法,看代码.
希望这个回答另你满意.