多目标应用(一):多目标麋鹿优化算法(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算法的执行步骤可以描述如下:
-
初始种群的生成:算法首先随机生成一个初始种群,其中每个个体象征着一个可能的解决方案。
-
个体的评估与筛选:算法对初始种群中的个体进行评估,并根据特定的标准筛选出合适的个体。
-
新个体的产生:通过配对操作,从筛选后的个体中生成新的子代个体。
-
环境选择过程:算法通过环境选择机制对新产生的子代个体进行评估,以确定哪些个体将进入下一代。
-
终止条件的判断:算法会持续进行迭代,直到满足预设的终止条件,这些条件可能包括达到最大迭代次数或解决方案的质量达到既定标准。
-
近似Pareto解集的形成:当满足终止条件后,最后一次环境选择中保留的个体将构成近似的Pareto解集。
在这一过程中,环境选择机制扮演着至关重要的角色。它负责从子代个体中挑选出能够支配其他个体或与其他个体互不支配的精英个体。这些精英个体代表了当前种群中的最优质解。随着算法的不断迭代,每次迭代都能选出新的精英个体,最终能够逼近问题的最优解。
1、 Pressure Vessel Design
2、 Vibrating Platform Design
3、 Two Bar Truss Design
4、 Welded Beam Design
5、 Disc Brake Design
6、 Speed Reducer Design
7、 Gear Train Design
8、 Car Side Impact Design
9、 Four Bar Plane Truss
10、 Two Bar Plane Truss
三、部分MATLAB代码
%% 参数说明
%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:
Vibrating Platform Design:
Car Side Impact Design:
Gear Train Design:
Welded Beam Design:
五、完整MATLAB代码
见下方名片
相关文章:

多目标应用(一):多目标麋鹿优化算法(MOEHO)求解10个工程应用,提供完整MATLAB代码
一、麋鹿优化算法 麋鹿优化算法(Elephant Herding Optimization,EHO)是2024年提出的一种启发式优化算法,该算法的灵感来源于麋鹿群的繁殖过程,包括发情期和产犊期。在发情期,麋鹿群根据公麋鹿之间的争斗分…...
机器学习和深度学习中的种子设置
一、常见的随机数生成器及其对应的设置方法: Python内置的随机数生成器: import random random.seed(manual_seed)NumPy的随机数生成器: import numpy as np np.random.seed(manual_seed)PyTorch的随机数生成器: import torch tor…...

[手机Linux] 七,NextCloud优化设置
安装完成后在个人设置里发现很多警告,一一消除。 只能一条一条解决了。 关于您的设置有一些错误。 1,PHP 内存限制低于建议值 512 MB。 设置php配置文件: /usr/local/php/etc/php.ini 把里面的: memory_limit 128M 根据你自…...

Ruby+Selenium教程
什么是 Minitest? Minitest 是 Ruby 的测试框架,提供一整套测试工具。它运行速度快,支持 TDD、BDD、模拟和基准测试 以下是使用Ruby、Selenium WebDriver和Minitest 的脚本,用于断言 Restful Booker Platform 的“页面标题”等于…...

【论文阅读笔记】Learning to sample
Learning to sample 前沿引言方法问题声明S-NET匹配ProgressiveNet: sampling as ordering 实验分类检索重建 结论附录 前沿 这是一篇比较经典的基于深度学习的点云下采样方法 核心创新点: 首次提出了一种学习驱动的、任务特定的点云采样方法引入了两种采样网络&…...
边缘计算收益稳定
要使自己的PCDN(Personal Content Delivery Network,个人内容分发网络)收益更稳定,可以从以下几个方面进行努力: 一、选择合适的PCDN平台 平台稳定性:选择技术成熟、稳定性高的PCDN平台,确保内…...
域名和服务器是什么?域名和服务器是什么关系?
在互联网的生态系统中,域名和服务器是两个至关重要的组成部分。它们共同构成了我们访问网站和使用在线服务的基础。那么域名和服务器是什么?域名和服务器是什么关系? 1、域名的概念 域名是互联网中用于标识特定地址的一种文字形式。它是用户访问网站时输入的易记…...
IBatis和MyBatis在细节上的不同有哪些
iBatis 和 MyBatis 都是流行的 Java 持久化框架,用于简化数据库交互。MyBatis 是从 iBatis 演化而来,MyBatis 在 iBatis 的基础上做了很多改进和优化,因此两者在设计和功能上存在一些差异。以下是它们在细节上的主要区别: 1. 框架…...

使用Python获取PDF文本和图片的精确位置
在处理和分析PDF文档时,获取文本和图片在页面上的精确位置是一个重要的操作。通过确定这些元素的具体坐标,我们可以实现对PDF内容的更精细控制和理解,这对于自动化文档处理、信息提取以及内容重组等工作流程尤为关键。通过Python编程语言&…...
【AI日记】24.12.25 kaggle 比赛 2-13
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 参加:kaggle 比赛 Regression with an Insurance Dataset时间:8 小时 读书 书名:我们能做什么 : 胡适与中国青年最真诚的分享时间:1.5 小时 律己 工作…...
【网络安全】用 Frida 修改软件为你所用
用 Frida 修改软件为你所用 Frida是一个强大的设备操作工具,它允许我们分析、修改和与运行中的应用程序交互。Frida通过在目标进程中创建一个线程,并通过这个线程执行一些启动代码来实现交互功能。这种交互被称为“代理”,它允许我们添加Jav…...

《信管通低代码信息管理系统开发平台》Windows环境安装说明
1 简介 《信管通低代码信息管理系统应用平台》提供多环境软件产品开发服务,包括单机、局域网和互联网。我们专注于适用国产硬件和操作系统应用软件开发应用。为事业单位和企业提供行业软件定制开发,满足其独特需求。无论是简单的应用还是复杂的系统&…...

使用强化学习与遗传算法优化3D低空物流路径_版本2
在快速发展的物流与自主系统领域,优化无人机在三维空间中的飞行路径至关重要。无论是在城市环境中导航还是在复杂地形中穿行,确保高效、安全且节能的航线规划能够显著提升运营效率。本文将深入探讨一种创新方法,结合强化学习(Rein…...

【MinIO系列】MinIO Client (mc) 完全指南
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【微信小程序】2|轮播图 | 我的咖啡店-综合实训
轮播图 引言 在微信小程序中,轮播图是一种常见的用户界面元素,用于展示广告、产品图片等。本文将通过“我的咖啡店”小程序的轮播图实现,详细介绍如何在微信小程序中创建和管理轮播图。 轮播图数据准备 首先,在home.js文件中&a…...
React与Vue的区别(相同点和不同点)
前言 JavaScript是世界上最流行的语言之一,React和Vue是JS最流行的两个框架。但各有优缺点,本文将详细对比两大框架 一、框架背景 React React是由Facebook开发的用于构建用户界面的JavaScript库,Facebook对市场上JavaScript MVC框架都不太…...
Python语言的文件操作
Python语言的文件操作 在现代编程中,文件操作是每个程序员都需要掌握的基本技能之一。无论是数据的持久化存储、日志的记录,还是配置信息的读取,文件操作都是不可或缺的一部分。Python作为一种高级编程语言,其简单易用的文件操作…...
前端Pako.js 压缩解压库 与 Java 的 zlib 压缩与解压 的互通实现
工具介绍: pako.js 前端压缩解压的库(包含 zlib 和gzip 两种实现,这里只介绍 zlib) pako 2.0.4 API documentation Java8 原生支持 zlib 和 gzip 业务场景 因为数据太大,网络环境不可控。故前端需要将数据 A 先压缩…...

unity 打包出来的所有执行文件内容打包成一个exe程序
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、使用Enigma Virtual Box1.下载安装包(根据需要32位还是64位。一般是64位)2.改个语言,方便使用(改了后重启才…...

华为管理变革之道:组织文化与活力
目录 企业文化是什么? 为什么活下去是华为的文化? 活下来,是华为公司的最低纲领,也是华为公司的最高纲领! 资源终会枯竭,唯有文化才能生生不息 企业文化之一:以客户为中心 企业文化之二&a…...

如何通过一次需求评审,让项目效率提升50%?
想象一下,你的团队启动了一个新项目,但需求模糊不清,开发到一半才发现方向错了,返工、加班、客户投诉接踵而至……听起来像噩梦?一次完美的需求评审就能避免这一切!它就像项目的“导航仪”,确保…...

ESP8266+STM32 AT驱动程序,心知天气API 记录时间: 2025年5月26日13:24:11
接线为 串口2 接入ESP8266 esp8266.c #include "stm32f10x.h"//8266预处理文件 #include "esp8266.h"//硬件驱动 #include "delay.h" #include "usart.h"//用得到的库 #include <string.h> #include <stdio.h> #include …...

【计算机网络】第2章:应用层—DNS
目录 一、PPT 二、总结 DNS(域名系统)详解 (一)DNS核心概念 (二)DNS查询过程(重点❗) (三)DNS资源记录(RR)类型…...

AI智能体|扣子(Coze)搭建【自动生成超高质量PPT】工作流
各位好久不见,你的失踪人口又回来了,已经超过一周的时间没有进行文章的更新了。 没更新的这段时间,主要还是因为工作上的调整以及身体生病所导致的停更,具体以后再说。 我们先讲今天的主要主题,使用 Coze 智能体一键生…...

[Vue组件]半环进度显示器
[Vue组件]半环进度显示器 纯svg实现,不需要其他第三方库,功能简单,理论上现代浏览器都能支持 封装组件 所有参数都选填,进度都可选填 <template><div class"ys-semiring"><div class"svg-container…...

二、网络安全常见编码及算法-(2)
该文章主要介绍古典密码和隐写常用的密码和编码,日常中很少见,主要用于ctf比赛和考试学习一、古典密码 1、古典密码概念概述 古典密码是密码学发展早期所使用的一系列加密技术,这些密码主要依靠手工操作或简单的机械装置来实现信息的加密和…...

[ARM][架构] 02.AArch32 程序状态
目录 参考资料 1.程序状态 - PSTATE 2.用户模式的 PSTATE 信息 2.1.状态标志 2.2.溢出/饱和标志 2.3.大于等于标志 2.4.指令集状态 2.5.IT 块状态 2.6.端序控制 2.7.指令执行时间控制 3.用户模式访问 PSTATE - APSR 寄存器 4.系统模式的 PSTATE 信息 4.1.状态标志…...
linux 内核态和用户态定时器函数使用总结
1,场景总结 定时器类型精度范围适用场景注意事项用户态信号定时器秒级简单任务调度、心跳检测信号处理函数中不可调用非异步安全函数timerfdepoll纳秒级高精度事件循环、多媒体处理需要配合IO多路复用机制使用内核timer_list毫秒级设备驱动、硬件交互基于jiffies时…...

【观成科技】Ymir勒索软件组织窃密木马RustyStealer加密通信分析
1.概述 Ymir勒索软件首次发现于2024年7月,采用ChaCha20加密算法对受害者文件进行加密,加密文件后缀为.6C5oy2dVr6。在攻击过程中,Ymir勒索组织利用名为RustyStealer的窃密木马获取受害企业的账号凭证,为后续横向移动和权限提升奠…...

【Linux网络编程】传输层协议TCP,UDP
目录 一,UDP协议 1,UDP协议的格式 2,UDP的特点 3,面向数据报 4,UDP的缓冲区 5,UDP使用注意事项 6,基于UDP的应用层协议 二,对于报文的理解 三,TCP协议 1&…...