2024最新多目标优化算法:多目标螳螂搜索算法MOMSA求解46个多目标测试函数+1个工程应用+4种评价指标(提供MATLAB代码)

一、多目标螳螂搜索算法MOMSA

多目标螳螂搜索算法(Multi-objective Mantis Search Algorithm ,MOMSA)由Mohammed Jameel和Mohamed Abouhawwash于2024年提出,其灵感来自于螳螂独特的狩猎行为和性同类相食行为。所提出的 MOMSA 算法采用相同的底层 MSA 收敛机制,并结合精英非支配排序方法来估计帕累托最优解。此外,MOMSA采用拥挤距离机制来增强最优解对所有目标的覆盖范围。

参考文献:

1Mohammed Jameel, Mohamed Abouhawwash,Multi-objective Mantis Search Algorithm (MOMSA): A novel approach for engineering design problems and validation ,Computer Methods in Applied Mechanics and Engineering,Volume 422,2024,116840,ISSN 0045-7825,https://doi.org/10.1016/j.cma.2024.116840.

二、部分MATLAB代码

MOMSA求解46 个多目标测试函数(ZDT1、ZDT2、ZDT3、ZDT4、ZDT6、DTLZ1-DTLZ7、WFG1-WFG10、UF1-UF10、CF1-CF10、Kursawe、Poloni、Viennet2、Viennet3) 以及 1 个工程应用(盘式制动器设计),并采用四种评价指标(IGD,GD,HV,SP)评价。

多目标优化算法的评价指标主要用于衡量算法在解决多目标优化问题时的性能和效果。以下是几个常用的评价指标的介绍:

  1. Inverted Generational Distance (IGD):IGD是一种衡量算法生成的解集与真实前沿之间距离的指标。它通过计算算法生成的解集中每个解与真实前沿之间的最小距离,并对所有解的距离进行平均来评估算法的性能。IGD值越小,表示算法生成的解集越接近真实前沿。

  2. Generational Distance (GD):GD是一种衡量算法生成的解集与真实前沿之间距离的指标。与IGD类似,GD也是通过计算算法生成的解集中每个解与真实前沿之间的距离,并对所有解的距离进行平均来评估算法的性能。GD值越小,表示算法生成的解集越接近真实前沿。

  3. Hypervolume (HV):HV是一种衡量算法生成的解集所占据的超体积大小的指标。它通过计算算法生成的解集与真实前沿之间的超体积来评估算法的性能。HV值越大,表示算法生成的解集所占据的超体积越大,即解集的多样性和覆盖面积越好。

  4. Spread (SP):SP是一种衡量算法生成的解集的分布均匀性的指标。它通过计算算法生成的解集中相邻解之间的距离来评估算法的性能。SP值越大,表示算法生成的解集的分布越均匀,解集的多样性和覆盖面积越好。

复制代码
close all;
clear ; 
clc;
%%
% TestProblem测试问题说明:
%一共46个多目标测试函数,详情如下:
%1-5:ZDT1、ZDT2、ZDT3、ZDT4、ZDT6
%6-12:DZDT1-DZDT7
%13-22:wfg1-wfg10
%23-32:uf1-uf10
%33-42:cf1-cf10
%43-46:Kursawe、Poloni、Viennet2、Viennet3
%47 盘式制动器设计 温泽宇,谢珺,谢刚,续欣莹.基于新型拥挤度距离的多目标麻雀搜索算法[J].计算机工程与应用,2021,57(22):102-109.
%%
TestProblem=1;%1-47
MultiObj = GetFunInfo(TestProblem);
MultiObjFnc=MultiObj.name;%问题名
% Parameters
params.Np = 150;        % Population size
params.Nr = 200;        % Repository size
params.maxgen=100;    % Maximum number of generations
numOfObj=MultiObj.numOfObj;%目标函数个数
D=MultiObj.nVar;%维度
f = MOMSA(params,MultiObj);
X=f(:,1:D);%PS
Obtained_Pareto=f(:,D+1:D+numOfObj);%PF
if(isfield(MultiObj,'truePF'))%判断是否有参考的PF
True_Pareto=MultiObj.truePF;
%%  Metric Value
% ResultData的值分别是IGD、GD、HV、Spacing  (HV越大越好,其他指标越小越好)
ResultData=[IGD(Obtained_Pareto,True_Pareto),GD(Obtained_Pareto,True_Pareto),HV(Obtained_Pareto,True_Pareto),Spacing(Obtained_Pareto)];
else
    %计算每个算法的Spacing,Spacing越小说明解集分布越均匀
    ResultData=Spacing(Obtained_Pareto);%计算的Spacing
end
%%
disp('Repository fitness values are stored in Obtained_Pareto');
disp('Repository particles positions are store in X');

三、部分结果

四、完整MATLAB代码

2024最新多目标优化算法:多目标螳螂搜索算法MOMSA求解46个多目标测试函数+1个工程应用+4种评价指标

相关推荐
龙亘川16 小时前
智慧交通运输监管平台业务建模与架构解析
人工智能·架构·智慧城市·数据可视化·政务
Summer-Bright16 小时前
深度 | 谷歌Gemini 4 Argon单次输出100万Token:长输出是智能体刚需,先给防御者不给攻击者才是新玩法
人工智能·安全·ai
梦帮科技16 小时前
多任务权重流形融合:SLERP 球形线性插值、DARE 稀疏剪枝与多专家模型融合落地
人工智能·深度学习·算法·机器学习·tensorflow·聚类·剪枝
Tisfy16 小时前
LeetCode 0020.有效的括号:栈匹配
算法·leetcode·字符串·题解·括号匹配
知识分享小能手16 小时前
C++ 学习教程,从入门到精通,C++类继承 — 完整知识点详解(13)
开发语言·c++·学习
合调于形16 小时前
Xinxngb xnrxim chanyes《新兴信息产业》词条汉语拼音字母标调拼写实测案例
人工智能·自然语言处理·人机交互·语音识别·学习方法
workflower16 小时前
世界模型向产业上游发掘的热点
人工智能·机器学习·机器人·云计算·无人机
弹简特16 小时前
【Java项目-企悦抽】15-活动管理模块02-活动创建测试与活动列表实现
java·开发语言·springboot
Yolanda_202216 小时前
17.卷积操作
人工智能·深度学习
`流年づ16 小时前
卷积核与反卷积知识补充
人工智能·深度学习·计算机视觉