2024最新算法:鹦鹉优化算法(Parrot optimizer,PO)求解23个基准函数(提供MATLAB代码)

一、鹦鹉优化算法

鹦鹉优化算法(Parrot optimizer,PO)由Junbo Lian等人于2024年提出的一种高效的元启发式算法,该算法从驯养的鹦鹉中观察到的觅食、停留、交流和对陌生人行为的恐惧中汲取灵感。这些行为被封装在四个不同的公式中,以促进寻找最佳解决方案。与遵循单独探索和开发阶段的传统元启发式算法相比,PO 群体中的每个个体在每次迭代期间都会随机表现出这四种行为中的一种。这种方法更恰当地表示了在驯化鹦鹉中观察到的行为随机性,并显着增强了种群多样性。通过偏离传统的勘探-开采两阶段结构,PO有效地降低了被困在局部最优值中的风险,同时保持了解决方案的质量。PO的随机结构使其与传统算法区分开来,使其特别适合避免局部最优,并适用于现实世界的问题解决,特别是在医学领域。

参考文献:

1\]Lian, Junbo, et al. "Parrot Optimizer: Algorithm and Applications to Medical Problems." Computers in Biology and Medicine, Elsevier BV, Feb. 2024, p. 108064, doi:10.1016/j.compbiomed.2024.108064. ### 二、23个函数介绍 ![](https://file.jishuzhan.net/article/1764089893417390081/3ea3af6a4cb623b78dd28fe776bae638.webp) 参考文献: \[1\] Yao X, Liu Y, Lin G M. Evolutionary programming made faster\[J\]. IEEE transactions on evolutionary computation, 1999, 3(2):82-102. ### 三、PO求解23个函数 #### 3.1部分代码 ``` close all ; clear clc Npop=30;                 Function_name='F1';     % Name of the test function that can be from F1 to F23 (  Tmax=300;               [lb,ub,dim,fobj]=Get_Functions_details(Function_name); [Best_fit,Best_pos,Convergence_curve]=PO(Npop,Tmax,lb,ub,dim,fobj); figure('Position',[100 100 660 290]) %Draw search space subplot(1,2,1); func_plot(Function_name); title('Parameter space') xlabel('x_1'); ylabel('x_2'); zlabel([Function_name,'( x_1 , x_2 )']) %Draw objective space subplot(1,2,2); semilogy(Convergence_curve,'Color','r','linewidth',3) title('Search space') xlabel('Iteration'); ylabel('Best score obtained so far'); axis tight grid on box on legend('PO') saveas(gca,[Function_name '.jpg']); display(['The best solution is ', num2str(Best_pos)]); display(['The best fitness value is ', num2str(Best_fit)]); ``` #### 3.2部分结果 ![](https://file.jishuzhan.net/article/1764089893417390081/e64bc1055489677bbb2866be2ac5a7cb.webp) ![](https://file.jishuzhan.net/article/1764089893417390081/238f2956223841d06df286912d19a0ae.webp) ![](https://file.jishuzhan.net/article/1764089893417390081/c2823995abf94c4ae55a8564d4510cbb.webp) ![](https://file.jishuzhan.net/article/1764089893417390081/83c254c2524584de8407ef1725dd3830.webp) ![](https://file.jishuzhan.net/article/1764089893417390081/324e82240c542e7449458ebc974eb2c1.webp) ![](https://file.jishuzhan.net/article/1764089893417390081/af15eeaf129cd0026a571b528de3670e.webp) ![](https://file.jishuzhan.net/article/1764089893417390081/5e88160ed9db787d06d4660bb62beb37.webp) ![](https://file.jishuzhan.net/article/1764089893417390081/c188bd05635ee6e5ba294d61c9d75a9e.webp) ### 四、完整MATLAB代码

相关推荐
枫景Maple3 分钟前
LeetCode 2297. 跳跃游戏 VIII(中等)
算法·leetcode
鑫鑫向栄4 分钟前
[蓝桥杯]修改数组
数据结构·c++·算法·蓝桥杯·动态规划
鑫鑫向栄4 分钟前
[蓝桥杯]带分数
数据结构·c++·算法·职场和发展·蓝桥杯
多多*15 分钟前
微服务网关SpringCloudGateway+SaToken鉴权
linux·开发语言·redis·python·sql·log4j·bootstrap
梓仁沐白15 分钟前
【Kotlin】协程
开发语言·python·kotlin
Cyanto35 分钟前
Java并发编程面试题
java·开发语言·面试
海的诗篇_42 分钟前
前端开发面试题总结-JavaScript篇(一)
开发语言·前端·javascript·学习·面试
曹勖之1 小时前
UE 5 和simulink联合仿真,如果先在UE5这一端结束Play,过一段时间以后**Unreal Engine 5** 中会出现显存不足错误
matlab·ue5·机器人
小wanga1 小时前
【递归、搜索与回溯】专题三 穷举vs暴搜vs回溯vs剪枝
c++·算法·机器学习·剪枝
じ☆ve 清风°1 小时前
理解JavaScript中map和parseInt的陷阱:一个常见的面试题解析
开发语言·javascript·ecmascript