一、算法介绍
北极海鹦优化(Arctic puffin optimization,APO)算法是2024年提出一种智能优化算法。该算法模拟海鹦在空中飞行和水下觅食两个阶段的行为,旨在实现勘探与开发之间更好的平衡。该算法包括几个关键操作,包括空中飞行阶段的空中搜索和俯冲捕食,以及水下觅食阶段的采集觅食、强化搜索和捕食者规避。通过这些步骤,该算法旨在有目的地探索搜索空间,在探索和利用之间取得更好的平衡,从而避免陷入局部最优。APO包括空中飞行(探索)和水下觅食(开发)阶段。在探索阶段,引入Levy飞行和速度因子机制,增强算法跳出局部最优值的能力,提高收敛速度。在开发阶段,采用协同效应和自适应变化因子等策略,确保算法能够有效利用当前最佳解,指导搜索方向。此外,通过行为转换因子实现勘探和开发阶段之间的动态过渡,有效平衡了全球搜索和局部开发。
参考文献:
[1]Wen-chuan Wang, Wei-can Tian, Dong-mei Xu, Hong-fei Zang. Arctic Puffin Optimization: A Bio-inspired metaheuristic Algorithm for Solving Engineering Design Optimization. Advances in Engineering Software, 2024,195, 103694. Redirecting
二、23个函数简介
参考文献:
[1] Yao X, Liu Y, Lin G M. Evolutionary programming made faster[J]. IEEE transactions on evolutionary computation, 1999, 3(2):82-102.
三、部分代码
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]=(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('')
saveas(gca,[Function_name '.jpg']);
display(['The best solution is ', num2str(Best_pos)]);
display(['The best fitness value is ', num2str(Best_fit)]);