一、部分代码
多目标灰狼优化算法MOGWO与非支配鲸鱼优化算法NSWOA在9个测试函数(zdt1 zdt2 zdt3 zdt4 zdt6 Schaffer Kursawe Viennet2 Viennet3)上对比包含六种评价指标。
close all;
clear ;
clc;
addpath('./MOGWO/')%添加算法路径
addpath('./NSWOA/')%添加算法路径
%%
% TestProblem测试问题说明:
%一共9个多目标测试函数1-9分别是: zdt1 zdt2 zdt3 zdt4 zdt6 Schaffer Kursawe Viennet2 Viennet3
%%
TestProblem=1;%测试函数1-9
MultiObj = GetFunInfo(TestProblem);
MultiObjFnc=MultiObj.name;%问题名
% Parameters
params.Np = 100; % Population size 种群大小
params.Nr = 200; % Repository size 外部存档
params.maxgen=50; % Maximum number of generations 最大迭代次数
numOfObj=MultiObj.numOfObj;%目标函数个数
%% 算法求解,分别得到paretoPOS和paretoPOF
[Xbest2,Fbest2] = MOGWO(params,MultiObj);
[Xbest5,Fbest5] = NSWOA(params,MultiObj);
FbestData(1).data=Fbest2;
FbestData(2).data=Fbest5;
%% 获取测试函数的真实pareto前沿
True_Pareto=MultiObj.truePF;
%% 计算每个算法的评价指标
% ResultData的值分别是IGD、GD、HV、Coverage、Spread、Spacing
for i=1:2
Fbest=FbestData(i).data;
ResultData(i,:)=[IGD(Fbest,True_Pareto),GD(Fbest,True_Pareto),HV(Fbest,True_Pareto),Coverage(Fbest,True_Pareto),Spread(Fbest,True_Pareto),Spacing(Fbest,True_Pareto)];
end
%% 画图
PlotFigure;
二、部分结果
三、完整MATLAB代码