一、斑翠鳥優化算法
斑翠鳥優化算法(Pied Kingfisher Optimizer?,PKO),是由Abdelazim Hussien于2024年提出的一種基于群體的新型元啟發式算法,它從自然界中觀察到的斑翠鳥獨特的狩獵行為和共生關系中汲取靈感。PKO 算法圍繞三個不同的階段構建:棲息/懸停獵物(探索/多樣化)、潛水尋找獵物(開發/集約化)和培養共生關系。這些行為方面被轉化為數學模型,能夠有效地解決不同搜索空間中的各種優化挑戰。
斑翠鳥是一種美麗的鳥類,屬于翠鳥科。它們主要分布在東南亞地區,包括馬來西亞、泰國、印度尼西亞等國家。斑翠鳥的身體呈藍色,頭部有黑色的斑點,翅膀和尾巴也呈藍色。它們的嘴長而尖,適合捕食小型水生動物。斑翠鳥是一種喜歡棲息在水邊的鳥類,常常出現在河流、湖泊和沼澤等水域附近。它們以魚類為主要食物,通過潛水捕食來獲取食物。斑翠鳥在捕食時會從棲息地上方的樹枝上俯沖下去,迅速抓住獵物后返回樹枝上進食。
參考文獻:
[1]Pied Kingfisher Optimizer: A new bio-inspired algorithm for solving numerical optimization and industrial engineering problems
二、23個函數介紹
參考文獻:
[1] Yao X, Liu Y, Lin G M. Evolutionary programming made faster[J]. IEEE transactions on evolutionary computation, 1999, 3(2):82-102.
三、PKO求解23個函數
3.1部分代碼
close all ; clear clc Npop=30;? ? ? ? ? ? ? ?? Function_name='F8';? ? ?% Name of the test function that can be from F1 to F23 (? Tmax=500;? ? ? ? ? ? ?? [lb,ub,dim,fobj]=Get_Functions_details(Function_name); [Best_fit,Best_pos,Convergence_curve]=PKO(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('PKO') saveas(gca,[Function_name '.jpg']);display(['The best solution is ', num2str(Best_pos)]); display(['The best fitness value is ', num2str(Best_fit)]);