1 内容介绍
在这项工作中提出了一种新的仿生优化算法,称为人工蜂鸟算法(AHA)来解决优化问题。 AHA算法模拟自然界中蜂鸟的特殊飞行技能和智能觅食策略。模拟了觅食策略中使用的三种飞行技能,包括轴向、对角线和全向飞行。此外,实施了引导觅食、领地觅食和迁徙觅食,并构建了访问表来模拟蜂鸟对食物来源的记忆功能。 AHA 使用两组数值测试函数进行验证,并将结果与从各种算法获得的结果进行比较。比较表明,AHA 比其他元启发式算法更具竞争力,并且可以用更少的控制参数确定高质量的解决方案。此外,AHA 的性能在十个具有挑战性的工程设计案例研究中得到验证。结果表明,与文献中现有的优化技术相比,AHA 在计算负担和求解精度方面的优越性。
2 仿真代码
% Multi-Objective artificial hummingbird algorithm (MOAHA)% % Source codes demo version 1.0 % %-------------------------------------------------------------------% % I acknowledge that this version of MOAHA has been written using % a portion of the following code: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % MATLAB Code for% % % % Multi-Objective Particle Swarm Optimization (MOPSO) % % Version 1.0 - Feb. % % % % According to:% % Carlos A. Coello Coello et al., % % "Handling Multiple Objectives with Particle Swarm Optimization," % % IEEE Transactions on Evolutionary Computation, Vol. 8, No. 3, % % pp. 256-279, June . % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-------------------------------------------------------------------%
dom=all(x<=y) && any(x<y);function dom=Dominates(x,y)
end
%-------------------------------------------------------------------%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [pop, F]=NonDominatedSorting(pop)
nPop=numel(pop);
for i=1:nPop
pop(i).DominationSet=[];
pop(i).DominatedCount=0;
end
F{1}=[];
for i=1:nPop
for j=i+1:nPop
p=pop(i);
q=pop(j);
if Dominates(p.Cost,q.Cost)
p.DominationSet=[p.DominationSet j];
q.DominatedCount=q.DominatedCount+1;
end
if Dominates(q.Cost,p.Cost)
q.DominationSet=[q.DominationSet i];
p.DominatedCount=p.DominatedCount+1;
end
pop(i)=p;
pop(j)=q;
end
if pop(i).DominatedCount==0
F{1}=[F{1} i];
pop(i).Rank=1;
end
end
k=1;
while true
Q=[];
for i=F{k}
p=pop(i);
for j=p.DominationSet
q=pop(j);
q.DominatedCount=q.DominatedCount-1;
if q.DominatedCount==0
Q=[Q j];
q.Rank=k+1;
end
pop(j)=q;
end
end
if isempty(Q)
break;
end
F{k+1}=Q;
k=k+1;
end
end
% Multi-Objective artificial hummingbird algorithm (MOAHA) % % Source codes demo version 1.0 % ------------------------------------------------------------% % FunIndex = 1: ZDT1 % FunIndex = 2: ZDT2 % FunIndex = 3: ZDT3 % FunIndex = 4: ZDT4 % FunIndex = 5: ZDT6%--------------------------------------------------------------------------%
clear; MaxIt=300; nPop=100; Dim=30; ArchiveSize=100;clc;
FunIndex=1;% ZDT1
figure; plot(ArchiveFit(1,:),ArchiveFit(2,:),'r.'); if FunIndex==5 title(['ZDT',num2str(FunIndex+1)]); else title(['ZDT',num2str(FunIndex)]); end xlabel('f1'); ylabel('f2'); box on legend('PF');[ArchiveFit]=MOAHA(FunIndex,MaxIt,nPop,ArchiveSize);
3 运行结果
4 参考文献
[1]刘明辉. 改进的多目标人工蜂群算法及其在特征选择中的应用[D]. 安徽大学, .
[2] Zhao W , Wang L , Mirjalili S . Artificial hummingbird algorithm: A new bio-inspired optimizer with its engineering applications[J]. Computer Methods in Applied Mechanics and Engineering, , 388:114194-.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。