🍁🥬🕒摘要🕒🥬🍁
本文提出一种混沌阿基米德优化算法(CAOA)。采用混沌理论来提高基本算法的性能。所提出的方法使用混沌映射来更新具有最小成本函数的特定优化问题的候选解。
阿基米德优化算法(AOA)是2020年Hashim等人提出的新型元启发式算法,该算法通过模仿完全或部分浸没在流体中的物体发生碰撞时所受浮力的关系,在迭代过程中不断调整个体密度、体积和加速度,从而使个体达到平衡状态,适应度值优的个体引导种群收敛到最优位置,达到寻优的目的。与传统的优化算法相比,元启发式算法具有控制参数少、易于实现、随机性大和适应性强等特点。然而,AOA同其他元启发式算法相似,存在全局搜索性能差、求解精度低和易陷入局部最优等缺陷。
✨🔎⚡运行结果⚡🔎✨
💂♨️👨🎓Matlab代码👨🎓♨️💂
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.