一、介绍
多目标灰狼优化算法GWO与NSGA2在9个测试函数上对比zdt1 zdt2 zdt3 zdt4 zdt6 Schaffer Kursawe Viennet2 Viennet3包含六种评价指标。
二、部分代码
close all;
clear ;
clc;
addpath('./MOGWO/')%添加算法路径
addpath('./NSGA2/')%添加算法路径
%%
% TestProblem测试问题说明:
%MATLABcode>https://mbd.pub/o/liang/work
%一共9个多目标测试函数1-9分别是: zdt1 zdt2 zdt3 zdt4 zdt6 Schaffer Kursawe Viennet2 Viennet3
%%
TestProblem=8;%测试函数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
%MATLABcode>https://mbd.pub/o/liang/work
[Xbest2,Fbest2] = MOGWO(params,MultiObj);
[Xbest5,Fbest5] = NSGA2(params,MultiObj);
FbestData(1).data=Fbest2;
FbestData(2).data=Fbest5;
%% 获取测试函数的真实pareto前沿
%MATLABcode>https://mbd.pub/o/liang/work
True_Pareto=MultiObj.truePF;
%% 计算每个算法的评价指标
% ResultData的值分别是IGD、GD、HV、Coverage、Spread、Spacing
%MATLABcode>https://mbd.pub/o/liang/work
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
%% 画图
%MATLABcode>https://mbd.pub/o/liang/work
PlotFigure;
三、部分结果
四、完整MATLAB代码