羣體智能優化算法之細菌覓食優化算法(Bacterial Foraging Optimization Algorithm,BFOA)

在這裏插入圖片描述

獲取更多資訊,趕快關注上面的公衆號吧!

第十四章 細菌覓食優化算法

14.1 介紹

Passino等人[1]於2002年通過模擬人體內大腸桿菌的覓食行爲,提出了一種新型智能優化算法:細菌覓食優化算法(Bacterial Foraging Optimization Algorithm,BFOA)。細菌覓食優化算法通過細菌羣體之間的競爭與協作實現優化,是一種基於細菌羣體的搜索技術。在羣智能算法中,GA、ACO、PSO、AFSA都是基於高等生物作爲啓發對象,而BFOA算法則是模擬微生物的行爲而形成的一種較新的優化方法。

14.2 BFOA的基本原理與流程

BFOA算法是一種全局隨機搜索的算法,其具有簡單、收斂速度快,並且在優化過程中無需優化對象的梯度信息的特點。BFOA模擬細菌羣體的過程包括趨向性(Chemotaxis)複製(Reproduction)遷徙(Elimination dispersal).三個步驟。

14.2.1 趨向性操作

細菌向有利於自身環境的區域移動稱爲趨向運動,其中,一次趨向性操作包括翻轉運動和遊動運動。細菌向任意方向移動單位步長稱爲旋轉運動;細菌沿着上一步的運動放向移動單位步長稱爲遊動運動。通常,細菌在環境差的區域(如:有毒區域)會較頻繁地旋轉,在環境好的區域(如:食物豐富的區域)會較多地遊動。大腸桿菌的整個生命週期就是在遊動和旋轉這兩種基本運動之間進行變換,遊動和旋轉的目的是尋找食物並避開有毒物質。

設細菌種羣大小爲S,細菌所在的位置標示問題的一個候選解,細菌i的信息用D維向量標示爲θi=[θ1i,θ2i,,θDi]{\theta ^i} = \left[ {\theta _1^i,\theta _2^i, \cdots ,\theta _D^i} \right],i=1,2,…,S,θi(j,k,l)表示細菌i在第j次趨向性操作、第k次複製操作和第l次遷徙操作後的位置。細菌i通過式(1)更新其每一步趨向性操作後的位置。
θi(j+1,k,l)=θi(j,k,l)+C(i)Φ(j)(1) {\theta ^i}(j + 1,k,l) = {\theta ^i}(j,k,l) + C(i)\Phi (j)\tag 1

其中C(i)>0表示向前遊動的步長,Φ(j)表示旋轉後隨機選擇的單位方向向量。如果在θi(j+1,k,l)處的適應度優於θi(j+1,k,l)處,則保持Φ不變繼續在該方向遊動,直至找到適應度最佳的位置或達到設定的趨向性次數;否則產生新的Φ,進行下一次旋轉運動。
設Ns是趨向性操作中在一個方向上前進的最大步數(用m進行索引),初始時該值爲0,BFOA趨向性操作的流程圖如圖1所示。
在這裏插入圖片描述

圖1 趨向性操作流程圖

目前的討論主要是針對不考慮細菌間相互吸引的情況,實際上每個細菌個體除按照自己的方式搜索食物外,還收到種羣中其他個體發出的吸引力信號,即個體會遊向種羣中心。

第ith個細菌的細菌間吸引力用Jcci(θ,θi(j,k,l)),i=1,2,,SJ_{cc}^i\left( {\theta ,{\theta ^i}(j,k,l)} \right),i = 1,2, \ldots ,S表示,dattract=0.1表示細菌釋放的吸引量多少(深度),wattract=0.2用於度量吸引信號的寬度(量化化學物質的擴散率)。

同時也會收到附近個體發出的排斥力信號,以保持個體與個體之間的安全距離,因爲細菌消耗附近的營養物質,在物理上不可能在同一位置有兩個細菌,對此,令hrepellant=dattract表示排斥力的高度(排斥影響程度),wrepellant=10度量了排斥力的寬度。
令Jcc(θ,P(j,k,l))表示同時考慮了細菌間吸引力和排斥力的綜合影響,其計算公式如(2)。

Jcc(θ,P(j,k,l))=i=1SJcεi(θ,θi(j,k,l))=i=1s[datact exp(wattact m=1p(θmθmi)2)]+i=1s[hrepenatint exp(wrepelinat m=1p(θmθmi)2)](2) \begin{aligned} J_{c c}(\theta, P(j, k, l))=& \sum_{i=1}^{S} J_{c \varepsilon}^{i}\left(\theta, \theta^{i}(j, k, l)\right) \\=& \sum_{i=1}^{s}\left[-d_{\text {atact }} \exp \left(-w_{\text {attact }} \sum_{m=1}^{p}\left(\theta_{m}-\theta_{m}^{i}\right)^{2}\right)\right] \\ &+\sum_{i=1}^{s}\left[h_{\text {repenatint }} \exp \left(-w_{\text {repelinat }} \sum_{m=1}^{p}\left(\theta_{m}-\theta_{m}^{i}\right)^{2}\right)\right] \end{aligned}\tag 2

其中P(j,k,l)表示在第j次趨向性操作、第k次複製操作和第l次遷徙操作後,種羣S中每個細菌的位置,θ=[θ1,…,θD]T是優化域上的一個點,θim是第i個細菌位置θi的第m個元素。
P(j,k,l)={θi(j,k,l)i=1,2,,S}(3) P(j,k,l) = \left\{ {{\theta ^i}(j,k,l)|i = 1,2, \ldots ,S} \right\}\tag 3

因此考慮上述兩個因素對細菌行爲的影響,執行一次趨向性操作後細菌i的新適應度函數值爲:

J(i,j+1,k,l)=J(i,j,k,l)+Jcc(θi(j+1,k,l),P(j+1,k,l))(4) J(i,j + 1,k,l) = J(i,j,k,l) + {J_{cc}}\left( {{\theta ^i}(j + 1,k,l),P(j + 1,k,l)} \right)\tag 4

這樣這些細胞會試圖尋找營養物質,避免有毒物質,同時試圖向其他細胞移動,但又不會靠得太近。

14.2.2 複製操作

生物進化過程的規律是優勝劣汰。經過一段時間的食物搜索過程後,部分尋找食物能力弱的細菌會被自然淘汰掉,爲了維持種羣規模,剩餘的細菌會進行繁殖。在細菌覓食優化算法中將這種現象稱爲複製行爲(Reproduction)。

在BFOA中,經過複製操作後算法的種羣大小不變。設淘汰掉的細菌個數爲Sr=S/2,首先按照細菌位置的優劣排序,然後把排在後面的Sr個細菌淘汰掉,剩餘的Sr個細菌進行自我複製,各自生成一個與自己完全相同的新個體,即生成的新個體與原個體有相同的位置,或者說具有相同的覓食能力。初始時設i=0,複製操作流程圖如圖2所示。

在這裏插入圖片描述

圖2 複製操作流程圖

14.2.3 遷徙操作

細菌個體生活的局部區域可能會突然發生變化(如:溫度的突然升高)或者逐漸變化(如:食物的消耗),這樣可能會導致生活在這個局部區域的細菌種羣集體死亡,或者集體遷徙到一個新的局部區域。在細菌覓食優化算法中將這種現象稱爲遷徙行爲(Elimination-dispersal)。

遷徙操作以一定概率發生,給定概率ped,如果種羣中的某個細菌個體滿足遷徙發生的概率,則這個細菌個體滅亡,並隨機地在解空間的任意位置生成一個新個體,這個新個體與滅亡的個體可能具有不同的位置,即不同的覓食能力。遷徙操作隨機生成的這個新個體可能更靠近全局最優解,這樣更有利於趨向性操作跳出局部最優解和尋找全局最優解。
初始時設i=0,rand()是[0,1]區間上均勻分佈的隨機數,遷徙操作流程如圖3所示。

在這裏插入圖片描述

圖3 遷徙操作流程圖

14.3 BOFA算法

在這裏插入圖片描述在這裏插入圖片描述

參考文獻

  1. Passino, K.M., Biomimicry of bacterial foraging for distributed optimization and control. IEEE Control Systems Magazine, 2002. 22(3): p. 52-67.
發佈了42 篇原創文章 · 獲贊 56 · 訪問量 5824
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章