遗传优选多目标代码.txt

来自「自己编的遗传算法同BP神经网络结合的代码!并且在神经网络模型上进行多目标寻优」· 文本 代码 · 共 43 行

TXT
43
字号
nind=100;maxgen=50;nvar=3;preci=20;ggap=0.9;
fieldD=[rep([preci],[1,nvar]);[-1.11803 -1.11803 -1.11803;1.11803 1.11803 1.11803];rep([1;0;1;1],[1,nvar])];
chrom=crtbp(nind,nvar*preci);
v=bs2rv(chrom,fieldD);
gen=0;
while gen<maxgen,
[nind,n]=size(chrom);
M=fix(nind/2);
y1=sim(net,v(1:M,:)');
objv1=y1(1,:);
fitnv1=ranking(-objv1');
selch1=select('sus',chrom(1:M,:),fitnv1,ggap);
y2=sim(net,v((M+1):nind,:)');
objv2=y2(2,:);
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);
gen=gen+1;
trace1(gen,1)=max(objv1);
trace1(gen,2)=sum(objv1)/length(objv1);
trace2(gen,1)=max(objv2);
trace2(gen,2)=sum(objv2)/length(objv2);
end
trace3(1000,1)=max(objv2);
trace3(1000,2)=sum(objv2)/length(objv2);
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),'.');grid;
legend('解的变化','种群均值的变化')
xlabel('迭代次数');ylabel('目标值');
figure(3);clf;
plot(trace3(:,1));hold on;plot(trace3(:,2),'-');
plot(trace3(:,1),'.');plot(trace3(:,2),'.');grid;
legend('解的变化','种群均值的变化')
xlabel('迭代次数');ylabel('目标值');

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?