细菌觅食优化算法迁徙操作的代码
http://ask.csdn.net/questions/26982
BFO算法在迁徙部分完成:
对每个细菌随机生成一个概率值,若该值<Ped,则该细菌消亡重新生成一个新的。
目前见到的经典BFO代码的迁徙部分都是这么写的:
for m=1:s
if Ped>rand % % Generate random number
P(1,:,1,1,1)= 50*rand(s,1)';
P(2,:,1,1,1)= .2*rand(s,1)';
%P(3,:,1,1,1)= .2*rand(s,1)';
else
P(:,m,1,1,ell+1)=P(:,m,1,Nre+1,ell); % Bacteria that are not dispersed
end
end
end % Go to next elimination and disperstal
实在不理解,为什么细菌消亡后产生的新值要赋值给P(1,:,1,1,1)而不是P(:,m,1,1,ell+1)?这个新值不是应该用于下一次趋化开始么?
其中,P(维度,第i个细菌,第j-1次趋化,第k次复制,第l次迁徙)
感激不尽!