新版多目标粒子群matlab代码.doc
文本预览下载声明
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 改进的多目标粒子群算法,包括多个测试函数
% 对程序中的部分参数进行修改将更好地求解某些函数
%
ZDT1NP=cell(1,50);
ZDT1FV=cell(1,50);
ZDT1T=zeros(1,50);
for i=1:50
tic;
%[np,nprule,dnp,fv,goals,pbest]=ParticleSwarmOpt(ZDT1,0.1,50,100,2.0,1.0,0.4,200,30,zeros(1,30),ones(1,30));%--ZDT1
elapsedTime=toc;
ZDT1NP(i)={np};
ZDT1FV(i)={fv};
ZDT1T(i)=elapsedTime;display(strcat(ZDT1,num2str(i)));
end
zdt1fv=cell2mat(ZDT1FV);
zdt1fv=GetLeastFunctionValue(zdt1fv);
ZDT2NP=cell(1,50);
ZDT2FV=cell(1,50);
ZDT2T=zeros(1,50);
for i=1:50
tic;
%[np,nprule,dnp,fv,goals,pbest]=ParticleSwarmOpt(ZDT2,0.1,50,100,2.0,1.0,0.4,200,30,zeros(1,30),ones(1,30),[1,zeros(1,29)]);%--ZDT2
elapsedTime=toc;
ZDT2NP(i)={np};
ZDT2FV(i)={fv};
ZDT2T(i)=elapsedTime;display(strcat(ZDT2,num2str(i)));
end
zdt2fv=cell2mat(ZDT2FV);
zdt2fv=GetLeastFunctionValue(zdt2fv);
%%%%%%%%%%%%%%%%%%%%%%%%%%%5
ZDT3NP=cell(1,50);
ZDT3FV=cell(1,50);
ZDT3T=zeros(1,50);
for i=1:50
tic;
% [np,nprule,dnp,fv,goals,pbest]=ParticleSwarmOpt(ZDT3,0.1,50,100,2.0,1.0,0.4,400,30,zeros(1,30),ones(1,30));%--ZDT3
elapsedTime=toc;
ZDT3NP(i)={np};
ZDT3FV(i)={fv};
ZDT3T(i)=elapsedTime;display(strcat(ZDT3,num2str(i)));
end
zdt3fv=cell2mat(ZDT3FV);
zdt3fv=GetLeastFunctionValue(zdt3fv);
ZDT4NP=cell(1,50);
ZDT4FV=cell(1,50);
ZDT4T=zeros(1,50);
for i=1:50
tic;
% [np,nprule,dnp,fv,goals]=ParticleSwarmOpt(ZDT4,0.1,50,100,2.0,1.0,0.4,200,10,[0,-5,-5,-5,-5,-5,-5,-5,-5,-5],[1,5,5,5,5,5,5,5,5,5],[1,0,0,0,0,0,0,0,0,0]);%--ZDT4
elapsedTime=toc;
ZDT4NP(i)={np};
ZDT4FV(i)={fv};
ZDT4T(i)=elapsedTime;display(strcat(ZDT4,num2str(i)));
end
zdt4fv=cell2mat(ZDT4FV);
zdt4fv=GetLeastFunctionValue(zdt4fv);
%%%%%%%%%%%%%%%%%%%%%%%%
ZDT6NP=cell(1,50);
ZDT6FV=cell(1,50);
ZDT6T=zeros(1,50);
for i=1:50
tic;
%[np,nprule,dnp,fv,goals,pbest]=ParticleSwarmOpt(ZDT6,0.1,50,100,2.0,1.0,0.4,200,10,zeros(1,10),ones(1,10));%--ZDT6
elapsedTime=toc;
ZDT6NP(i)={np};
ZDT6FV(
显示全部