欢迎关注
个人主页:我爱Matlab
点赞➕评论➕收藏 == 养成习惯(一键三连)希望大家多多支持~一起加油
语录:将来的我一定会感谢现在奋斗的自己!
本文提出一种混沌阿基米德优化算法(CAOA)。采用混沌理论来提高基本算法的性能。所提出的方法使用混沌映射来更新具有最小成本函数的特定优化问题的候选解。
阿基米德优化算法(AOA)是2020年Hashim等人提出的新型元启发式算法,该算法通过模仿完全或部分浸没在流体中的物体发生碰撞时所受浮力的关系,在迭代过程中不断调整个体密度、体积和加速度,从而使个体达到平衡状态,适应度值优的个体引导种群收敛到最优位置,达到寻优的目的。与传统的优化算法相比,元启发式算法具有控制参数少、易于实现、随机性大和适应性强等特点。然而,AOA同其他元启发式算法相似,存在全局搜索性能差、求解精度低和易陷入局部最优等缺陷。
clear;
close all;
clc;
nPop=100;
Maxit=20;
nVar=2; %% number of optimization parameters
C1=2;C2=6; C3=1;C4=2; u=.9;l=.1; %%% The paramters of the algorithm
%%%% Initialization
lb=-4.5*ones(1,nVar); %%% same search area for different parameters
ub=4.5*ones(1,nVar);
% lb=[0*ones(1,D-1),0.000001]; %% different search area for each parameter
% ub=[5*ones(1,D-1),0.5];
for i=1:nPop
X(i,:)=lb+rand(1,nVar).*(ub-lb);
Y(i)=cost(X(i,:));
den(i,:)=rand(1,nVar);
vol(i,:)=rand(1,nVar);
acc(i,:)=lb+rand(1,nVar).*(ub-lb);
end
[Scorebest, Score_index] = min(Y);
Xbest = X(Score_index,:);
den_best=den(Score_index,:);
vol_best=vol(Score_index,:);
acc_best=acc(Score_index,:);
acc_norm=acc;
chnum=1; %%% selection of chaotic map chnum=1,...,10
chstart=0.65; %%% starting point for chaotic map
chmap=ch_map(chnum,chstart,Maxit);
for it = 1:Maxit
TF(it)=exp(((it-Maxit)/(Maxit)))+(-0.2+0.4*chmap(it)); %%%% TF + chaotic_value
% TF(t)=exp(((t-Maxit)/(Maxit))); %%%% Basic algorithm
if TF(it)>1
TF(it)=1;
end
d=exp((Maxit-it)/Maxit)-(it/Maxit);
acc=acc_norm;
r=rand();
for i=1:nPop
den(i,:)=den(i,:)+r*(den_best-den(i,:));
vol(i,:)=vol(i,:)+r*(vol_best-vol(i,:));
if TF(it) < 0.45
mr=randi(nPop);
acc_temp(i,:)=(den(mr,:)+(vol(mr,:).*acc(mr,:)))./(rand*den(i,:).*vol(i,:));
else
acc_temp(i,:)=(den_best+(vol_best.*acc_best))./(rand*den(i,:).*vol(i,:));
end
end
[1]罗仕杭,何庆.融合Sin混沌和分段权值的阿基米德优化算法[J].计算机工程与应用,2022,58(14):63-72.