变色龙群算法(Chameleon Swarm Algorithm,CSA),是2021年由Malik Shehadeh Braik等人提出的优化算法。模拟了变色龙在树木、沙漠和沼泽附近寻找食物时动态行为。该算法对变色龙寻找食物的行为步骤进行数学建模和实现,其中包括将眼睛旋转近360度进行猎物定位、用高速发射的粘性舌头捕获猎物。CSA涉及的主要公示如下:
详细代码如下,可以直接运行:
function [fmin0,gPosition,cg_curve]=CSA(searchAgents,iteMax,lb,ub,dim,fobj)
if size(ub,2)==1
ub=ones(1,dim)*ub;
lb=ones(1,dim)*lb;
end
%% Convergence curve
cg_curve=zeros(1,iteMax);
%% Initial population
chameleonPositions=initialization(searchAgents,dim,ub,lb);% Generation of initial solutions
%% Evaluate the fitness of the initial population
fit=zeros(searchAgents,1);
for i=1:searchAgents
fit(i,1)=fobj(chameleonPositions(i,:));
end
%% Initalize the parameters of CSA
fitness=fit; % Initial fitness of the random positions
[fmin0,index]=min(fit);
chameleonBestPosition = chameleonPositions; % Best position initialization
gPosition = chameleonPositions(index,:); % initial global position
v=0.1*chameleonBestPosition;% initial velocity
v0=0.0*v;
%% Start CSA
% Main parameters of CSA
rho=1.0;
p1&