clc;
clear;
T=500;
N=4;
L=9;
dmax=2;
dmin=-2;
bval=round(rand(N,L));
posc=0.05
for ii = 1:T
sum_g=0;
for i =1:N
t=0;
for j = 0:L-1
if(bval(i,L-j)==1)
t=t+2^j;
end
end
t=dmin+t*(dmax-dmin)/(2^L-1)
val(i)=-t*t-4*t+1;
gval(i)=val(i)+1;
sum_g=sum_g+gval(i);
end
for i = 1:N
posval(i)=gval(i)/sum_g
end
exb=max(posval);
pp(ii)=max(gval);
losb=min(posval);
for i = 1:N
if(posval(i)==exb)
exbal=bval(i,:);
end
if(posval(i)==losb)
losbpos=i;
end
end
bval(losbpos,:)=exbal; %tao tai
newb=rand(N,L);
for i = 1:2:N
kk=round((L-1).*rand(1))+1;
newb(i,1:kk)=bval(i,1:kk);
newb(i,kk+1:end)=bval(i+1,kk+1:end);
newb(i+1,1:kk)=bval(i+1,1:kk);
newb(i+1,kk+1:end)=bval(i,kk+1:end);
end
for i=1:N
kk=rand(1);
if(kk<=posc)
kk=round((L-1).*rand(1))+1;
newb(i,kk)=1-newb(i,kk);
end
end
bval=newb;
end
plot(pp)

被折叠的 条评论
为什么被折叠?



