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.mzph.cn/bicheng/38278.shtml

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

相关文章

Tcmalloc工具定位内存泄漏问题

内存泄漏问题定位 gperftools工具安装 执行如下操作&#xff1a; git clone https://github.com/gperftools/gperftools.git 注&#xff1a;如果网速较慢&#xff0c;可直接去下载压缩包。 如我下载的地址&#xff1a;https://github.com/gperftools/gperftools/releases/ta…

SA 注册流程

目录 1. UE开机后按照3GPP TS 38.104定义的Synchronization Raster搜索特定频点 2.UE尝试检测PSS/SSS&#xff0c;取得下行时钟同步&#xff0c;并获取小区的PCI&#xff1b;如果失败则转步骤1搜索下一个频点&#xff1b;否则继续后续步骤&#xff1b; 3.解析Mib&#xff0c;…

WDG看门狗

1 WDG 1.1 简介 WDG是看门狗定时器&#xff08;Watchdog Timer&#xff09;的缩写&#xff0c;它是一种用于计算机和嵌入式系统中的定时器&#xff0c;用来检测和恢复系统故障。 看门狗就像是一个忠诚的宠物狗&#xff0c;它时刻盯着你的程序&#xff0c;确保它们正常运行。…

SpringBoot启动出错:无法访问org.springframework.boot.autoconfigure.SpringBootApplication

无法访问org.springframework.boot.autoconfigure.SpringBootApplication类文件具有错误的版本 61.0&#xff0c;应为 52.0请删除该文件或确保该文件位于正确的类路径子目录中。 出现该问题是由于版本不兼容&#xff0c; 在pom.xml文件中&#xff0c;修改版本为2开头即可

一个用于Win的自动复制文本的工具:Auto_Copy

自动复制工具 这是一个用在 Windows 上的的小工具,会将你选中的任何文本保存下来,可以通过点击右键粘贴选中内容。 一、灵感来源: 在使用Mobaxterm时,我注意到其软件中具备选中即自动复制和右键直接粘贴的功能。但是,这种选中自动复制的功能仅在软件内部有效。由于这一功…

数字图像处理之【高斯金字塔】与【拉普拉斯金字塔】

数字图像处理之【高斯金字塔】与【拉普拉斯金字塔】 1.1 什么是高斯金字塔&#xff1f; 高斯金字塔&#xff08;Gaussian Pyramid&#xff09;是一种多分辨率图像表示方法&#xff0c;用于图像处理和计算机视觉领域。它通过对原始图像进行一系列的高斯平滑和下采样操作&#x…

RTMP推流到SRS流媒体服务器消息处理

RTMP推流到SRS流媒体服务器消息处理 SRS和客户端是怎么交换消息的&#xff1f;各个消息有什么作用&#xff1f;握手成功后&#xff0c;SRS和客户端进行消息交换&#xff0c;对应wiresharek这部分截图&#xff1a; 流程图&#xff08;之前画的&#xff0c;可能不够详细&#xf…

在Linux (Ubuntu 16) 下安装LabVIEW

用户尝试在Ubuntu 16操作系统上安装LabVIEW&#xff0c;但找不到合适的安装文件来支持Ubuntu。已经下载了运行时文件&#xff0c;并尝试将.rpm包转换为.deb包并安装在Ubuntu上。然而&#xff0c;安装完成后&#xff0c;没有在应用程序中看到LabVIEW的图标。 用户希望能够在Ubu…

【操作系统】内存管理——页面分配策略(个人笔记)

学习日期&#xff1a;2024.6.28 内容摘要&#xff1a;页面分配策略和内存映射文件&#xff0c;内存映射文件 页面分配置换策略 基本概念 驻留集&#xff0c;指请求分页存储管理中给进程分配的物理块的集合&#xff0c;在采用了虚拟存储技术的系统中&#xff0c;驻留集大小一…

springcloud第4季 分布式事务seata实现AT模式案例2【经典案例】

一 seata案例 1.1 背景说明 本案例使用seata的at模式&#xff0c;模拟分布式事务场景&#xff1a;【下订单&#xff0c;减库存&#xff0c;扣余额&#xff0c;改状态】 AT模式原理&#xff1a;是2pc方案的演变&#xff0c; 一阶段&#xff1a;业务数据和回滚日志记录在同一…

Android studio 打包低版本的Android项目报错

一、报错内容 Execution failed for task :app:packageRelease. > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade> com.android.ide.common.signing.KeytoolException: Failed to read key key0 from store "…

static修饰的对象在内存中的存储及其用法

一、static修饰的变量在内存中的存储位置 static关键字无论是在C语言还是C中都有着极其重要的作用&#xff0c;那么对于static来说&#xff0c;它修饰的对象是存储在内存的哪个位置呢&#xff1f;它的作用与它在内存中的位置有什么联系&#xff1f;还有它都适用于哪些场景&…

15.数据库简介+MySQl使用+SQL语句

文章目录 数据库简述一.数据库简介DB1.定义:2.DBMS数据库管理系统3.数据库分类 二.MySQL的安装1.安装步骤2.MySQL数据库图形管理工具3.mysql程序常用命令4.MySQL字符集及字符序5.Navicat快捷键操作 三.MySQL数据库基本操作 .........................................表管理一.…

RPC远程过程调用--Thrift

RPC远程过程调用–Thrift 简介 Thrift是一个由Facebook开发的轻量级、跨语言的远程服务调用框架&#xff0c;后进入Apache开源项目。支持通过自身接口定义语言IDL定义RPC接口和数据类型&#xff0c;然后通过编译器生成不同语言代码&#xff0c;用于构建抽象易用、可互操作的R…

黄子韬揭秘徐艺洋与EXO的不解之缘

黄子韬揭秘&#xff1a;徐艺洋与EXO的不解之缘在娱乐圈的繁华与喧嚣中&#xff0c;总有一些不为人知的故事&#xff0c;它们或温馨、或励志&#xff0c;或是感叹命运的奇妙。近日&#xff0c;黄子韬在一档热门综艺节目中意外爆料&#xff0c;揭开了徐艺洋与EXO之间鲜为人知的秘…

ffmpeg使用bmp编码器把bgr24编码为bmp图像

version #define LIBAVCODEC_VERSION_MAJOR 60 #define LIBAVCODEC_VERSION_MINOR 15 #define LIBAVCODEC_VERSION_MICRO 100 note 不使用AVOutputFormat code void CFfmpegOps::EncodeBGR24ToBMP(const char* infile, const char* width_str, const char* height_str…

IT之家最新科技热点

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

使用Java连接数据库并且执行数据库操作和创建用户登录图形化界面(3)专栏里有上两步的源代码

创建用户登录程序&#xff0c;验证用户账号和密码信息是否在数据库student中的用户表tb_account中存在。用户登录界面如下图所示&#xff1a; 当单击“登录”按钮时&#xff0c;处理以下几种情况&#xff1a; &#xff08;1&#xff09;用户名未输入&#xff0c;提示用户名不能…

业务模型扩展字段存储

构建业务模型时&#xff0c;通常模型会设置扩展信息&#xff0c;存储上一般使用JSON格式存储到db中。JSON虽然有较好的扩展性&#xff0c;但并没有结构化存储的类型和非空等约束&#xff0c;且强依赖代码中写入/读取时进行序列化/反序列化操作&#xff0c; 当扩展信息结构简单且…

代码随想录第37天|动态规划

01背包理论基础 参考 01背包: 每个物品只有一个, 只要选或不选两个选项 暴力解法: 回溯法枚举 dp[i][j]: i 表示 0 ~ i 的物品, j 表示容量, 数值表示当前的最大价值递推公式: max(dp[i-1][j], dp[i-1][j-weight[i]] value[i])初始化: j 0 时, 无法放任何有价值的物品, d…