䲟鱼优化算法(ROA)(含MATLAB代码)

news2024/12/24 2:30:04

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出的新型智能优化算法,并附MATLAB代码。

 

“今天推送的䲟鱼优化算法(ROA)是三明学院信息工程学院贾鹤鸣教授于2021年提出的,关于ROA的详细介绍,大家可以关注贾教授的CSDN博客:鹤鸣优化”

 

䲟鱼优化算法(Remora Optimization Algorithm, ROA)是2021年提出的一种元启发式优化算法,其灵感来自于海洋中䲟鱼的寄生行为。作者通过29个基准问题和5个实际工程问题验证了ROA的有效性。与其他10种启发式算法进行比较,实验结果表明,与其他先进的启发式技术相比,ROA具有很好的应用前景和较强的竞争力。ROA的原始参考文献如下:

“Jia H, Peng X, Lang C. Remora optimization algorithm[J]. Expert Systems with Applications, 2021, 185: 115665.”

01
灵感来源

作为海洋中最聪明的鱼之一,为了免受敌人的入侵,同时也为了节省体力,䲟鱼会寄生在旗鱼、鲸鱼或其他生物上觅食。算法以䲟鱼寄生在旗鱼和鲸鱼身上为例来设计数学模型。因此,ROA借鉴了旗鱼优化(Sailfish Optimizer, SFO)和鲸鱼优化算法(Whale Optimization Algorithm, WOA)的更新公式,进行全局和局部的位置更新。换言之,ROA可以看作是SFO和WOA的混合算法。因此,对于两种组成算法不了解的同学,可以先阅读往期推送,了解SFO和WOA:

旗鱼优化(SFO)算法(含MATLAB代码)

鲸鱼优化算法(WOA)及其优秀变体(含MATLAB代码)

此外,为了确定是否需要更换宿主,䲟鱼会在宿主周围进行小范围移动,即经验积累,若不需要更换宿主,则进行宿主边觅食。图1展示了䲟鱼捕食的详细过程。

图1 䲟鱼捕食过程

02
算法设计

为了不误解作者的设计意图,对于算法的描述,采用了贾教授本人给出的解释。图片截自贾教授的CSDN博客。

03
计算流程

ROA的计算流程如下:

04
实验仿真

这里对算法ROA的性能进行简单的测试。首先将ROA用于函数寻优,算法的MATLAB程序是严格按照它的原始参考文献进行编码的。此外,种群规模取N等于50,Benchmark函数分别采用了CEC2005测试集、CEC2013测试集、CEC2014测试集、CEC2017测试集和CEC2020优化函数测试集。这里对仿真结果进行简要展示,就不再进一步做分析了。

首先,我们来检验一下ROA对全局勘探和局部开发的平衡能力。如图2所示,是ROA在CEC2005测试函数f7上的勘探和开发占比曲线。

图2 ROA在CEC2005 f7上的勘探和开发百分占比变化曲线

其次,以CEC2005的单峰函数Schwefel's 2.22 (f2)和多峰函数Ackley (f10)为例,展示ROA在30维环境下的收敛效果,如图3所示。

(a) 单峰函数Schwefel's 2.22 (f2)

(b) 多峰函数Ackley (f10)

图3 ROA在CEC2005两个测试函数上的收敛曲线

再次,以CEC2013测试集中的单峰函数F5为例,展示ROA在30维环境下的收敛效果,如图4所示。(注意是画的误差曲线)

图4 ROA在CEC2013 F5上的误差收敛曲线

接着,以CEC2014测试集中的混合函数F19为例,展示ROA在30维环境下的收敛效果,如图5所示。(注意是画的误差曲线)

图5 ROA在CEC2014 F19上的误差收敛曲线

再然后,以CEC2017测试集中的多模态函数F4为例,展示ROA在30维环境下的收敛效果,如图6所示。(注意是画的误差曲线)

图6 ROA在CEC2017 F4上的误差收敛曲线

最后,以CEC2020优化函数测试集中的复合函数F9为例,展示ROA在30维环境下的收敛效果,如图7所示。(注意是画的误差曲线)

图7 ROA在CEC2020优化函数 F9上的误差收敛曲线

进一步,可将ROA应用于复杂工程约束优化问题,例如之前推送的两期算法应用内容:

算法应用:基于DBO算法的工程优化设计(第1期)(含MATLAB代码)

算法应用:工程优化设计(第2期)(含MATLAB代码)

这里以焊接梁设计问题为例,展示ROA求解效果。收敛曲线如图8所示。

图8 ROA在焊接梁设计问题上的目标函数收敛曲线

05
MATLAB代码

公众号里有链接

ROA跑CEC2005测试集:

(关注公众号:启发式算法讨论)

ROA跑CEC2013测试集:

(关注公众号:启发式算法讨论)

ROA跑CEC2014测试集:

(关注公众号:启发式算法讨论)

ROA跑CEC2017测试集:

(关注公众号:启发式算法讨论)

ROA跑CEC2020优化函数测试集:

(关注公众号:启发式算法讨论)

ROA的勘探(Exploration)和开发(Exploitation)占比分析:

(关注公众号:启发式算法讨论)

ROA的工程应用(第1期):压力容器设计、滚动轴承设计、拉伸/压缩弹簧设计、悬臂梁设计、轮系设计、三杆桁架设计。

(关注公众号:启发式算法讨论)

ROA的工程应用(第2期):焊接梁设计、多盘离合器制动器设计问题、步进圆锥滑轮问题、减速机设计问题、行星轮系设计优化问题、机器人夹持器问题。

(关注公众号:启发式算法讨论)

关于其他智能优化算法的MATLAB代码,可访问我的个人主页查看:

(关注公众号:启发式算法讨论)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/584281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

接口测试--apipost接口断言详解

在做接口测试的时候,会对接口进行断言,一个完整的接口测试,包括:请求->获取响应正文->断言。 一、apipost如何进行断言 apipost的断言设置实在后执行脚本中进行编写的。apipost本身提供了11中断言: apt.asser…

经济学基本思维方式

经济学定义 人的欲望是无止境的,而资源有限,这是一个矛盾。 经济学是研究个人和社会如何最优利用由自然和前人提供的有限资源的学问。 经济学的范围 Microeconomics 微观经济学 研究各个行业的运作的以及企业和个人的决策行为的经济学分支。Macroeco…

数据门户基础课程

PC端门户使用示例 首先,以管理员身份登录FineBI系统,安装数据门户,安装步骤见官网 新建一个数据门户

7. Linux系统下在桌面设置添加安装软件启动图标快捷方式

1. 说明 在Linux系统下安装了对应的软件之后,一般启动时需要在命令行终端中进行启动,可以在终端里设置快速启动的命令,相关设置可参考博客:Linux系统下在终端设置快速启动已安装软件。 另一种快捷启动方式就是像在Windows桌面系统…

git报错Filename too long

描述 碰见一个小小问题,Git在拉代码的时候提示Filename too long,具体如图 刚开始,一开始我是使用git自带的那个工具有问题了,然后我就下载了一个tortoisegit,结果还是有问题,这可是22G文件,我…

printf打印彩色字符,还能闪烁!

在使用linux终端命令的时候,我们可以看到像more命令,它的显示方式与一般的字符串不同,是用了反显。同样,linux C下printf还有很多其他不常见的格式化输出形式。本文主要为你盘点这些形式。 效果展示: 特殊的输出 演示代码: #inc…

每日一练 | 华为认证真题练习Day47

1、某台路由器输出信息如下,下列说法错误的是?(多选) A. 本路由器开启了区域认证 B. 本设备出现故障,配置的Router Id和实际生效的Router ID不一致 C. 本设备生效的Router Id为10.0.12.1 D. 本设备生效的Router Id为…

渗透测试工具Burpsuite

学习文档 https://portswigger.net/burp/documentation/desktop/getting-started/download-and-install Burp Suite是一款流行的集成式Web应用程序安全测试工具套件,广泛应用于渗透测试、安全审计、黑盒测试和漏洞研究等Web安全领域。它由PortSwigger公司开发&…

工具-Ditto与X mouse Button,自定义热键复制粘贴Ctrl C /V,解放双手

文章目录 1、使用演示2、使用方法3、更新,鼠标一键实现复制粘贴3.1 使用方法 1、使用演示 不需要同时摁下ctrl c /v 就可以在键盘上实现一键复制粘贴,其实去网上有外接的键盘,大概20元左右,外接键盘只有两个摁键,就是…

一文解决OpenCloudOS 如何基于 eBPF 实现容器级别的TCP 连接监控?

导语:eBPF 技术的出现,使得内核的资源监控更加的便捷、高效,容器化监控也更加适用于云原生的场景。基于 eBPF 实现的可观测性,可以无需修改内核源码或者加载内核模块,安全高效的扩展内核功能,很好的解决了上…

11.1.0 Web 打印新支持 UGC 布局模板

作者:yx 目录 前言 一、在iDesktopX制作布局并输出布局模板 二、将布局模板拷贝到iServer 三、构建Web打印内容 四、结果展示 前言 之前有小伙伴希望 iServer 的 Web 打印布局可以采用 iDesktop/iDesktopX 输出的布局模板,针对该需求11.1.0版本做了…

基于标准库函数的STM32的freertos的移植(二)——freertos工程源码移植

1.新建Project_Stm32f407的文件夹,如下图所示: 图1 新建Project_Stm32f407的文件夹 2.在Project_Stm32f407的目录下新建7个子目录(分别新建cmsis、include、source、fwlib、user、mdk和freertos等7个文件夹)。 图2 新建7个文件目录…

Unity 一键修改场景中的字体,修改部分字体

强大的Unity编辑器扩展 介绍: 测试编辑器扩展时顺便做了个小工具,挺有意思 选中场景中的物体后就可以一键修改这个物体下所有字体 如果什么都不选,就是修改这个场景中的全部字体 修改完字体后记得保存场景! 代码&#xff0…

《微服务实战》 第二十五章 Java多线程安全与锁

前言 本章节介绍Java多线程安全与锁 1、Java多线程安全与锁 1.1、多线程安全问题 当多个线程同时操作同一个数据时,可能会出现数据不一样的情况,这就是线程安全问题。线程安全机制用于保证多个线程访问数据时的一致性. 1.2、线程安全问题三方面 原…

际华集团电子化采购平台建设之路及功能亮点

际华集团股份有限公司(以下简称“际华集团”)于2009年6月26日设立,并于2010年8月16日在上海证券交易所挂牌上市,旗下50余户全资及控股子公司,分布在全国23个省、直辖市、自治区以及欧洲、香港,资产规模超30…

让初学者读懂代码的入门书

经常有同学问,零基础想要学编程,应该先从哪门编程语言学起。 如果你学习编程是想要从事互联网技术岗位,那么对比众多的编程语言,Java作为目前使用率最高且应用领域最多的编程语言之一,从应用领域、生态及业内使用率上…

【016】C++预处理详解(内存分区、变量的存储、头文件、宏等)

C内存分区和变量存储 引言一、内存分区二、变量的存储2.1、普通局部变量2.2、普通全局变量2.3、静态局部变量2.4、静态全局变量 三、全局函数和静态函数3.1、全局函数3.2、静态函数(static修饰的函数) 四、头文件包含五、#define宏5.1、不带参数的宏5.2、…

chatgpt赋能python:Python中的不确定尾数问题

Python中的不确定尾数问题 Python作为一种高级编程语言,被广泛应用于数据科学、机器学习、Web开发等众多领域。然而,Python在处理浮点数时会出现一些不确定尾数的问题,给程序员和数据分析员带来不少麻烦。本篇文章将介绍Python中不确定尾数的…

抖音seo开源源码,抖音优化系统定制方案

抖音作为目前最火热的短视频平台之一,其在移动互联网领域的影响越来越大。然而,一款成功的产品未必仅仅靠着其自身的功能和品质就能获得市场的认可,还需要通过优化SEO来实现更好的曝光率。下面,本文将介绍如何优化抖音SEO源码开发…

16个好用到爆的Python实用技巧!

Python 是一门用途广泛的编程语言,它具有大量的库和框架。有一些鲜为人知的 Python 编码技巧和库可以让你作为开发人员的工作更为轻松,编写代码更高效。 本文将探讨一些鲜为人知的 Python 技巧,这些技巧非常有用,但并不广为人知。…