问题描述
- 细菌觅食优化算法迁徙操作的代码
-
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次迁徙)感激不尽!
时间: 2024-11-05 03:11:05