📄 adapting_ga.asv
字号:
clear;
global eeta n_distribution_m G t tn tp
eeta=0.5+99.5*rand(1);
n_distribution_m=0.5+499.5*rand(1);
popsize=50;
max_gene=20;
nvar=2;
limit_f=rep(0.1,[1,nvar]);
limit_u=rep(10,[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,:)=f1(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,:)=f1(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 + -