SCI二区|北极海鹦优化算法(APO)原理及实现【免费获取Matlab代码】

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献
    • 5.代码获取


1.背景

2024年,W Wang受到北极海鹦的生存和捕食行为启发,提出了北极海鹦优化算法(Arctic Puffin Optimization, APO)。

在这里插入图片描述
在这里插入图片描述

2.算法原理

2.1算法思想

APO由空中飞行(探索阶段)和水下觅食(开发阶段)两部分构成。在探索阶段,引入了Levy飞行和速度因子机制,以增强算法跳出局部最优的能力并提高收敛速度。在开发阶段,采用了协同和自适应变化因子策略,确保算法能有效利用当前最佳解并指导搜索方向。

在这里插入图片描述

2.2算法过程

在这里插入图片描述

空中飞行阶段(探索)

北极海鹦通常以编队或群体的方式进行协调飞行,这种协作行为提高了飞行效率,并为合作狩猎创造了机会。它们保持相对较低的飞行高度,以方便捕获潜在的水下食物资源:
Y i t + 1 → = X i t → + ( X i t → − X r t → ) ∗ L ( D ) + R R = r o u n d ( 0.5 ∗ ( 0.05 + r a n d ) ) ∗ α (1) \overrightarrow{Y_{i}^{t+1}}=\overrightarrow{X_{i}^{t}}+\left(\overrightarrow{X_{i}^{t}}-\overrightarrow{X_{r}^{t}}\right)*L(D)+R\\R=round(0.5*(0.05+rand))*\alpha \tag{1} Yit+1 =Xit +(Xit Xrt )L(D)+RR=round(0.5(0.05+rand))α(1)
参数 α \alpha α表述为:
α ∼ N o r m a l ( 0 , 1 ) (2) \alpha\sim Normal(0,1)\tag{2} αNormal(0,1)(2)
俯冲是北极海鹦捕食时的关键策略,因为它们会迅速改变飞行方向以加快食物捕获:
Z i t + 1 → = Y i t + 1 → ∗ S S = tan ⁡ ( ( r a n d − 0.5 ) ∗ π ) (3) \overrightarrow{Z_i^{t+1}}=\overrightarrow{Y_i^{t+1}}*S\\ S=\tan((rand-0.5)*\pi)\tag{3} Zit+1 =Yit+1 SS=tan((rand0.5)π)(3)
在这种飞行策略中,北极海鹦在第一阶段通过引入速度系数S来调整其位移。S是一个速度系数,它允许北极海鹦通过调整其飞行速度的大小和方向,灵活地适应不同的摄食需求。随着参数S的增加,算法更加贴近北极海鹦的空中行为,使其在面对竞争和不确定性时更加灵活,从而适应更复杂的空中环境。
为了在各种场景下获得最优结果,算法选择合并两个阶段生成的候选位置,根据适应度对这些解决方案进行排序,并选择前N个个体形成新的种群:
P i t + 1 → = Y i t + 1 → ∪ Z i t + 1 → new = s o r t ( P i t + 1 → ) X i t + 1 → = n e w ( 1 : N ) (4) \begin{gathered} \overrightarrow{P_{i}^{t+1}} =\overrightarrow{Y_{i}^{t+1}}\cup\overrightarrow{Z_{i}^{t+1}} \\ \text{new} =sort\left(\overrightarrow{P_i^{t+1}}\right) \\ \overrightarrow{X_{i}^{t+1}} =new(1:N) \end{gathered}\tag{4} Pit+1 =Yit+1 Zit+1 new=sort(Pit+1 )Xit+1 =new(1:N)(4)

水下觅食阶段(开发)

在北极海鹦的觅食行为中,它们经常采取集体策略,聚集在水面附近的鱼群周围,这种合作捕食行为提高了捕猎效率和成功率:
W i t + 1 → = { X r 1 t → + F ∗ L ( D ) ∗ ( X r 2 t → − X r 3 t → ) r a n d ≥ 0.5 X r 1 t → + F ∗ ( X r 2 t → − X r 3 t → ) r a n d < 0.5 (5) \left.\overrightarrow{W_{i}^{t+1}}=\begin{cases}\overrightarrow{X_{r1}^{t}}+F*L(D)*\left(\overrightarrow{X_{r2}^{t}}-\overrightarrow{X_{r3}^{t}}\right)rand\geq0.5\\\overrightarrow{X_{r1}^{t}}+F*\left(\overrightarrow{X_{r2}^{t}}-\overrightarrow{X_{r3}^{t}}\right)rand<0.5\end{cases}\right.\tag{5} Wit+1 = Xr1t +FL(D)(Xr2t Xr3t )rand0.5Xr1t +F(Xr2t Xr3t )rand<0.5(5)

随着捕食的进行,北极海鹦可能会在一段时间后感觉到当前觅食区域的食物资源枯竭或耗尽。为了继续满足它们的营养需求,它们必须改变它们在水下的位置,寻找更多的鱼或其他水下食物来源:
Y i t + 1 → = W i t + 1 → ∗ ( 1 + f ) f = 0.1 ∗ ( r a n d − 1 ) ∗ ( T − t ) T (6) \begin{aligned} &\overrightarrow{Y_{i}^{t+1}}=\overrightarrow{W_{i}^{t+1}}*(1+f) \\ &f=0.1*(rand-1)*\frac{(T-t)}{T} \end{aligned}\tag{6} Yit+1 =Wit+1 (1+f)f=0.1(rand1)T(Tt)(6)

躲避捕食者策略被用来描述北极海鹦在发现附近的捕食者时的行为。它们用一种特殊的声音或叫声来警告其他北极海鹦,表明危险的存在:
Z i t + 1 → = { X i t → + F ∗ L ( D ) ∗ ( X r 1 t → − X r 2 t → ) r a n d ≥ 0.5 X i t → + β ∗ ( X r 1 t → − X r 2 t → ) r a n d < 0.5 (7) \overrightarrow{Z_i^{t+1}}=\begin{cases}\overrightarrow{X_i^t}+F*L(D)*\left(\overrightarrow{X_{r1}^t}-\overrightarrow{X_{r2}^t}\right)rand\geq0.5\\\overrightarrow{X_i^t}+\beta*\left(\overrightarrow{X_{r1}^t}-\overrightarrow{X_{r2}^t}\right)rand<0.5\end{cases}\tag{7} Zit+1 = Xit +FL(D)(Xr1t Xr2t )rand0.5Xit +β(Xr1t Xr2t )rand<0.5(7)

北极海鹦在水下觅食时采用不同的策略,包括收集饲料、密集搜寻和躲避捕食者。在不同的条件下,这些策略可能导致不同的觅食结果。该算法选择将三个不同位置方程中的候选位置合并为一个新的解,以在各种情况下获得最优结果。根据适应度对解进行排序,并选出前N个个体:
P i t + 1 → = W i t + 1 → ∪ Y i t + 1 → ∪ Z i t + 1 → n e w = s o r t ( P i t + 1 → ) X i t + 1 → = n e w ( 1 : N ) (8) \overrightarrow{P_i^{t+1}}=\overrightarrow{W_i^{t+1}}\cup\overrightarrow{Y_i^{t+1}}\cup\overrightarrow{Z_i^{t+1}}\\ new=sort\left(\overrightarrow{P_{i}^{t+1}}\right)\\\overrightarrow{X_{i}^{t+1}}=new(1:N)\tag{8} Pit+1 =Wit+1 Yit+1 Zit+1 new=sort(Pit+1 )Xit+1 =new(1:N)(8)

流程图

在这里插入图片描述

伪代码

在这里插入图片描述

3.结果展示

在这里插入图片描述

在这里插入图片描述

4.参考文献

[1] Wang W, Tian W, Xu D, et al. Arctic puffin optimization: A bio-inspired metaheuristic algorithm for solving engineering design optimization[J]. Advances in Engineering Software, 2024, 195: 103694.

5.代码获取

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全局静态变量、全局变量以及atexit回调的执行顺序

版本 gcc version 7.5.0 (Ubuntu 7.5.0-6ubuntu2) Linux UM480XT 5.15.0-107-generic #117~20.04.1-Ubuntu SMP Tue Apr 30 10:35:57 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Microsoft Visual Studio Enterprise 2019, _MSC_VER 1929 #include <stdio.h> #include…

tomcat8.5在windows下运行出现日志中文乱码

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; h…

基于SpringBoot漫画网站系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

React@16.x(44)路由v5.x(9)源码(1)- path-to-regexp

目录 1&#xff0c;作用2&#xff0c;实现获取 match 对象2.1&#xff0c;match 对象的内容2.2&#xff0c;注意点2.3&#xff0c;实现 1&#xff0c;作用 之前在介绍 2.3 match 对象 时&#xff0c;提到了 react-router 使用第3方库 path-to-regexp 来匹配路径正则。 我们也…

《昇思25天学习打卡营第17天 | 昇思MindSporeCycleGAN图像风格迁移互换》

17天 本节学习了CycleGAN图像风格迁移互换。 CycleGAN即循环对抗生成网络&#xff0c;该模型实现了一种在没有配对示例的情况下学习将图像从源域 X 转换到目标域 Y 的方法。该模型一个重要应用领域是域迁移&#xff0c;可以通俗地理解为图像风格迁移。其实在 CycleGAN 之前&a…

打破生态「孤岛」,Catizen将开启Telegram小游戏2.0时代?

Catizen&#xff1a;引领Telegram x TON生态的顶级猫咪链游 在区块链游戏领域&#xff0c;吸引玩家的首要因素往往是游戏的趣味性。然而&#xff0c;仅靠趣味性无法评估一个项目的长期价值和发展潜力。真正能在区块链游戏市场中取得长久成功的项目&#xff0c;无一例外都依靠扎…

Mozilla Firefox正在尝试集成ChatGPT等帮助用户总结或改写网页内容

Mozilla基金会开启了一项新计划&#xff1a;在接下来几个月里尝试在Firefox浏览器里集成 ChatGPT 等 AI 服务&#xff0c;帮助用户在网页上总结内容或者改写内容等。Firefox浏览器集成的 AI 服务包括但不限于 ChatGPT、Google Gemini、HuggingChat 等&#xff0c;当然这并不是把…

计算机网络之数据通信原理(下)

上一讲内容&#xff1a;数据传输方式、数据传输形式、传输差错处理、常用差错检测方法 数据通信过程中&#xff0c;一个很重要的问题就是如何控制数据的传输&#xff0c;就涉及到了传输控制规程&#xff08;协议&#xff09; 下面介绍两种&#xff1a; ①BSC&#xff1a;面向…

AI模型的奥运会:谁将在OlympicArena中夺冠?

获取本文论文原文PDF&#xff0c;请在公众号【AI论文解读】留言&#xff1a;论文解读 引言&#xff1a;AI模型的奥林匹克级评测 评估和比较不同AI模型的性能始终是一个核心话题。随着技术的不断进步&#xff0c;这些模型在处理复杂任务的能力上有了显著的提升。为了更精确地衡…

pytest测试框架pytest-random-order插件随机执行用例顺序

Pytest提供了丰富的插件来扩展其功能&#xff0c;本章介绍下pytest-random-order插件&#xff0c;随机设置pytest测试用例的运行顺序&#xff0c;并对随机性进行一些控制。 官方文档&#xff1a; https://pytest-cov.readthedocs.io/en/latest/index.html 适配版本说明&#x…

istitle()方法——判断首字母是否大写其他字母小写

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 istitle()方法用于判断字符串中所有的单词首字母是否为大写而其他字母为小写。istitle()方法的语法格式如下&#xff1a; str.istitle() …

【超级简单】植物大战僵尸杂交版V2.1,手机上最简单的安装方法~!

大家好&#xff0c;我是坤坤黑科技&#xff01;之前给大家分享了植物大战僵尸杂交版手机的安装方法&#xff0c;但是很多朋友还是因为操作难度大所以没有玩到。今天发现一个更加简单的在手机上玩植物大战僵尸杂交版的方法&#xff0c;直接安装就可以玩到最新的2.1版本~ 植物大…

基于UDP的网络聊天室(多线程实现收和发消息)

要求&#xff1a;1.有新用户登录&#xff0c;其他在线的用户可以收到登录信息 2.有用户群聊&#xff0c;其他在线的用户可以收到群聊信息 3.有用户退出&#xff0c;其他在线的用户可以收到退出信息 4.服务器可以发送系统信息 效果图&#xff1a; service.c #include <head…

【NodeJs】入门

目录 一、前导 二、 url模块 三、path模块 四、buffer模块 五、fs模块 六、stream流模块 七、os模块 八、crypto模块 九、util模块 十、http模块 nodejs官网 Node.js — 在任何地方运行 JavaScript nmp是Node.js包管理器&#xff0c;用来安装各种库、框架和工具&…

音视频开发30 FFmpeg 视频编码- 流程以及重要API,H264编码原理说明,该章节使用h264编码说明

一.H264编码原理 1 视频为什么需要进行编码压缩 ◼ 一张为 720x480 的图像&#xff0c;用 YUV420P 的格式来表示&#xff0c;其大小为&#xff1a; 720*480*1.5 约等于 0.5MB 。 ◼ 如果是 25 帧&#xff0c; 10 分钟的数据量 0.5M*10*60*25 7500MB -> 7GB 多 ◼ …

Open3D(C++) 删除点云中重复的点

目录 一、算法原理1、重叠点2、主要函数二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、重叠点 原始点云克隆一份   构造重叠区域   合并点云获得重叠点 2、主要…

2024 Parallels Desktop for Mac 功能介绍

Parallels Desktop的简介 Parallels Desktop是一款由Parallels公司开发的桌面虚拟化软件&#xff0c;它允许用户在Mac上运行Windows和其他操作系统。通过强大的技术支持&#xff0c;用户无需重新启动电脑即可在Mac上运行Windows应用程序&#xff0c;实现了真正的无缝切换。 二…

Python变量的命名规则与赋值方式

第二章&#xff1a;Python 基础语法 第一节&#xff1a;变量的命名规则与赋值方式 2.1.1 引言 在编程中&#xff0c;变量是存储数据的基本单元。变量的命名和赋值是编程语言中表达和操作数据的基础。了解和遵循变量命名规则对于编写清晰、可维护的代码至关重要。 2.1.2 变量…

基于Spring Boot的药房信息管理系统

1 项目介绍 1.1 研究的背景及意义 随着社会的飞速进步和药房行业竞争的白热化&#xff0c;传统的手工管理模式已难以适应药房信息管理的现代化需求。在计算机科学技术日臻完善的背景下&#xff0c;药房信息管理者们日益认识到运用计算机技术进行信息管理的迫切性和重要性。计…

【PL理论深化】(13) 变量与环境:文法结构 | 真假表达式:isZero E | let 表达式叠放 | 定义的规则 | 条件语句的使用

&#x1f4ac; 写在前面&#xff1a;从现在开始&#xff0c;让我们正式设计和实现编程语言。首先&#xff0c;让我们扩展在之前定义的整数表达式语言&#xff0c;以便可以使用变量和条件表达式。 目录 0x00 文法结构 0x01 真假表达式&#xff1a;isZero E 0x02 let 表达式叠…