人工蜂群算法

人工蜂群算法

人工蜂群算法(Artificial Bee Colony Algorithm, 簡稱ABC算法)是一個由蜂群行為啟發的算法,在2005年由Karaboga小組為最佳化代數問題而提出。

基本介紹

  • 中文名:人工蜂群算法
  • 外文名:Artificial Bee Colony Algorithm
  • 主要特點:不需要了解問題的特殊信息
  • 組成要素:食物源、被僱傭的蜜蜂
方法,機理,形成過程,

方法

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

機理

蜜蜂是一種群居昆蟲,雖然單個昆蟲的行為極其簡單,但是由單個簡單的個體所組成的群體卻表現出極其複雜的行為。真實的蜜蜂種群能夠在任何環境下,以極高的效率從食物源(花朵)中採集花蜜;同時,它們能適應環境的改變。
蜂群產生群體智慧的最小搜尋模型包含基本的三個組成要素:食物源、被僱傭的蜜蜂(employed foragers)和未被僱傭的蜜蜂(unemployed foragers);兩種最為基本的行為模型:為食物源招募(recruit)蜜蜂和放棄(abandon)某個食物源。
(1)食物源:食物源的價值由多方面的因素決定,如:它離蜂巢的遠近,包含花蜜的豐富程度和獲得花蜜的難易程度。使用單一的參數,食物源的“收益率”(profitability),來代表以上各個因素。
(2)被雇用的蜜蜂:也稱引領蜂(Leader),其與所採集的食物源一一對應。引領蜂儲存有某一個食物源的相關信息(相對於蜂巢的距離、方向、食物源的豐富程度等)並且將這些信息以一定的機率與其他蜜蜂分享。
(3)未被雇用的蜜蜂:其主要任務是尋找和開採食物源。有兩種未被雇用的蜜蜂:偵查蜂(Scouter)和跟隨蜂(Follower)。偵察蜂搜尋蜂巢附近的新食物源;跟隨蜂等在蜂巢裡面並通過與引領蜂分享相關信息找到食物源。一般情況下,偵察蜂的平均數目是蜂群的5%-20%。

形成過程

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

相關詞條

熱門詞條

聯絡我們