失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【多目标智能优化算法】人工蜂鸟多目标算法附Matlab代码

【多目标智能优化算法】人工蜂鸟多目标算法附Matlab代码

时间:2024-05-15 18:13:01

相关推荐

【多目标智能优化算法】人工蜂鸟多目标算法附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法 神经网络预测 雷达通信 无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机

⛄ 内容介绍

在这项工作中提出了一种新的仿生优化算法,称为人工蜂鸟算法(AHA)来解决优化问题。AHA算法模拟自然界中蜂鸟的特殊飞行技能和智能觅食策略。模拟了觅食策略中使用的三种飞行技能,包括轴向、对角线和全向飞行。此外,实施了引导觅食、领地觅食和迁徙觅食,并构建了访问表来模拟蜂鸟对食物来源的记忆功能。AHA 使用两组数值测试函数进行验证,并将结果与从各种算法获得的结果进行比较。比较表明,AHA 比其他元启发式算法更具竞争力,并且可以用更少的控制参数确定高质量的解决方案。此外,AHA 的性能在十个具有挑战性的工程设计案例研究中得到验证。结果表明,与文献中现有的优化技术相比,AHA 在计算负担和求解精度方面的优越性。​

⛄ 部分代码

%%%%%%%%%%%寻找支配解%%%%%%%%

function non_dom=quick_sort(pop)

npop=size(pop,1);

K=10;

pop(:,K+3)=0;

for i=1:npop

pop(i,K+3)=0;

for j=1:i-1

if pop(j,K+3)==0

if Dominates(pop(i,K+1:K+2)',pop(j,K+1:K+2)')

pop(j,K+3)=1;

elseif Dominates(pop(j,K+1:K+2)',pop(i,K+1:K+2)')

pop(i,K+3)=1;

break;

end

end

end

end

ind=find(pop(:,K+3)==0);

non_dom=pop(ind,1:K+2);

% [N,P]=size(pop);

% M=2;%目标函数值的个数

% V=10;%每个目标函数值的维数

% non_dom=[];

% individual=pop; %pop:种群(自变量+目标函数值),行数为种群数量

% while ~isempty(individual) %individual为空时停止循环

% temp1=[];

% temp2=[];

% flag=0;

% %Number of individuals that dominate this individual 支配i的解的个数

% %individual(i).n=0;

% %Individuals which this individual dominate被i支配的解

% %individual(i).p=[]

% for i=2:size(individual,1) %size(individual,1)为individual的行数

% dom_less=0;

% dom_equal=0;

% dom_more=0;

% for j=1:M %M=2,两个目标函数

%if(individual(1,V+j)<individual(i,V+j)) %V=6,每个目标函数均为六维 %%pareto支配判断

% dom_less=dom_less+1; %解1有可能支配解i

%elseif (individual(1,V+j)==individual(i,V+j))

% dom_equal=dom_equal+1; %互不支配

%else

% dom_more=dom_more+1; %解1有可能被解i支配

%end

% end

% if dom_less==0 && dom_equal~=M %该行为真时,表示解i支配解1

%flag=flag+1;%flag中存放解i支配解1的个数

%temp1=[temp1;individual(i,:)]; %temp1中存放支配解i

% elseif dom_more==0 && dom_equal~=M %该行为真时,表示解1支配解i

%temp2=[temp2;individual(1,:)]; %temp2中存放支配解1

% else%其余情况:两个解互不支配

%temp1=[temp1;individual(i,:)]; %temp1中也存放有可能支配的解i

% end %则称j优于i,则把此时的j放入individual(i)_p中

% end %循环结束时,表示解1依次与后面所有的解进行了支配判别

% if flag==0||isempty(temp1) %该行判断值为真时,表示解1不受当前任何解的支配

% %即解1为当前解集中的一个pareto最优解

% non_dom=[non_dom;individual(1,:)];

% end

% individual=temp1; %此时temp1中存放的就是通过上次比较后剩下的非支配解(非支配解即不受其他解支配)

end

⛄ 运行结果

⛄ 参考文献

[1]刘明辉. 改进的多目标人工蜂群算法和在特征选择中的应用[D]. 安徽大学,.

[2] 赵伟, 王丽, Mirjalili S. 人工蜂鸟算法:一种新型仿生优化器及其工程应用[J]. 应用力学与工程中的计算机方法, , 388:114194-。

❤️ 关注我领取海量matlab电子书和数学建模资料

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

如果觉得《【多目标智能优化算法】人工蜂鸟多目标算法附Matlab代码》对你有帮助,请点赞、收藏,并留下你的观点哦!

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