📄 adapting_ga.asv
字号:
clear all;
close all;
global eeta n_distribution_m;
n_distribution_m=0.5+499.5*rand(1);
eeta=0.5+99.5*rand(1);
%global d;
%d=0;
%global processOutput;
%global u;
%global sampleSize;
%global N;
%global M;
%N=2;
%M=2;
%load processOutput;
%load u;
%nvar=N+M+1;
%sampleSize=size(processOutput,2);
nvar=2;
popsize=50;
max_gene=20;
limit_f=rep(-5.12,[1,nvar]);
limit_u=rep(5.12,[1,nvar]);
ObjV=[];
Xreal=rep([limit_u-limit_f],[popsize,1]).*rand(popsize,nvar)+rep([limit_f],[popsize,1]);
for i=1:popsize
ObjV(i,:)=f(Xreal(i,:));
end
gen=1;
disp(gen);
while (gen<max_gene)
FitnV=fit(ObjV(:,1));
for i=1:0.9*popsize
rnd=rand(1);
if (rnd<FitnV(1))
dd=1;
elseif (rnd>1-FitnV(popsize))
dd=popsize;
else
aa=0;
dd=0;
while (rnd>aa)
dd=dd+1;
aa=aa+FitnV(dd);
end
end
SelCh(i,:)=Xreal(dd,:);
end
realcross(SelCh);
realmutate(SelCh);
for i=1:0.9*popsize
ObjV(popsize+i,:)=f(SelCh(i,:));
end
Xreal=[Xreal;SelCh];
for i=1:1.9*popsize-1
for j=i+1:1.9*popsize
if (ObjV(i,1)>ObjV(j,1))
bb=ObjV(i,:);
ObjV(i,:)=ObjV(j,:);
ObjV(j,:)=bb;
bb=Xreal(i,:);
Xreal(i,:)=Xreal(j,:);
Xreal(j,:)=bb;
end
end
end
i=1.9*popsize;
while (i>popsize)
Xreal(i,:)=[];
ObjV(i,:)=[];
i=i-1;
end
gen=gen+1;
if rem(gen,20)==0
disp(gen);
end
end
final=[Xreal ObjV]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -