关于灰狼优化算法中的适应度计算问题
请问这个计算适应度,是怎么计算的,原理是什么?(下文标粗行)
%Initialize the positions of search agents
Positions=initialization(SearchAgents_no,dim,ub,lb);%种群初始化
Convergence_curve=zeros(1,Max_iter);
t=0;% Loop counter
fh = waitbar(0,'Please wait...');
% Main loop
while t<Max_iter
fprintf('迭代次数%i\n',t);
waitbar(t/Max_iter,fh)
for i=1:size(Positions,1)
% 返回超出搜索空间边界的搜索代理
Flag4ub=Positions(i,:)>ub;
Flag4lb=Positions(i,:)<lb;%判断边界
Positions(i,:)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;
%计算每个搜索代理的目标函数
** fitness=crossvalind_wolf(train_label, train,3,Positions(i,2:end) ,Positions(i,1)); %计算适应度 **
% 更新领导者
if fitness<Leader_score % 把这个改成>来解决最大化问题
Leader_score=fitness; % 更新 alpha 全局最优值
Leader_pos=Positions(i,:);%全局最优位置
end
end
a=2-t*((2)/Max_iter); % a decreases linearly fron 2 to 0 in Eq. (2.3)
% a2 linearly dicreases from -1 to -2 to calculate t in Eq. (3.12)
a2=-1+t*((-1)/Max_iter);
% Update the Position of search agents