1.NBFO算法的基本思想
在小生境细菌觅食优化算法(NBFO)中,主要分为三个阶段:第一,由小生境技术根据细菌之间距离找到每个细菌的小生境群体;第二,在每个小生境群体中利用细菌觅食算法进行适应值和位置的更新,其中菌群的群体最优值仅在该小生境群体中起作用;第三,对于更新后的群体,根据细菌之间的距离,利用适应值共享机制提高细菌的适应值,对于适应值最低的个体,利用罚函数处罚相应的细菌。最后保留每个细菌的群体最优个体,直到满足终止条件。
简言之,NBFO算法的基本思想是:对整个细菌群进行适当的划分,从而得到一些小生境子细菌群,然后将小生境子细菌群中的细菌个体以所在小生境子细菌群中的最优个体作为运动目标,进行进化。因此,在小生境技术中,小生境如何划分、小生境的半径如何设定以及采取何种机制是实现小生境技术的重要环节,直接影响着算法的优化性能。本章采取传统小生境划分方式和适应值共享机制,具体设置如下:
(1)小生境的划分
设有细菌Xi,i=1,2,…,N,Xi与另一个任意细菌Xj,j=1,2,…,N的距离定义为
这里取欧式距离。
对于由式(6.12)给定的小生境半径参数σ0,如果dij<σ0,则细菌Xj加入到细菌Xi的小生境XPi;否则,不加入。
(2)共享函数及适应值函数更新
细菌间的共享函数及适应值函数的更新详见式(6.11)和式(6.14)。
(3)小生境淘汰运算
在串行小生境技术中,引进罚函数来调整小生境子细菌群中个体的适应值,淘汰结构相似的个体。在每一代群体中,若‖Xi-Xj‖<L(L为预先设定值),就对其中适应值相对较低的个体施加一个较强的罚函数,使其适应值等于一个很小的数,即fmin(xi,xj)=Penalty。这样,距离在L之内的两个个体中,较差的个体经处理后其适应值变得更差,那么它在后面的进化过程中被淘汰的概率极大。从而,在距离L之内将只存在一个优良的个体,既维护了群体的多样性,又使得各个个体之间保持一定的距离,并在整个搜索空间中分散开来,提高了全局搜索能力。
2.NBFO算法的整体步骤
本节提出的基于串行技术的小生境细菌觅食优化算法的整体步骤如下:
Step1设置算法参数:根据预先知道的优化问题的维度k和优化问题最优解的个数m,计算出小生境半径,设定L。
Step2初始化细菌群体X={Xi},i=1,2,…,N,其中每个细菌个体Xi=(x1,x2,…,xm)。(www.xing528.com)
Step3按以下步骤确定小生境子细菌群:
(1)令i=1;
(2)按式(6.16)计算细菌Xi与其他细菌Xj(j=1,2,…,N)距离dij;
(3)根据dij<σ0,j=1,2,…,N,确定细菌Xi的小生境子细菌群XPi,设Pi为子细菌群XPi的元素个数。
Step4按照细菌觅食优化算法在每个小生境子细菌群内部进行趋向、聚集、复制和迁徙操作,更新适应值。
(4)初始化参数p,S,Nc,Ns,Nre,Ned,Ped,C(i)(i=1,2,…,S),θi,细菌初始最优位置为细菌本身;
(5)按照式(6.11)对XPi进行细菌位置更新,其中群体最优值为小生境子细菌群的最优值,不再是整个细菌群的最优值;
(6)检查条件,对于更新后的小生境子细菌群,按照式(6.14)对中的第j个细菌进行个体的适应值更新;
(7)利用更新适应值及处罚函数Penalty对该子群中低适应值的细菌进行处罚。即当xj,xk∈MPi,‖xj-xk‖<L,L<σ0时,比较两个细菌的距离,并对其中适应值较低的细菌进行处罚:
fmin(xj,xk)=Penalty, j,k=i,i+1,…,i+Pi-1
(8)当i+Pi<N时,置i←i+Pi,返回步骤(5);否则,进入下一步。
Step5 计算每个细菌的适应值,保留最优的适应值和细菌个体,检查是否达到优化条件,如果达到,则终止寻优;否则,进入下一个细菌的小生境子群体进行优化。
Step6 若没有找到最优值,则对每个细菌的小生境子群体保留的最优个体组成新的细菌群体空间,重复Step3。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。