X1=-0.9:0.1:0.9;
X2=-0.9:0.1:0.9;
R=sin(X1)+X2;
NIND=60; %个体数目(Number of individuals)
MAXGEN=300; %最大遗传代数(Maximum number of generations)
NVAR=15;
gen=0%变量数目
GGAP=0.9; %代沟(Generation gap)
%建立区域描述器(Build field descriptor)
for i=1:2
for j=1:15
if i==1
W(i,j)=-2;
else
W(i,j)=2;
end
end
end
FieldDR=W;
Chrom=crtrp(NIND, FieldDR);
w=Chrom;
for i=1:60
for j=1:19
E(i,j)=1/2*(R(j)-(1/(1+exp(-1*(X1(j)*w(i,1)+X2(j)*w(i,2)))))*w(i,3)+(1/(1+exp(-1*(X1(j)*w(i,4)+X2(j)*w(i,5)))))*w(i,6)+(1/(1+exp(-1*(X1(j)*w(i,7)+X2(j)*w(i,8)))))*w(i,9)+(1/(1+exp(-1*(X1(j)*w(i,10)+X2(j)*w(i,11)))))*w(i,12)+(1/(1+exp(-1*(X1(j)*w(i,13)+X2(j)*w(i,14)))))*w(i,15))^2;
end
end
E=E';
SE=sum(E);
ObjV=SE';
FitnV=ranking(ObjV);
while gen<MAXGEN
SelCh=select('sus', Chrom, FitnV, GGAP); %选择
SelCh=recombin('recdis', SelCh, 1); %重组
SelCh=mutbga(SelCh,FieldDR,[0.1]);
w=SelCh;
for i=1:54
for j=1:19
EE(i,j)=1/2*(R(j)-(1/(1+exp(-1*(X1(j)*w(i,1)+X2(j)*w(i,2)))))*w(i,3)+(1/(1+exp(-1*(X1(j)*w(i,4)+X2(j)*w(i,5)))))*w(i,6)+(1/(1+exp(-1*(X1(j)*w(i,7)+X2(j)*w(i,8)))))*w(i,9)+(1/(1+exp(-1*(X1(j)*w(i,10)+X2(j)*w(i,11)))))*w(i,12)+(1/(1+exp(-1*(X1(j)*w(i,13)+X2(j)*w(i,14)))))*w(i,15))^2;
end
end
EE=EE';
SE=sum(EE);
ObjVSel=SE';
[Chrom ObjV]=reins(Chrom, SelCh, 1, 1, ObjV, ObjVSel); %重插入子代的新种群
gen=gen+1;
end
w=Chrom;
for i=1:60
for j=1:19
EEE(i,j)=1/2*(R(j)-(1/(1+exp(-1*(X1(j)*w(i,1)+X2(j)*w(i,2)))))*w(i,3)+(1/(1+exp(-1*(X1(j)*w(i,4)+X2(j)*w(i,5)))))*w(i,6)+(1/(1+exp(-1*(X1(j)*w(i,7)+X2(j)*w(i,8)))))*w(i,9)+(1/(1+exp(-1*(X1(j)*w(i,10)+X2(j)*w(i,11)))))*w(i,12)+(1/(1+exp(-1*(X1(j)*w(i,13)+X2(j)*w(i,14)))))*w(i,15))^2;
end
end
EEE=EEE';
SE=sum(EEE);
[m,n]=min(SE);
i=n;
for j=1:19
EEEE(j)=1/2*(R(j)-(1/(1+exp(-1*(X1(j)*w(i,1)+X2(j)*w(i,2)))))*w(i,3)+(1/(1+exp(-1*(X1(j)*w(i,4)+X2(j)*w(i,5)))))*w(i,6)+(1/(1+exp(-1*(X1(j)*w(i,7)+X2(j)*w(i,8)))))*w(i,9)+(1/(1+exp(-1*(X1(j)*w(i,10)+X2(j)*w(i,11)))))*w(i,12)+(1/(1+exp(-1*(X1(j)*w(i,13)+X2(j)*w(i,14)))))*w(i,15))^2;
end
y=(1/(1+exp(-1*(X1(j)*w(i,1)+X2(j)*w(i,2)))))*w(i,3)+(1/(1+exp(-1*(X1(j)*w(i,4)+X2(j)*w(i,5)))))*w(i,6)+(1/(1+exp(-1*(X1(j)*w(i,7)+X2(j)*w(i,8)))))*w(i,9)+(1/(1+exp(-1*(X1(j)*w(i,10)+X2(j)*w(i,11)))))*w(i,12)+(1/(1+exp(-1*(X1(j)*w(i,13)+X2(j)*w(i,14)))))*w(i,15);
e=[1 2 3; 2 1 1 ;4 5 6]
e=e'
r=sum(e)