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

news/2024/11/21 16:09:52/

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

 

“很长时间没有更新啦,久等了~

今天推送的旗鱼优化算法是2019年提出的,大家可以用来作为对比算法。”

旗鱼优化算法(Sailfish Optimizer, SFO)的设计源于对海洋中旗鱼捕食沙丁鱼行为的模拟。严格来说,应该叫旗鱼优化器。作者在24个经典的单峰和多峰Benchmark函数上对SFO算法进行了评估,对比了六种不同的元启发式算法。实验结果表明,SFO算法比所有对比算法具有更好的性能。SFO算法的原始参考文献如下:

“Shadravan S, Naji H R, Bardsiri V K. The Sailfish Optimizer: A novel nature-inspired metaheuristic algorithm for solving constrained engineering optimization problems[J]. Engineering Applications of Artificial Intelligence, 2019, 80: 20-34.”

01
灵感来源

SFO算法的灵感源于一群捕猎的旗鱼,模拟的是旗鱼的捕食过程。在自然界中,它们会成群结队地捕猎,如图1所示。下面对攻击过程依次进行介绍:1) 发现猎物后,旗鱼会将其驱赶至水面;2) 到达合适位置后,旗鱼对整个鱼群进行包围;3) 沙丁鱼本身具有很强的机动性,对旗鱼来说非常具有挑战性;4) 在攻击时,旗鱼要么用它的喙进行一次猛烈的攻击,伤害几条沙丁鱼,要么干扰沙丁鱼,使其混乱,破坏它们的阵型;5) 旗鱼的速度是水生脊椎动物中有记录以来最高的,沙丁鱼根本无法避开致命的穿刺伤害。受伤的沙丁鱼一旦与鱼群分离,它们很快就会被旗鱼捕获;6) 旗鱼在开始攻击之前,会改变体色,从通常的蓝银色侧面变暗到几乎黑色。作者基于旗鱼以上的捕猎过程,建立了相应的数学模型,具体可分为交替攻击、捕获猎物和替换位置三个阶段。

图1 旗鱼捕食过程

02
算法设计

与往期推送一样,目前我还不会在公众号里编辑数学公式。因此,这部分内容在Word文档里先写好,然后做成图片,最后导入。

03
计算流程

SFO算法的计算流程如图2所示:

图2 旗鱼优化算法流程图

04
实验仿真

对SFO算法的性能进行简单的测试。将SFO算法用于函数寻优,其MATLAB程序严格按照原始参考文献进行编写。此外,种群规模均为30,最大迭代次数为1000,基准函数采用的是CEC2005测试集。

这里以CEC2005测试集中的单峰函数Sphere (f1)和多峰函数Ackley (f10)为例,展示SFO算法在30维环境下的收敛效果,如图3所示,这里就不再做进一步的分析了。

(a) f1

(b) f10

图3 SFO算法的收敛曲线

05
MATLAB代码

SFO算法的MATLAB代码可通过复制下方链接进入获得。代码严格按照原始参考文献编写,附有详细注释。

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

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

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


http://www.ppmy.cn/news/101916.html

相关文章

多渠道短信管理后台

产品功能 多渠道短信管理后台的设计可以考虑如下几个方面: 渠道管理: 管理不同的短信渠道,比如阿里云短信,腾讯云短信,网易云短信等。每个渠道需要配置相关的 API 信息,账户信息等。模板管理: 管理短信模板,一个模板对应一个渠道。模板需要配置模板内容,占位符等信息。发送记…

WIN32 API —— 最简单的Windows窗口封装类[通俗易懂]

1 开发语言抉择 1.1 关于开发Win32 程序的语言选择 C还是C 在决定抛弃MFC,而使用纯Win32 API 开发Window桌面程序之后,还存在一个语言的选择,这就是是否使用C。C作为C的超集,能实现所有C能实现的功能。其实反之亦然,…

ubuntu下绑定USB,包括同型号设备名称---CP210*系列

:ubuntu下绑定USB,包括同型号设备名称—CP210*系列 链接: 参考链接 一、问题描述 在ROS中使用串口通讯时,由于传感器插入树莓派端口时间顺序不同,导致其对应的端口号也不同。先插上的是/dev/ttyUSB0,后插上的是/dev/ttyUSB1等等…

TypeScript实现贪吃蛇游戏

TS实现贪吃蛇游戏 文章目录 TS实现贪吃蛇游戏[toc]1.项目效果2.项目梳理3.项目准备4.主体页面结构5.CSS样式6.TS逻辑6.1 食物逻辑6.2 蛇逻辑6.3 记分板逻辑6.4 游戏控制器逻辑6.5 程序入口ts 1.项目效果 项目体验 2.项目梳理 这个小游戏主要包括积分面板,食物&…

腾讯云服务器CVM和轻量应用服务器区别

关于腾讯云轻量应用服务器和云服务器CVM的区别,之前腾讯云百科写过一篇文章来对比,如今2023阿腾云又更新了一篇新的区别对比文章,比之前的要更加详细,包括轻量服务器的使用限制、CPU型号、公网限制月流量、内网连通性、硬盘存储等…

测试类型(单元、集成、系统或手动测试)

测试类型(单元、集成、系统或手动测试) 单元测试 单元是系统的单个组件,例如类或单个方法。孤立地测试单元称为单元测试。 优点:速度快/易控/易写 缺点:缺乏现实性/无法捕获所有错误(例如与其他组件或服务的交互) 单元…

Unity 反射探针

反射射探针 是用来模拟反射周边物体的光照信息的一种解决方案让物体,受周围物体的光照或材质进行影响的一种模拟光照效果。如下图效果: 反射探针属性截图 反射探针类型 Baked 烘焙模式,此种模式需要反射的物体是静态的不能移动,但…

客户案例 | 思腾合力GPU算力节点助力实时云渲染

客户介绍 平行云是国内领先的云化XR概念倡导者与技术先行者,LarkXR是平行云研发的云化XR PaaS平台。LarkXR能够帮助XR领域企业级客户快速实现技术、产品及平台的云化转型,高效使能企业的云化XR业务,有效保护客户的内容安全,让多种…