ABC

人工蜂群演演算法(Artificial bee colony algorithm)

人工蜂群演演算法是模仿蜜蜂行為提出的一種優化方法,是集群智能思想的一個具體應用,它的主要特點是不需要了解問題的特殊信息,只需要對問題進行優劣的比較,通過各人工蜂個體的局部尋優行為,最終在群體中使全局最優值突現出來,有著較快的收斂速度。為了解決多變數函數優化問題,Karaboga提出了人工蜂群演演算法ABC模型(artificial bee colony algorithm)。

蜜蜂采蜜機理


蜜蜂是一種群居昆蟲,雖然單個昆蟲的行為極其簡單,但是由單個簡單的個體所組成的群體卻表現出極其複雜的行為。真實的蜜蜂種群能夠在任何環境下,以極高的效率從食物源(花朵)中採集花蜜;同時,它們能適應環境的改變。

組成要素


蜂群產生群體智慧的最小搜索模型包含 基本的三個組成要素:食物源、被雇傭的蜜蜂(employed foragers)和未被雇傭的蜜蜂(unemployed foragers);兩種最為基本的行為模型:為食物源招募(recruit)蜜蜂和放棄(abandon)某個食物源。

食物源

食物源的價值由多方面的因素決定,如:它離蜂巢的遠近,包含花蜜的豐富程度和獲得花蜜的難易程度。使用單一的參數,食物源的“收益率”(profitability),來代表以上各個因素。

被僱用的蜜蜂

也稱引領蜂(Leader),其與所採集的食物源一一對應。引領蜂儲存有某一個食物源的相關信息(相對於蜂巢的距離、方向、食物源的豐富程度等)並且將這些信息以一定的概率與其他蜜蜂分享。

未被僱用的蜜蜂

其主要任務是尋找和開採食物源。有兩種未被僱用的蜜蜂:偵查蜂(Scouter)和跟隨蜂(Follower)。偵察蜂搜索蜂巢附近的新食物源;跟隨蜂等在蜂巢裡面並通過與引領蜂分享相關信息找到食物源。一般情況下,偵察蜂的平均數目是蜂群的5%-20%。
在群體智慧的形成過程中,蜜蜂間交換信息是最為重要的一環。舞蹈區是蜂巢中最為重要的信息交換地。蜜蜂的舞蹈叫做搖擺舞。食物源的信息在舞蹈區通過搖擺舞的形式與其他蜜蜂共享,引領蜂通過搖擺舞的持續時間等來表現食物源的收益率,故跟隨蜂可以觀察到大量的舞蹈並依據收益率來選擇到哪個食物源采蜜。收益率與食物源被選擇的可能性成正比。因而,蜜蜂被招募到某一個食物源的概率與食物源的收益率成正比。
初始時刻,蜜蜂以偵察蜂的身份搜索。其搜索可以由系統提供的先驗知識決定,也可以完全隨機。經過一輪偵查后,若蜜蜂找到食物源,蜜蜂利用它本身的存儲能力記錄位置信息並開始采蜜。此時,蜜蜂將成為“被僱用者”。蜜蜂在食物源采蜜后回到蜂巢卸下蜂蜜然後將有如下選擇:
(1)放棄食物源而成為非雇傭蜂。
(2)跳搖擺舞為所對應的食物源招募更多的蜜蜂,然後回到食物源采蜜。
(3)繼續在同一個食物源采蜜而不進行招募。
對於非雇傭蜂有如下選擇:
(1)轉變成為偵察蜂並搜索蜂巢附近的食物源。其搜索可以由先驗知識決定,也可以完全隨機。
(2)在觀察完搖擺舞后被僱用成為跟隨蜂,開始搜索對應食物源鄰域並采蜜。