⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 多目标优化问题.txt

📁 基于遗传算法的
💻 TXT
字号:
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 

⌨️ 快捷键说明

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