700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【智能优化算法-人工蜂鸟算法】基于人工蜂鸟算法求解多目标优化问题附matlab代码MOAHA

【智能优化算法-人工蜂鸟算法】基于人工蜂鸟算法求解多目标优化问题附matlab代码MOAHA

时间:2021-06-23 13:03:20

相关推荐

【智能优化算法-人工蜂鸟算法】基于人工蜂鸟算法求解多目标优化问题附matlab代码MOAHA

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 . %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function dom=Dominates(x,y)

dom=all(x<=y) && any(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

clc;

clear;

MaxIt=300;

nPop=100;

Dim=30;

ArchiveSize=100;

FunIndex=1;% ZDT1

[ArchiveFit]=MOAHA(FunIndex,MaxIt,nPop,ArchiveSize);

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');

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代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。