✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
蚁狮算法( ALO) 通过对随机解的探索,逐渐寻找近似最优解。与粒子群等优化算法不同的是,在 ALO 算法中有两类种群个体,即蚂蚁和蚁狮。ALO 算法的寻优过程模拟蚁狮捕食的六个基本步骤: 蚂蚁的随机移动、蚁狮建立陷阱、蚂蚁落入陷阱、蚂蚁滑向蚁狮、蚁狮捕捉蚂蚁和重建陷阱。ALO 算法的基本步骤和数学模型如下:
⛄ 部分代码
%_________________________________________________________________________%
% Multi-Objective Ant Lion Optimizer (MALO) source codes demo %
% version 1.0 %
% ________%
function ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no)
global my_min;
global my_max;
%if all(my_min>min(Archive_F))
if size(Archive_F,1) == 1 && size(Archive_F,2) == 2
my_min = Archive_F;
my_max = Archive_F;
else
my_min=min(Archive_F);
%end
%if all(my_max<max(Archive_F))
my_max=max(Archive_F);
%end
end
r=(my_max-my_min)/(20);
ranks=zeros(1,size(Archive_F,1));
for i=1:size(Archive_F,1)
ranks(i)=0;
for j=1:size(Archive_F,1)
flag=0; % a flag to see if the point is in the neoghbourhood in all dimensions.
for k=1:obj_no
if (abs(Archive_F(j,k)-Archive_F(i,k))<r(k))
%if ((sum(Archive_F(j,k).^obj_no-Archive_F(i,k).^obj_no))^(1/obj_no)<r(k))
%ranks(i)=ranks(i)+sqrt(sum((Archive_F(i,:)-Archive_F(j,:)).^2));
flag=flag+1;
end
end
if flag==obj_no
ranks(i)=ranks(i)+1;
end
end
end
end
⛄ 运行结果
⛄ 参考文献
[1]杨容嫣. 面向配电物联网的边缘计算资源优化调度研究[D]. 华北电力大学.