複製鏈接
請複製以下鏈接發送給好友

人工蜂羣算法

鎖定
人工蜂羣算法(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)在觀察完搖擺舞後被僱用成為跟隨蜂,開始搜索對應食物源鄰域並採蜜。