赞
踩
黑翅风筝算法(Black Kite Algorithm,BKA)是中科院二区期刊“ARTIFICIAL INTELLIGENCE REVIEW”的文章“Black-winged kite algorithm: a nature-inspired meta-heuristic for solving benchmark functions and engineering problems”上的优化算法
黑翅风筝算法(Black Kite Algorithm, BKA)是一种受黑鸢迁徙和捕食行为启发的元启发式优化算法。BKA将Cauchy突变策略和Leader策略相结合,提高了算法的全局搜索能力和收敛速度。这种新颖的组合在探索全球解决方案和利用本地信息之间取得了很好的平衡。对照CEC-2022和CEC-2017标准测试功能集以及其他复杂功能,BKA分别在66.7、72.4和77.8%的情况下获得最佳性能。通过详细的收敛分析和统计比较,验证了算法的有效性。此外,它在解决五个实际工程设计问题中的应用表明了它在解决现实世界中约束挑战方面的实际潜力,并表明与现有优化技术相比,它具有显著的竞争优势。综上所述,BKA以其优异的性能证明了其在解决各种复杂优化问题方面的实用价值和优势。
(1)提出的黑翅风筝算法(BKA)在于其独特的生物启发式特征,不仅捕捉了自然界黑翼风筝的飞行和捕食行为,而且深度模拟了黑翼风筝对环境变化和目标位置的高度适应性。对这种生物机制的模仿为算法提供了鲁棒的动态搜索能力,使其能够有效地应对不断变化的优化环境。
(2)在黑翅风筝算法中,我们首先引入了Cauchy突变策略,这是一种概率分布策略,可以帮助算法跳出局部最优,增加在全局搜索空间中发现更好解的概率。该策略提高了算法发现全局最优解的性能,为高维复杂优化问题提供了新的解决方案。
(3)我们整合了一个领导力策略,模仿风筝社区领导者的领导力角色,确保算法能够有效地利用当前最优解并引导搜索方向。该方法不仅有助于提高算法利用当前搜索区域的效率,而且有效地平衡了探索和利用之间的动态关系,确保在追求最优解的过程中不会忽视潜在的竞争性新区域。
- %________________________________________________________ ________________%
- % Black-winged Kite Algorithm (BKA) source codes %
- % %
- % Developed in MATLAB R2022b %
- % %
- % Author and programmer: %
- % Black-winged Kite Algorithm: A nature-inspired meta-heuristic for
- % Solving benchmark functions and Engineering problems %
- % e-Mail: %
- % Artificial Intelligence Review % %
- % DOI: %
- % %
- %_________________________________________________________________________%
- %%
- %% Black-winged Kite Algorithm
- function [Best_Fitness_BKA,Best_Pos_BKA,Convergence_curve]=BKA(pop,T,lb,ub,dim,fobj)
- %% ----------------Initialize the locations of Blue Sheep------------------%
- p=0.9;r=rand;
- XPos=initialization(pop,dim,ub,lb);% Initial population
- for i =1:pop
- XFit(i)=fobj(XPos(i,:));
- end
- Convergence_curve=zeros(1,T);
- %% -------------------Start iteration------------------------------------%
- for t=1:T
- [~,sorted_indexes]=sort(XFit);
- XLeader_Pos=XPos(sorted_indexes(1),:);
- XLeader_Fit = XFit(sorted_indexes(1));
-
- %% -------------------Attacking behavior-------------------%
- for i=1:pop
-
- n=0.05*exp(-2*(t/T)^2);
- if p<r
- XPosNew(i,:)=XPos(i,:)+n.*(1+sin(r))*XPos(i,:);
- else
- XPosNew(i,:)= XPos(i,:).*(n*(2*rand(1,dim)-1)+1);
- end
- XPosNew(i,:) = max(XPosNew(i,:),lb);XPosNew(i,:) = min(XPosNew(i,:),ub);%%Boundary checking
- %% ------------ Select the optimal fitness value--------------%
-
- XFit_New(i)=fobj(XPosNew(i,:));
- if(XFit_New(i)<XFit(i))
- XPos(i,:) = XPosNew(i,:);
- XFit(i) = XFit_New(i);
- end
- %% -------------------Migration behavior-------------------%
-
- m=2*sin(r+pi/2);
- s = randi([1,30],1);
- r_XFitness=XFit(s);
- ori_value = rand(1,dim);cauchy_value = tan((ori_value-0.5)*pi);
- if XFit(i)< r_XFitness
- XPosNew(i,:)=XPos(i,:)+cauchy_value(:,dim).* (XPos(i,:)-XLeader_Pos);
- else
- XPosNew(i,:)=XPos(i,:)+cauchy_value(:,dim).* (XLeader_Pos-m.*XPos(i,:));
- end
- XPosNew(i,:) = max(XPosNew(i,:),lb);XPosNew(i,:) = min(XPosNew(i,:),ub); %%Boundary checking
- %% -------------- Select the optimal fitness value---------%
- XFit_New(i)=fobj(XPosNew(i,:));
- if(XFit_New(i)<XFit(i))
- XPos(i,:) = XPosNew(i,:);
- XFit(i) = XFit_New(i);
- end
- end
- %% -------Update the optimal Black-winged Kite----------%
- if(XFit<XLeader_Fit)
- Best_Fitness_BKA=XFit(i);
- Best_Pos_BKA=XPos(i,:);
- else
- Best_Fitness_BKA=XLeader_Fit;
- Best_Pos_BKA=XLeader_Pos;
- end
- Convergence_curve(t)=Best_Fitness_BKA;
- end
- end
获取代码请关注MATLAB科研小白的个人公众号(即文章下方二维码),并回复:智能优化算法本公众号致力于解决找代码难,写代码怵。各位有什么急需的代码,欢迎后台留言~不定时更新科研技巧类推文,可以一起探讨科研,写作,文献,代码等诸多学术问题,我们一起进步。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。