1 内容介绍
本文提出了一种新的基于种群的优化方法,称为 Aquila Optimizer (AO),它是灵感来自天鹰座在捕捉猎物过程中的自然行为。因此,优化所提出的AO算法的程序用四种方法表示;按高选择搜索空间垂直俯冲翱翔,通过短滑翔攻击的轮廓飞行在发散的搜索空间内探索,通过低速飞行和慢速下降攻击在收敛搜索空间内利用,并通过步行和俯冲抓住猎物。
2 仿真代码
% ----------------------------------------------------------------------- %
function nd_pop=GetNonDominatedParticles(pop)
ND=~[pop.Dominated];
nd_pop=pop(ND);
end
%__________________________________________________________________ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ----------------------------------------------------------------------- %
function dom=Dominates(x,y)
if isstruct(x)
x=x.Cost;
end
if isstruct(y)
y=y.Cost;
end
dom=all(x<=y) && any(x<y);
end
% ----------------------------------------------------------------------- %
function [Archive_X_Chopped, Archive_F_Chopped, Archive_mem_ranks_updated, Archive_member_no]=HandleFullArchive(Archive_X, Archive_F, Archive_member_no, Archive_mem_ranks, ArchiveMaxSize)
for i=1:size(Archive_F,1)-ArchiveMaxSize
index=RouletteWheelSelection(Archive_mem_ranks);
Archive_X=[Archive_X(1:index-1,:) ; Archive_X(index+1:Archive_member_no,:)];
Archive_F=[Archive_F(1:index-1,:) ; Archive_F(index+1:Archive_member_no,:)];
Archive_mem_ranks=[Archive_mem_ranks(1:index-1) Archive_mem_ranks(index+1:Archive_member_no)];
Archive_member_no=Archive_member_no-1;
end
Archive_X_Chopped=Archive_X;
Archive_F_Chopped=Archive_F;
Archive_mem_ranks_updated=Archive_mem_ranks;
% ----------------------------------------------------------------------- %
clear;
close all;
clc;
% format long g
% Initial parameters of the MOAOS algorithm
for j=8
max_iter=100;
Pop=100;
ArchiveMaxSize=100;
nvar=30;
% obj_no=2;
method=3;
if method==3
Archive_F1=load(sprintf('P%d.txt',j));
end
obj_no=2;
mkdir (sprintf('P%d',j))
%-------------------------- MOAOS-----------------------------------------
for i=1% Numbver of independent runs
[Archive_F]=MAOS(max_iter,ArchiveMaxSize,Pop,nvar,method,j);
if numel(Archive_F')==2
continue
end
Archive_F=Archive_F';
if obj_no==2
plot(Archive_F1(:,1),Archive_F1(:,2),'Color','g','LineWidth',4);
hold on
plot(Archive_F(:,1),Archive_F(:,2),'ro','LineWidth',1,...
'MarkerEdgeColor','b',...
'MarkerFaceColor','r',...
'Marker','o',...
'MarkerSize',10);
legend('True PF','Obtained PF');
title(sprintf('MOAOS FOR MMF%d PROBLEM',j));
xlabel('obj_1');
ylabel('obj_2');
hold off
end
if obj_no==3
plot3(Archive_F1(:,1),Archive_F1(:,2),Archive_F1(:,3),'Color','g','LineWidth',1);
hold on
plot3(Archive_F(:,1),Archive_F(:,2),Archive_F(:,3),'ro','LineWidth',1,...
'MarkerEdgeColor','b',...
'MarkerFaceColor','r',...
'Marker','o',...
'MarkerSize',10);
legend('True PF','Obtained PF');
title(sprintf('MOAOS FOR MMF%d PROBLEM',j));
xlabel('obj_1');
ylabel('obj_2');
zlabel('obj_3');
hold off
end
savefig(sprintf('P%d/fig_%d.fig',j,i));
end
save(sprintf('P%d/result_P%d.mat',j,j));
end
3 运行结果
4 参考文献
Abualigah, L., Yousri, D., Elaziz, M.A., Ewees, A.A., A. Al-qaness, M.A., Gandomi,A.H., Aquila Optimizer: A novel meta-heuristic optimization Algorithm, Computers & Industrial Engineering
(2021)
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。