Step1初始化参数p,S,Nc,Ns,Nre,Ned,Ped,C(i)(i=1,2,…,S),θi。
Step2迁徙操作循环:l=l+1。
Step3复制操作循环:k=k+1。
Step4趋向操作循环:j=j+1:
(1)令细菌i如下趋向一步,i=1,2,…,S;
(2)计算适应值函数J(i,j,k,l);
令J(i,j,k,l)=J(i,j,k,l)+Jcc(θi(j,k,l),P(j,k,l))
(即增加细胞间斥引力来模拟聚集行为,其中Jcc由式(6.2)定义)
(3)令Jlast=J(i,j,k,l),存储为细菌i目前最好的适应值;
(4)旋转:生成一个随机向量Δ(i)∈ℜp,其每一个元素Δm(i),(m=1,2,…,p)都是分布在[-1,1]上的随机数;
(5)移动:令
细菌i沿旋转后随机产生的方向游动一步长大小C(i);(www.xing528.com)
(6)计算J(i,j+1,k,l),且令
J(i,j+1,k,l)=J(i,j,k,l)+Jcc(θi(j+1,k,l),P(j+1,k,l))
(7)游动:
①令m=0;②若m<Ns,令m=m+l,若J(i,j+1,k,l)<Jlast,令Jlast=J(i,j+1,k,l)且
返回第6)步,用此θi(j+1,k,l)计算新的J(i,j+1,k,l),否则,令m=Ns。
(8)返回第(2)步,处理下一个细菌i+1。
Step5若j<Nc,返回Step4进行趋向性操作。
Step6复制:对给定的k,l以及每个i=1,2,…,S,将细菌能量值Jhealth按从小到大的顺序排列。淘汰掉前Sr=S/2个能量值较小的细菌,选择后Sr个能量值较大的细菌进行复制,每个细菌分裂成两个完全相同的细菌。
Step7若k<Nre,返回Step3。
Step8迁徙:菌群经过若干代后,每个细菌以概率Ped被重新随机分布到解空间中。若l<Ned,则返回Step2,否则结束寻优。
具体流程图如图6.3所示。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。