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…

深入探索Python自动化测试:Pytest与Unittest框架详解

摘要&#xff1a; 在软件开发过程中&#xff0c;自动化测试是确保代码质量和提高开发效率的关键环节。Python作为一门广泛使用的编程语言&#xff0c;提供了多种自动化测试工具。本文详细介绍了Python中两个主流的测试框架&#xff1a;Pytest和Unittest。文章首先概述了Pytest的…

JAVA高级进阶14设计模板

第十四天、设计模板 什么是设计模板&#xff08;Design pattern&#xff09; ? 一个问题通常有n种解法&#xff0c;其中肯定有一种解法是最优的&#xff0c;这个最优的解法被人总结出来了&#xff0c;称之为设计模式 设计模式有20多种&#xff0c;对应20多种软件开发中会遇到…

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时,我注意到其软件中具备选中即自动复制和右键直接粘贴的功能。但是,这种选中自动复制的功能仅在软件内部有效。由于这一功…

【wsl2】工作在nat模式安装miniconda

刚好当前是root 用户这里wsl说自己nat模式,不用系统代理 wsl: A localhost proxy configuration was detected but not mirrored into WSL. WSL in NAT mode does not support localhost proxies. Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 5.15.153.1-microsoft-standard-W…

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

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

最新docker仓库镜像

目前下面的docker仓库镜像源还能使用。 vi /etc/docker/daemon.json添加如下配置{"registry-mirrors": ["https://hub.uuuadc.top", "https://docker.anyhub.us.kg", "https://dockerhub.jobcher.com", "https://dockerhub.icu&…

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

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

IPC进程通信:QNX

引言 在现代操作系统中&#xff0c;进程间通信&#xff08;IPC&#xff09;机制是实现进程间数据交换和同步的关键技术。IPC允许多个进程共享信息和资源&#xff0c;从而协同工作完成复杂任务。在QNX Neutrino系统中&#xff0c;IPC尤为重要&#xff0c;因为QNX主要面向实时系…

在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;业务数据和回滚日志记录在同一…

力扣第217题“存在重复元素”

在本篇文章中&#xff0c;我们将详细解读力扣第217题“存在重复元素”。通过学习本篇文章&#xff0c;读者将掌握如何使用哈希表和排序方法来解决这一问题&#xff0c;并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释&#xff0c;以便于理解。 问题描述 力…

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…