【智能算法】人工原生动物优化算法(APO)原理及实现

news2024/12/23 5:07:22

目录

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


1.背景

2024年,X Wang受到自然界原生动物启发,提出了人工原生动物优化算法( Artificial Protozoa Optimizer, APO)。

在这里插入图片描述

在这里插入图片描述

2.算法原理

2.1算法思想

APO通过模拟原生动物的觅食、休眠和繁殖行为来模拟原生动物的生存机制。

在这里插入图片描述

2.2算法过程

觅食行为

对于觅食行为,作者考虑了原生动物的内部和外部因素。内部因素被认为是原生动物的觅食特征,而外部因素被认为是环境影响,如物种碰撞和竞争行为。
X i n e w = X i + f ⋅ ( X j − X i + 1 n p ⋅ ∑ k = 1 n p w a ⋅ ( X k − − X k + ) ) ⊙ M f X i = [ x i 1 , x i 2 , … , x i d i m ] , X i = s o r t ( X i ) (1) \begin{aligned}&X_{i}^{new}=X_{i}+f\cdot(X_{j}-X_{i}+\frac{1}{np}\cdot\sum_{k=1}^{np}w_{a}\cdot(X_{k-}-X_{k+}))\odot M_{f}\\&X_{i}=[x_{i}^{1},x_{i}^{2},\ldots,x_{i}^{dim}],\quad X_{i}=sort(X_{i})\end{aligned}\tag{1} Xinew=Xi+f(XjXi+np1k=1npwa(XkXk+))MfXi=[xi1,xi2,,xidim],Xi=sort(Xi)(1)
f = r a n d ⋅ ( 1 + cos ⁡ ( i t e r i t e r m a x ⋅ π ) ) n p m a x = ⌊ p s − 1 2 ⌋ w a = e − ∣ f ( X k − ) f ( X k + ) + e p s ∣ M f [ d i ] = { 1 , if d i is in   r a n d p e r m ( d i m , ⌈ d i m ⋅ i p s ⌉ ) 0 , otherwise (2) f=rand\cdot(1+\cos(\frac{iter}{iter_{max}}\cdot\pi))\\ np_{max}=\lfloor\frac{ps-1}{2}\rfloor \\ w_{a}=e^{-\left|\frac{f(X_{k-})}{f(X_{k+})+eps}\right|}\\ M_f[di]=\begin{cases}1,&\text{if}di\text{is in}\:randperm(dim,\lceil dim\cdot\frac{i}\\{ps}\rceil)\\0,&\text{otherwise}\end{cases}\tag{2} f=rand(1+cos(itermaxiterπ))npmax=2ps1wa=e f(Xk+)+epsf(Xk) Mf[di]={1,0,ifdiis inrandperm(dim,dimips⌉)otherwise(2)
其中𝑋𝑛𝑒𝑤和𝑋分别表示𝑖th原生动物的更新位置和原始位置。𝑋𝑗是随机选择的𝑗th原生动物。𝑋𝑘−表示在𝑘th配对邻居中随机选择一个排序指数小于0.05的原生动物。𝑓表示觅食因子,𝑛𝑝表示外部因素之间的邻居对个数,𝑛𝑝𝑚𝑎为𝑛𝑝的最大值。𝑤𝑎是自养模式下的权重因子,⊙表示Hadamard积。
异养模式在黑暗中,原生动物可以通过从周围环境中吸收有机物来获取营养。假设𝑋𝑛𝑒𝑎𝑟是附近一个食物丰富的地方,原生动物就会向那里移动。
X i n e w = X i + f ⋅ ( X n e a r − X i + 1 n p ⋅ ∑ k = 1 n p w h ⋅ ( X i − k − X i + k ) ) ⊙ M f X n e a r = ( 1 ± R a n d ⋅ ( 1 − i t e r i t e r m a x ) ) ⊙ X i w h = e − ∣ f ( X i − k ) f ( X i + k ) + e p s ∣ R a n d = [ r a n d 1 , r a n d 2 , … , r a n d d i m ] (3) \begin{aligned} &X_{i}^{new}=X_{i}+f\cdot(X_{near}-X_{i}+\frac{1}{np}\cdot\sum_{k=1}^{np}w_{h}\cdot(X_{i-k}-X_{i+k}))\odot M_{f} \\ &X_{near}=(1\pm Rand\cdot(1-\frac{iter}{iter_{max}}))\odot X_{i} \\ &w_{h}=e^{-\left|\frac{f(X_{i-k})}{f(X_{i+k})+eps}\right|} \\ &Rand=[rand_{1},rand_{2},\ldots,rand_{dim}] \end{aligned}\tag{3} Xinew=Xi+f(XnearXi+np1k=1npwh(XikXi+k))MfXnear=(1±Rand(1itermaxiter))Xiwh=e f(Xi+k)+epsf(Xik) Rand=[rand1,rand2,,randdim](3)
其中𝑋𝑛𝑒𝑎𝑟是附近的位置,“±”表示𝑋𝑛𝑒𝑎𝑟可能与𝑖th原生动物在不同的方向。Xi-k表示从𝑘th配对邻居中选出的i-k原生动物。
在这里插入图片描述

休眠行为

在环境压力下,原生动物可能会采取休眠行为作为一种生存策略来忍受不利的条件。当原生动物处于休眠状态时,它会被新产生的原生动物所取代,以保持恒定的种群数量。
X i n e w = X m i n + R a n d ⊙ ( X m a x − X m i n ) X m i n = [ l b 1 , l b 2 , … , l b d i m ] , X m a x = [ u b 1 , u b 2 , … , u b d i m ] (4) \begin{aligned}&X_{i}^{new}=X_{min}+Rand\odot(X_{max}-X_{min})\\&X_{min}=[lb_{1},lb_{2},\ldots,lb_{dim}],\quad X_{max}=[ub_{1},ub_{2},\ldots,ub_{dim}]\end{aligned}\tag{4} Xinew=Xmin+Rand(XmaxXmin)Xmin=[lb1,lb2,,lbdim],Xmax=[ub1,ub2,,ubdim](4)

繁殖行为

在适当的年龄和健康状况下,原生动物进行无性繁殖,这被称为二元裂变。理论上,这种繁殖会导致原生动物分裂成两个完全相同的子代。我们通过产生一个重复的原生动物并考虑扰动来模拟这种行为。
X i n e w = X i ± r a n d ⋅ ( X m i n + R a n d ⊙ ( X m a x − X m i n ) ) ⊙ M r M r [ d i ] = { 1 ,   i f   d i   i s   i n   r a n d p e r m ( d i m , ⌈ d i m ⋅ r a n d ⌉ ) 0 ,   o t h e r w i s e (5) \begin{aligned}&X_{i}^{new}=X_{i}\pm rand\cdot(X_{min}+Rand\odot(X_{max}-X_{min}))\odot M_{r}\\&M_{r}[di]=\begin{cases}1,&\mathrm{~if~}di\mathrm{~is~in~}randperm(dim,\lceil dim\cdot rand\rceil)\\0,&\mathrm{~otherwise}\end{cases}\end{aligned}\tag{5} Xinew=Xi±rand(Xmin+Rand(XmaxXmin))MrMr[di]={1,0, if di is in randperm(dim,dimrand⌉) otherwise(5)
APO涉及的参数:
p f = p f m a x ⋅ r a n d p a h = 1 2 ⋅ ( 1 + cos ⁡ ( i t e r i t e r m a x ⋅ π ) ) p d r = 1 2 ⋅ ( 1 + cos ⁡ ( ( 1 − i p s ) ⋅ π ) ) (6) \begin{aligned} &pf=pf_{max}\cdot rand \\ &p_{ah}={\frac{1}{2}}\cdot(1+\cos({\frac{iter}{iter_{max}}}\cdot\pi)) \\ &p_{dr}={\frac{1}{2}}\cdot(1+\cos((1-{\frac{i}{ps}})\cdot\pi)) \end{aligned}\tag{6} pf=pfmaxrandpah=21(1+cos(itermaxiterπ))pdr=21(1+cos((1psi)π))(6)
其中pf为原生动物种群中休眠和繁殖的比例分数,pah表示自养和异养行为的概率,pdr表示休眠和繁殖的概率。

在这里插入图片描述

流程图

在这里插入图片描述

伪代码

在这里插入图片描述

3.结果展示

使用测试框架,测试APO性能 一键run.m

  • 【智能算法】省时方便,智能算法统计指标——一键运行~

CEC2017-F20

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

4.参考文献

[1] Wang X, Snášel V, Mirjalili S, et al. Artificial Protozoa Optimizer (APO): A novel bio-inspired metaheuristic algorithm for engineering optimization[J]. Knowledge-Based Systems, 2024: 111737.

5.获取代码

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

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

相关文章

一文玩转Vue3参数传递——全栈开发之路--前端篇(8)

全栈开发一条龙——前端篇 第一篇:框架确定、ide设置与项目创建 第二篇:介绍项目文件意义、组件结构与导入以及setup的引入。 第三篇:setup语法,设置响应式数据。 第四篇:数据绑定、计算属性和watch监视 第五篇 : 组件…

导弹追踪效果实现_unity基础开发教程

Unity开发中导弹追踪的原理与实现 前言原理逻辑实现导弹逻辑目标赋值 应用效果结语 前言 ⭕在之前的一个项目的开发中,需要加入一个导弹追踪的游戏功能,且还要实现不规则发射路径,但是这种功能是第一次做,经过查阅资料和询问做过的…

java io包

InputStream InputStream 是 Java I/O 中所有输入流的抽象基类,它定义了读取字节流的基本方法。InputStream 类提供了许多子类,用于从不同的数据源读取数据,如文件、网络连接、内存等。 InputStream 提供了以下常用的方法: int…

Magic Studio Eraser API使用教程

AI橡皮擦 - 使用网址 Magic Studio的AI橡皮擦功能非常好用,能去除图片中的杂物。但是网页版只支持低分辨率下载,想要原图就得开会员,价格不菲。 不过官网其实提供了API接入方式,并且有100次的免费试用机会 API接入网站 在这里可…

PyQt6--Python桌面开发(3.运行QTDesigner生成的ui文件程序)

运行QTDesigner生成的ui文件程序 用QTDesigner设计一个简单的UI 保存ui文件,放到项目里面去 通过pyqt6包里面的uic来加载ui文件 import sysfrom PyQt6.QtWidgets import QApplication from PyQt6 import uicif __name__ __main__:appQApplication(sys.argv)uiui…

C++对象引用作为函数参数

使用对象引用作为函数参数最常见,它不但有指针作为参数的优点,而且比指针作为参数更简单、更方便。 引用方式进行参数传递,形参对象就是实参对象的“别名”,对形参的操作其实就是对实参的操作。 例如:用对象引用进行参数传…

基于Springboot的校园悬赏任务平台(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的校园悬赏任务平台(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

1010: 折半查找的实现

解法&#xff1a; #include<iostream> #include<vector> using namespace std; void solve() {int n;cin >> n;vector<int> vec(n);for (int& x : vec) cin >> x;int x;cin >> x;int l 0, r n-1, cnt 0;while (l < r) {cnt;int…

Python语言在地球科学交叉领域中的实践技术融合应用

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;Python能够运行在Linux、Windows、Macintosh、AIX操作系统上及不同平台&#xff08;x86和arm&#xff09;&#xff0c;Python简洁的语法和对动态输入的支持&#xff0c;再加上解释性语言的本质&…

代码随想录算法训练营第四十二天| 01背包问题(二维、一维)、416.分割等和子集

系列文章目录 目录 系列文章目录动态规划&#xff1a;01背包理论基础①二维数组②一维数组&#xff08;滚动数组&#xff09; 416. 分割等和子集①回溯法&#xff08;超时&#xff09;②动态规划&#xff08;01背包&#xff09;未剪枝版剪枝版 动态规划&#xff1a;01背包理论基…

【MySQL基本查询(上)】

文章目录 一、多行插入 指定列插入数据更新表中某个数据的信息&#xff08;on duplicate&#xff09;了解affected报告信息 二、检索功能1.select 查询1.1全列查询1.2指定列查询1.3where条件筛选子句案例 2.结果排序案例 3.筛选分页结果offset实现分页 一、多行插入 指定列插…

QT:小项目:登录界面 (下一章连接数据库)

一、效果图 登录后&#xff1a; 二、项目工程结构 三、登录界面UI设计 四主界面 四、源码设计 login.h #ifndef LOGIN_H #define LOGIN_H#include <QDialog>namespace Ui { class login; }class login : public QDialog {Q_OBJECTpublic:explicit login(QWidge…

es使用遇到的bug总结

本来版本7.4.0不行&#xff0c;最后换了个版本7.15.1就可以了&#xff0c;但又出现以下问题了&#xff1a; Beanpublic ElasticsearchClient elasticsearchClient() { // RestClient client RestClient.builder(new HttpHost("localhost", 9200,"http&q…

STM32理论 —— μCOS-Ⅲ(新)

文章目录 1. 任务调度器1.1 抢占式调度 μCos-Ⅲ全称是Micro C OS Ⅲ&#xff0c;由Micriμm 公司发布的一个基于C 语言编写的第三代小型实时操作系统(RTOS)&#xff1b; RTOS 与裸机相比最大的优势在于多任务管理与实时性&#xff0c;它提供了多任务管理和任务间通信的功能&a…

找出100~200的全部素数

解题思路&#xff1a; 判别 m 是否为素数的算法是这样的&#xff1a;让 m 被2~除&#xff0c;如果 m 不能被2~之中任何一个整数整除&#xff0c;就可以确定 m 是素数。为了记录 m 是否为素数&#xff0c;可以用一个布尔变量 prime 来表示。在循环开始时先设 prime 为真…

【Leetcode】八大排序

总述 插入排序&#xff1a;直接插入排序&#xff1b;希尔排序&#xff1b; 选择排序&#xff1a;简单选择排序&#xff1b;堆排序&#xff1b; 交换排序&#xff1a;冒泡排序&#xff1b;快速排序&#xff1b; 归并排序&#xff1b; 桶排序/基数排序&#xff1b; 直接插入排序 …

ssm105基于JAVAEE技术校园车辆管理系统+jsp

校园车辆管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本校园车辆管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短…

IOS Xcode证书配置和ipa打包流程(附详细图文教程)

IOS Xcode证书配置和ipa打包流程&#xff08;附图文教程&#xff09; 前言ipa文件简介证书文件简介Provisioning Profile描述文件简介当前环境版本Xcode证书配置和ipa打包流程生成Apple Distribution Certificates证书创建描述文件&#xff08;Provisioning Profiles&#xff0…

【python】模块与包

Python中的模块和包是组织和管理代码的重要工具。通过模块和包&#xff0c;你可以更好地管理和重用你的代码&#xff0c;使得代码更加模块化和可维护。 目录 前言 正文 一、模块 1、模块的分类 1&#xff09;内置模块 python解释器中默认拥有的模块可以直接使用&#xff08;…

守护数字疆域:2024年网络安全报告深度解读

在这个数据如潮涌动的数字时代&#xff0c;每一比特信息都可能是攻防双方角力的战场。《Check Point 2024年网络安全报告》不但为我们揭示了过去一年网络安全世界的风云变幻&#xff0c;更以前瞻性的视角勾勒出未来的挑战与机遇。此刻&#xff0c;让我们携手深潜这份权威指南的…