clear
clc
close all
tic
NIND=100;
MAXGEN=50;
NVAR=2;
PRECI=20;
GGAP=0.9;
trace1=[];
trace2=[];
trace3=[];
FieldD=[rep([20;1],[1 NVAR]);[4 2];rep([1;0;1;1],[1 NVAR])];
Chrom=crtbp(NIND,NVAR*PRECI);
%whos
v=bs2rv(Chrom,FieldD);
gen=1;
keyboard
while gen<MAXGEN
[NIND,N]=size(Chrom)
M=fix(NIND/2);
ObjV1=f1(v(1:M,:));
FitnV1=ranking(ObjV1);
SelCh1=select('sus',Chrom(1:M,:),FitnV1,GGAP);
ObjV2=f2(v((M+1):NIND,:));
FitnV2=ranking(ObjV2);
SelCh2=select('sus',Chrom((M+1):NIND,:),FitnV2,GGAP);
SelCh=[SelCh1;SelCh2];
SelCh=recombin('xovsp',SelCh,0.7);
Chrom=mut(SelCh);
v=bs2rv(Chrom,FieldD);
trace1(gen,1)=min(f1(v));
trace1(gen,2)=sum(f1(v))/length(f1(v));
trace2(gen,1)=min(f2(v));
trace2(gen,2)=sum(f2(v))/length(f2(v));
trace3(gen,1)=min(f1(v)+f2(v));
trace3(gen,2)=sum(f1(v))/length(f1(v))+sum(f2(v))/length(f2(v));
keyboard
gen=gen+1;
end
figure(1)
clf
plot(trace1(:,1))
hold on
plot(trace1(:,2),'-.')
plot(trace1(:,1),'.')
plot(trace1(:,2),'.')
grid
legend('解的变化','种群均值的变化')
xlabel('迭代次数')
ylabel('目标函数值')
figure(2)
clf
plot(trace2(:,1))
hold on
plot(trace2(:,2),'-.')
plot(trace2(:,1),'.')
plot(trace2(:,2),'.')
legend('解的变化','种群均值的变化')
xlabel('迭代次数')
ylabel('目标函数值')
figure(3)
clf
plot(trace3(:,1))
hold on
plot(trace3(:,2),'-.')
plot(trace3(:,1),'.')
plot(trace3(:,2),'.')
legend('解的变化','种群均值的变化')
xlabel('迭代次数')
ylabel('目标函数值')
figure(4)
clf
plot(f1(v))
hold on
plot(f2(v),'r-.');
grid
toc