人工原生动物优化器(APO)-2024年SCI一区新算法-公式原理详解与性能测评 Matlab代码免费获取

       声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 

目录

原理简介

一、觅食行为

(1)自养模式

(2)异养模式

二、冬眠行为

三、再生产

四、算法参数

算法流程图和伪代码

性能测评

参考文献

完整代码


        人工原生动物优化器(APO)是一种新型的元启发式算法(智能优化算法),灵感来源于模拟原生动物的觅食、休眠和繁殖行为的生存机制,APO与32种最先进的算法进行了比较,实验证明,该算法对优化问题具有较强的竞争性。该成果由Xiaopeng Wang等人于2024年4月发表在SCI人工智能一区顶刊KNOWLEDGE-BASED SYSTEMS上!

        由于发表时间较短,谷歌学术上还没人引用!你先用,你就是创新!

原理简介

        灵感:微生物中的细菌、藻类和原生动物的功能类似于高等动植物的器官,它们是通过被称为“细胞器”的特殊结构来完成的。这些微生物表现出基本的生命特征,包括代谢、繁殖、遗传连续性、可变性和对环境刺激的适应。微生物通常比高等生物更有效地利用,因为它们的组织更简单,复杂性更低。本文所提到的原生动物是指鞭毛虫中具有代表性的真藻类。“euglena”这个名字来源于希腊语,意思是“眼球有机体”。

一、觅食行为

(1)自养模式

        原生动物可以通过叶绿体产生碳水化合物来提供营养。如果原生动物暴露在强光下,它会离开它的位置,向一个有较低的光强度。当它处于低光强的位置时,反之亦然。假设𝑗th原生动物周围的光强适合进行光合作用,原生动物就会移动到𝑗th原生动物所在的位置。对于自养模式,我们提供了以下数学模型:

        其中𝑋𝑛𝑒𝑤和𝑋分别表示𝑖th原生动物的更新位置和原始位置。𝑋𝑗是随机选择的𝑗th原生动物。𝑋𝑘−表示在𝑘th配对邻居中随机选择一个排序指数小于0.05的原生动物。具体来说,如果𝑋≥𝑋1,𝑋𝑘−也被设置为𝑋1。𝑋𝑘+表示在𝑘th配对邻居中随机选择一个原生动物,其等级指数大于0.05。特别地,如果𝑋≥𝑋𝑝𝑠,则𝑋𝑘+也设置为𝑋𝑝𝑠,其中𝑝𝑠为总体大小。𝑓表示觅食因子,𝑟𝑎𝑛𝑑表示均匀分布区间[0,1]内的随机数。分别表示当前迭代和最大迭代。𝑛𝑝表示外部因素之间的邻居对个数,𝑛𝑝𝑚𝑎为𝑛𝑝的最大值。𝑤𝑎是自养模式的权重因子,𝑒𝑝𝑠(2.2204e-16)是一个非常小的数字。⊙表示哈达玛积。𝑀𝑓是一个大小为(1 ×𝑑-𝑚)的觅食映射向量,其中每个元素为0或1。𝑑𝑖表示维数𝑑𝑖∈{1,2⋯𝑑𝑖𝑚}。

(2)异养模式

        在黑暗中,原生动物可以通过从周围环境中吸收有机物来获取营养。假设𝑋𝑛𝑒𝑎𝑟是附近一个食物丰富的地方,原生动物就会向那里移动。对于异养模式,我们提出以下数学模型:

        其中𝑋𝑛𝑒𝑎𝑟是附近的位置,“±”表示𝑋𝑛𝑒𝑎𝑟可能与𝑖th原生动物在不同的方向。𝑋i-𝑘表示从𝑘th配对邻居中选出的i-𝑘个原生动物,其排名索引为i-𝑘。如果𝑋𝑖是𝑋1,𝑋𝑖−𝑘也将赋值给𝑋1。𝑋i+𝑘表示从𝑘th配对邻居中选出的原生动物i+𝑘,其排名为i+𝑘。特别是,如果𝑋𝑖是𝑋𝑝𝑠,𝑋𝑖+𝑘也将赋值给𝑋𝑝𝑠。𝑤是异养模式下的权重因子。𝑅𝑎𝑛𝑑是一个随机向量,其元素在[0,1]区间内。

二、冬眠行为

        在环境压力下,原生动物可能会采取休眠行为作为一种生存策略来忍受不利的条件。当原生动物处于休眠状态时,它会被新产生的原生动物所取代,以保持恒定的种群数量。休眠的数学模型如下:

        其中𝑋𝑚i𝑛和𝑋𝑚𝑎x分别表示下界和上界向量。𝑙𝑏𝑑i和𝑢𝑏𝑑i分别表示𝑑𝑖th变量的下界和上界。

三、再生产

        在适当的年龄和健康状况下,原生动物进行无性繁殖,这被称为二元裂变。

        理论上,这种繁殖会导致原生动物分裂成两个完全相同的子代。我们通过产生一个重复的原生动物并考虑扰动来模拟这种行为。繁殖的数学模型如下:

        其中“±”表示扰动可以是正向的,也可以是反向的。𝑀𝑟是复制过程中的映射向量,其大小为(1 ×𝑑i𝑚),每个元素为0或1。

四、算法参数

        APO所涉及的参数如下:

        其中𝑝𝑓为原生动物种群中休眠和繁殖的比例分数,𝑝𝑓𝑚𝑎x是𝑝𝑓的最大值。𝑝𝑎h表示自养和异养行为的概率,𝑝𝑑𝑟表示休眠和繁殖的概率。

算法流程图和伪代码

        为了使大家更好的理解,这边给出算法流程和伪代码,非常清晰!

        如果实在看不懂,不用担心,可以看下代码,再结合上文公式理解就一目了然了!

性能测评

        原文作者在CEC-2022中的12个基准函数进行了测试的实际潜力,实验证明,该算法对优化问题具有较强的竞争性。

        这边为了方便大家对比与理解,采用23个标准测试函数,即CEC2005,并与经典的粒子群算法PSO进行对比!这边展示其中5个测试函数的图,其余十几个测试函数大家可以自行切换尝试!

        可以看到,APO的效果还是非常不错的!在大部分函数上都超过了PSO算法,收敛速度也非常快,大家应用到各类预测、优化问题中是一个不错的选择~

参考文献

        [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.

完整代码

        如果需要免费获得图中的完整测试代码,只需后台回复关键字:

APO

        也可后台回复个人需求(比如APO-LSTM)定制人工原生动物优化模型(看到秒回):

        1.回归/时序/分类预测类:SVM、RVM、LSSVM、ELM、KELM、HKELM、DELM、RELM、DHKELM、RF、LSTM、BiLSTM、GRU、BiGRU、PNN、CNN、BP、XGBoost、TCN、BiTCN、ESN等等均可~

        2.组合预测类:CNN/TCN/BiTCN/DBN/Adaboost结合SVM/RVM/ELM/LSTM/BiLSTM/GRU/BiGRU/Attention机制类等均可(可任意搭配非常新颖)~

        3.分解类:EMD、EEMD、VMD、REMD、FEEMD、TVF-EMD、CEEMDAN、ICEEMDAN、SVMD等分解模型均可~

        4.其他:机器人路径规划、无人机三维路径规划、DBSCAN聚类、VRPTW路径优化、微电网优化、无线传感器覆盖优化、故障诊断等等均可~

        5.原创改进优化算法(适合需要创新的同学):2024年的人工原生动物优化算法APO以及麻雀SSA、蜣螂DBO等任意优化算法均可,保证测试函数效果!

        更多免费代码链接:更多代码链接

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

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

相关文章

xss漏洞学习

1.xss漏洞简介 跨站脚本(Cross-Site Scripting),本应该缩写为CSS,但是该缩写已被层叠样式脚本Cascading Style Sheets所用,所以改简称为XSS。也称跨站脚本或跨站脚本攻击。 原理:跨站脚本攻击XSS通过将恶…

项目文档:基于JavaFX + Maven的桌面扫雷软件打包exe【小白可做,文章末尾有包教安装有源代码可运行,可打包】

微信公众号: 科研小条 前言 用于学习javafx做桌面软件,熟悉maven构建项目的最佳选择 效果展示: 1. 项目概述 本项目是一个基于Java和JavaFX构建的桌面扫雷游戏软件。扫雷游戏是一种经典的单人益智游戏,玩家需要根据已知的雷区信息&…

Golang Colly爬取图片gorm存储数据

语言:Golang 库:Iris/Colly/gorm 运行结果 text/html; charset=utf-8 It is image 20240429222029_0_0.jpg Saved file: images\20240429222029_0_0.jpg text/html; charset=utf-8 It is image 20240429222030_1_0.jpg Saved file: images\20240429222030_1_0.jpg It is ima…

动态切换数据源的最佳实践

序言 本文和大家聊聊在开发中,动态切换多数据源的方案。 一、多数据源需求 随着应用程序的发展和复杂性增加,对于多数据源的需求也变得越来越普遍。在某些场景下,一个应用程序可能需要连接和操作多个不同的数据库或数据源。常见的场景包括…

Qt QThreadPool线程池

1.简介 QThreadPool类管理一个QThread集合。 QThreadPool管理和重新设计单个QThread对象,以帮助降低使用线程的程序中的线程创建成本。每个Qt应用程序都有一个全局QThreadPool对象,可以通过调用globalInstance来访问该对象。 要使用其中一个QThreadPool…

深度学习入门(4)

神经网络的构建 import numpy as np import matplotlib.pyplot as plt def sigmoid(x):return 1/(1np.exp(-x)) def identity_function(x):#恒等函数return x def init_network():#进行权重和偏置的初始化,并保存到字典中network{}network[W1]np.array([[0.1,0.3,0…

ezplot--Matlab学习

目录 一、代码 二、效果 ​编辑 三、ezplot讲解 四、如何自定义一个函数 一、代码 clc; clear; t0:32; x4(t) cos(2*pi*t/4).*sin(2*pi*t/4); x8(t) cos(2*pi*t/8).*sin(2*pi*t/8); x16(t) cos(2*pi*t/16).*sin(2*pi*t/16); subplot(3,1,1) ezplot(x4,[0,32]); subplot…

POCEXP编写—多线程

POC&EXP编写—多线程 1. 前言2. 多进程&多线程2.1. 多进程2.1.1. 案例 2.2. 多线程2.2.1. 案例: 2.3. POC的案例(模板) 3. UA头设置3.1. 随机UA头3.1.1. 案例3.1.2. 模板拼接 4. 代理Proxy4.1. 单代理案例4.2. 多代理案例4.2.1. 请求…

【AI心理咨询应用】继Woebot之后,国内诞生的“LLM+CBT”应用:白小喵

导言 AI认知行为疗法(Cognitive Behavioral Therapy,CBT)早在2017年便有了首例,即美国知名CBT治疗机器人Woebot。 然而,Woebot在CBT的完整落地上仍有缺陷问题,LLM的出现促进了对该问题的解决,…

【机器学习基础1】什么是机器学习、预测模型解决问题的步骤、机器学习的Python生态圈

文章目录 一. 什么是机器学习1. 概念2. 机器学习算法分类 二. 利用预测模型解决问题的步骤三. 机器学习的Python生态圈 一. 什么是机器学习 1. 概念 机器学习(Machine Learning,ML)是一门多领域的交叉学科,涉及概率论、统计学、…

服务器数据恢复—Storwize V3700存储数据恢复案例

服务器存储数据恢复环境: 某品牌Storwize V3700存储,10块硬盘组建了2组Mdisk加入到一个存储池中,一共创建了1个通用卷来存放数据,主要数据为oracle数据库。 服务器存储故障: 其中一组Mdisk中两块磁盘出现故障离线&…

【每日刷题】Day28

【每日刷题】Day28 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 ​ 1. 121. 买卖股票的最佳时机 - 力扣(LeetCode) 2. 205. 同构字符串 - 力扣…

关于discuz论坛网址优化的一些记录(网站地图sitemap提交)

最近网站刚上线,针对SEO做了些操作,为了方便网站网页百度被收录,特此记录下 discuz有免费的sitemap插件可以用,打开后台管理,找到插件栏,然后找到更多插件,进入插件市场。 选择这个免费的sitem…

【数据分析面试】34.填充NaN值 (Python:groupby/sort_value/ffill)

题目:填充NaN值 (Python) 给定一个包含三列的DataFrame:client_id、ranking、value 编写一个函数,将value列中的NaN值用相同client_id的前一个非NaN值填充,按升序排列。 如果不存在前一个client_id,则返…

Linux详解:进程等待

文章目录 进程等待等待的必要性进程等待的方法waitwaitpid获取子进程status阻塞等待 与 非阻塞等待 进程等待 等待的必要性 子进程退出,父进程不进行回收的话,就可能造成僵尸进程,进而造成内存泄露 如果进程进入了僵尸状态,kill…

GITEE 基于OAuth2的API V5版本

为了构建更好的码云生态环境,我们推出了基于OAuth2的API V5版本。 API V5接口使用方式以及Url都参照GitHub,为了各位开发者更好的兼容已经存在的第三方应用。 API 使用条款 OSCHINA 用户是资源的拥有者,需尊重和保护用户的权益。不能在应用…

基于SpringBoot+Vue高校竞赛管理系统的设计与实现

项目介绍: 高校竞赛管理系统管理系统按照操作主体分为管理员和用户。管理员的功能包括字典管理、论坛管理、竞赛公告管理、获奖管理、老师管理、评审管理、评审分配管理、评审打分管理、赛事管理、赛事提交管理、赛事报名管理、用户管理、专家管理、管理员管理。用…

如何安装最新版Docker Compose?

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YAML 文件来配置应用服务,然后只需一个简单的命令便能创建和启动所有服务。在本篇博客中,我们将详细介绍如何在 Linux 系统上安装 Docker Compos…

可以向同事炫耀的10个Python技巧

Python 是一种用途极为广泛的编程语言,有大量的库和框架为其提供支持。然而,在庞大的 Python 生态系统中,还存在一些鲜为人知的编码技巧和库,它们可以显著增强您的开发体验并优化您的代码。我们将探讨一些鲜为人知的 Python 技巧&…

与Apollo共创生态:七周年大会深有体会!

前言 百度从2013年开始涉足自动驾驶领域。2017年3月1日,百度通过内部邮件宣布,将现有业务和资源整合,成立智能驾驶事业群组(简称IDG)。同年,在上海车展上,百度发布了“Apollo计划”&#xff0c…