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

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

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

参考文献:

1\]Mohammed 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.](https://doi.org/10.1016/j.cma.2024.116840. "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'); ``` ### 三、部分结果 ![](https://file.jishuzhan.net/article/1766623378711515138/b47f09f4355687605fcaf603d1a52e96.webp) ![](https://file.jishuzhan.net/article/1766623378711515138/bbc31720e98f346268782c7c62ac3886.webp) ![](https://file.jishuzhan.net/article/1766623378711515138/3609b5cc62be75ef0b2afb7c1eebab7e.webp) ![](https://file.jishuzhan.net/article/1766623378711515138/edb6ba84dcfc9ce8b26070503ba6a086.webp) ![](https://file.jishuzhan.net/article/1766623378711515138/17fe5fd88b39ac1bae05fea26a86bc21.webp) ![](https://file.jishuzhan.net/article/1766623378711515138/7164e3e9e1da4ce5c5257d83408ddac4.webp) ### 四、完整MATLAB代码 [2024最新多目标优化算法:多目标螳螂搜索算法MOMSA求解46个多目标测试函数+1个工程应用+4种评价指标](https://mbd.pub/o/bread/ZZyVk5Zq "2024最新多目标优化算法:多目标螳螂搜索算法MOMSA求解46个多目标测试函数+1个工程应用+4种评价指标") ![](https://file.jishuzhan.net/article/1766623378711515138/a458b9b6bb3c80d05d1b48e466da1fda.webp) ![](https://file.jishuzhan.net/article/1766623378711515138/bc40c38121cb7da918c55400ec4be19f.webp)

相关推荐
视界先声4 分钟前
2025年GEO自动化闭环构建实践:监测工具选型与多平台反馈机制工程分享
大数据·人工智能·自动化
总爱写点小BUG5 分钟前
打印不同的三角形(C语言)
java·c语言·算法
陈天伟教授6 分钟前
人工智能训练师认证教程(3)Pandas数据世界的军刀
人工智能·数据分析·pandas
yaoh.wang6 分钟前
力扣(LeetCode) 27: 移除元素 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·双指针
another heaven9 分钟前
【深度学习 YOLO官方模型全解析】
人工智能·深度学习·yolo
HyperAI超神经9 分钟前
【Triton 教程】triton_language.load
人工智能·学习·大语言模型·cpu·gpu·编程语言·triton
lsx20240611 分钟前
C语言中的强制类型转换
开发语言
科士威传动13 分钟前
丝杆支撑座同轴度如何安装?
人工智能·科技·机器学习·自动化
coderHing[专注前端]14 分钟前
告别 try/catch 地狱:用三元组重新定义 JavaScript 错误处理
开发语言·前端·javascript·react.js·前端框架·ecmascript
2401_8414956416 分钟前
【自然语言处理】中文 n-gram 词模型
人工智能·python·算法·自然语言处理·n-gram·中文文本生成模型·kneser-ney平滑