多目标应用(一):多目标麋鹿优化算法(MOEHO)求解10个工程应用,提供完整MATLAB代码

一、麋鹿优化算法

麋鹿优化算法(Elephant Herding Optimization,EHO)是2024年提出的一种启发式优化算法,该算法的灵感来源于麋鹿群的繁殖过程,包括发情期和产犊期。在发情期,麋鹿群根据公麋鹿之间的争斗分为不同大小的家族,较强的公麋鹿可以与大量的雌麋鹿组成家族。在产犊期,每个家族的公麋鹿和雌麋鹿繁殖新的幼崽。在优化过程中,优化循环由发情期、产犊期和选择期三个阶段组成。在选择期,所有家族合并,选择最适应的麋鹿群用于下一轮的发情期和产犊期。EHO 将种群分为一组组的群体,每个群体在发情期有一个领导者和若干跟随者,跟随者的数量根据领导者的适应度值确定。在产犊期,每个群体根据领导者和跟随者生成新的解。在选择期,所有群体的成员包括领导者、跟随者和新解被合并,选择最适应的种群。

参考文献:

1\] Al-betar, M.A., Awadallah, M.A., Braik, M.S., Makhadmeh, S.N., \& Abu Doush, I. (2024). Elk herd optimizer: a novel nature-inspired metaheuristic algorithm. Artif. Intell. Rev., 57, 48. ## 二、多目标麋鹿优化算法 针对单目标优化问题,麋鹿优化算法已显示出其有效性。然而,在面对多目标优化问题时,需要一种能够同时处理多个冲突目标的算法。因此,本文提出多目标麋鹿优化算法(Multi-objective Elephant Herding Optimization,MOEHO)。MOEHO是麋鹿优化算法的多目标扩展,它能够有效地解决多目标优化问题。 为了评估MOEHO的性能,我们将其应用于**十个工程应用**。此外,为了全面评估算法的收敛性和解的多样性,我们使用了六种不同的性能度量指标:GD、IGD、HV、Spacing、Spread和Coverage。通过这些指标的综合分析,我们可以有效地评估该算法在处理多目标优化问题时的整体性能。 MOEHO算法的执行步骤可以描述如下: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4e6a7f7afe9c4f15aaf64106eb6bff8d.png) 1. **初始种群的生成**:算法首先随机生成一个初始种群,其中每个个体象征着一个可能的解决方案。 2. **个体的评估与筛选**:算法对初始种群中的个体进行评估,并根据特定的标准筛选出合适的个体。 3. **新个体的产生**:通过配对操作,从筛选后的个体中生成新的子代个体。 4. **环境选择过程**:算法通过环境选择机制对新产生的子代个体进行评估,以确定哪些个体将进入下一代。 5. **终止条件的判断**:算法会持续进行迭代,直到满足预设的终止条件,这些条件可能包括达到最大迭代次数或解决方案的质量达到既定标准。 6. **近似Pareto解集的形成**:当满足终止条件后,最后一次环境选择中保留的个体将构成近似的Pareto解集。 在这一过程中,环境选择机制扮演着至关重要的角色。它负责从子代个体中挑选出能够支配其他个体或与其他个体互不支配的精英个体。这些精英个体代表了当前种群中的最优质解。随着算法的不断迭代,每次迭代都能选出新的精英个体,最终能够逼近问题的最优解。 ### 1、 Pressure Vessel Design ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c7f62aeab1b341bb802b69dc30b82d0c.png) ### 2、 Vibrating Platform Design ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/68cc7488843f448e82267c40ab333d63.png) ### 3、 Two Bar Truss Design ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/82ec34ebff204e2ea71037f43da8da2c.png) ### 4、 Welded Beam Design ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/97addeb5310a4082b0fdce6512b0626f.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5434a319973e4d8fae9621c7d00f6ece.png) ### 5、 Disc Brake Design ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/de2a3144961e44f69e20a2724733eb92.png) ### 6、 Speed Reducer Design ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/846b9e7e5d0c4f91827c80399a43b3f8.png) ### 7、 Gear Train Design ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f6c72639b3864080aaa909d1bfd31dd9.png) ### 8、 Car Side Impact Design ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/35ad1370461b41038f6b13bccd35e223.png) ### 9、 Four Bar Plane Truss ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b7351f35927b450980f82e2b50bdd46e.png) ### 10、 Two Bar Plane Truss ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1d1753b7854a4a10b7b86ceeaa1e2efe.png) ## 三、部分MATLAB代码 ```bash %% 参数说明 %testProblem 测试问题序号 %Name 测试问题名称 %dim 测试问题维度 %numObj测试问题目标函数个数 %lb测试问题下界 %ub测试问题上界 %SearchAgents_no 种群大小 %Max_iter最大迭代次数 %Fbest 算法求得的POF %Xbest 算法求得的POS %TurePF 测试问题的真实pareto前沿 %Result 评价指标随迭代次数的变化值 testProblem=2; [Name,dim,numObj,lb,ub]=GetProblemInfo(testProblem);%获取测试问题的相关信息 SearchAgents_no=200;%种群大小 Max_iter=200;%最大迭代次数 [Fbest,Xbest,TurePF,Result] = MOEHO(Max_iter,SearchAgents_no,Name,dim,numObj,lb,ub);%算法求解 ``` ## 四、部分结果 ### Four Bar Plane Truss: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/79bb89418f1347ca9fbb765c675d3b7c.jpeg) ### Vibrating Platform Design: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5b0b7f8797c44d0e830bbce227ba895e.jpeg) ### Car Side Impact Design: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/efd1aa73063c426ead3878c76345f945.jpeg) ### Gear Train Design: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/cba867db75804cb89aebeb1000e645db.jpeg) ### Welded Beam Design: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/40deddca7dd94feca6ce806fe5d4503d.jpeg) ## 五、完整MATLAB代码 见下方名片

相关推荐
byte轻骑兵4 分钟前
【C++高级主题】虚基类的声明
开发语言·c++
落羽的落羽5 分钟前
【C++】二叉搜索树
开发语言·数据结构·c++·学习
编程绿豆侠5 分钟前
力扣HOT100之二分查找: 34. 在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·leetcode
云卓SKYDROID7 分钟前
无人机光纤FC接口模块技术分析
人工智能·无人机·科普·高科技
陕西艾瑞科惯性技术有限公司12 分钟前
让飞行姿态 “可感知”:为什么无人机需要三轴陀螺仪?
嵌入式硬件·机器学习·机器人·无人机·pcb工艺
Shan120512 分钟前
找到每一个单词+模拟的思路和算法
数据结构·算法
偷懒下载原神13 分钟前
《C++ 模板》
开发语言·c++
宋一诺3313 分钟前
机器学习——什么时候使用决策树
人工智能·决策树·机器学习
fashia16 分钟前
Java转Go日记(六十):gin其他常用知识
开发语言·后端·golang·go·gin
国家不保护废物20 分钟前
微信红包算法深度解析:从产品思维到代码实现
javascript·算法·面试