娃酷網(wǎng) |[切換城市] [登錄][注冊]

種群優(yōu)化算法人工蜂群(ABC)

所在分類:生活服務 > 其它行業(yè)2023-6-13 14:33:28 瀏覽:8次

1. 概述

  群居昆蟲是高度進化的生物,可以執(zhí)行許多單體昆蟲無法完成的復雜任務。
溝通、筑造復雜的巢穴、環(huán)境控制、保護、和分工只是蜜蜂已進化到在社會性群居地茁壯成長的少數(shù)行為。
蜂群屬于群體生物,在尋找最佳解決方案方面表現(xiàn)出非凡的能力。
在自然界中,它們在蜂巢附近尋找花簇來采集花蜜和花粉。
有時搜索半徑可以增加到幾公里。
返回的蜜蜂則是通過即興舞蹈報告它們的發(fā)現(xiàn)。

乍一看,這似乎是不可能的,但它們能夠通過有節(jié)奏的運動相互傳遞有關地理位置的信息。
取決于它們同胞間的舞蹈強度,蜂群得到有關指定地點的花朵數(shù)量和估算花蜜量的結(jié)論。
潛在的食物越豐富,舞蹈動作就越激烈。
這種不尋常的現(xiàn)象是在 20 世紀中葉由昆蟲研究員卡爾·馮·弗里施(Karl von Frisch)發(fā)現(xiàn)的。

多年來,蜜蜂覓食方法僅在生物學家之間研究。
然而,在開發(fā)新的優(yōu)化算法時,應用群體行為的興趣正在增長。
在 2005 年,Dervis Karaboga 教授對研究結(jié)果產(chǎn)生了興趣。
他發(fā)表了一篇科學論文,是第一個描述群體智能模型的人,主要受到蜂群舞蹈的啟發(fā)。
該模型被稱為人工蜂群。

2. 算法說明

人工蜂群有許多不同的實現(xiàn),區(qū)別在于蜂巢中管理蜂群的原則、以及區(qū)域探索規(guī)則上有所不同。
在本文中,我將討論我對經(jīng)典算法版本的解釋。

該算法的思路是基于蜂群在尋找盡可能多的獲取花蜜的地方時的行為。
首先,所有的蜜蜂都朝隨機的方向飛出蜂巢,充當偵察員,試圖尋找有花蜜的區(qū)域。
之后,蜜蜂返回蜂巢,并以特殊的方式告訴其它個體在哪里找到了花蜜、以及發(fā)現(xiàn)了多少花蜜。

工蜂被發(fā)配到發(fā)現(xiàn)的區(qū)域。
在這個地區(qū)發(fā)現(xiàn)的花蜜越多,向那個方向飛的蜜蜂就越多。
偵察兵再次飛去尋找其它區(qū)域,但均在已發(fā)現(xiàn)區(qū)域的附近。
因此,所有的蜜蜂被分為兩種:采集花蜜的工蜂,和探索新區(qū)域的偵察蜂。
花蜜采集區(qū)域具有的量值,與其花蜜量相對應。
沿穿過區(qū)域中心的線,較低等級的區(qū)域由相對于較高等級的區(qū)域進行置換。

由圖示,工蜂按區(qū)域分布可以在圖例 1 中可視化。

圖例 1. 取決于區(qū)域排名,前往該區(qū)域的蜜蜂數(shù)量

區(qū)域 1 的等級較高,它包含的花蜜最多,因此更多的蜜蜂傾向于飛往那里。
通過蜜蜂的數(shù)量,我們可以直觀地判定區(qū)域 4 的等級(值)最低。
蜜蜂以特殊舞蹈的形式報告有關每個區(qū)域價值的信息。
每個蜂巢都有自己的舞姿,其中對該地區(qū)花蜜的方向和數(shù)量進行編程。

假設全局位置的極值是花蜜最多的區(qū)域,并且只有一個這樣的區(qū)域。
其它地方也有花蜜,盡管數(shù)量較少。
蜜蜂生活在多維空間中,其中每個坐標代表函數(shù)的一個參數(shù),且其需要優(yōu)化。
如果我們正在尋找全局最大值,則發(fā)現(xiàn)的花蜜量就是此刻目標函數(shù)的值。
如果我們正在尋找全局最小值,那么將目標函數(shù)乘以 -1 就足夠了。

由于花蜜采集區(qū)域具有確定的價值,因此只有等級最高的區(qū)域才有權(quán)移到(中心移位)花蜜濃度最高的地點。
較低等級的區(qū)域則移至最高濃度的中心,并檢查與其它較高等級區(qū)域的交叉點。
以這樣的方式,不允許蜜蜂集中在一些狹窄的小區(qū)域內(nèi),并且由工蜂提供的搜索空間服務應盡可能地高效,從而防止食物來源的枯竭。
在優(yōu)化方面,這消除或最大限度地減少了陷入局部極值的情況。
在區(qū)域分散,并沿著等級鏈相互移動到其最優(yōu)位置后,蜜蜂偵察兵將深入偵察它們的鄰域。

許多養(yǎng)蜂人建議將偵察蜂遣派到搜索空間的隨機區(qū)域,但我的經(jīng)驗表明,這種“偵察”的實際價值接近于零,并且只對一、兩個維度有用。
換言之,如果我們談論的是多維空間,那么自由度就會呈幾何級數(shù)增加,并且很難偶然發(fā)現(xiàn)更有價值的花蜜來源。
蜂巢的資源只會被浪費。
將偵察兵派往已知搜索區(qū)域的鄰域更有用,這樣坐標就不會分散,而是專門集中在可能的花蜜來源區(qū)域。

如果這些區(qū)域彼此相交,則必須偏轉(zhuǎn)中心,令這些區(qū)域僅接觸邊界。
如圖例 2 所示。

ABCcrossArea

圖例 2. 等級較低的區(qū)域應偏轉(zhuǎn)

區(qū)域的排位并非嚴格設定的,而是動態(tài)形成的。
偵察蜂的發(fā)現(xiàn)會被分配到它們飛過區(qū)域的附近地區(qū)。
如果發(fā)現(xiàn)更有價值的食物來源,該區(qū)域的中心將轉(zhuǎn)移到那里。
它甚至可能成為新的最佳花蜜采集中心。
其余區(qū)域現(xiàn)在將相對于它偏轉(zhuǎn)。
換言之,它們沿排位鏈并相對于它偏移。

傳遞信息的方法,稱為蜂之舞,是整個蜂巢戰(zhàn)略的基本要素。
蜂巢的可用資源理應合理地分配到采集區(qū)域,那么遣派的蜜蜂數(shù)量應與區(qū)域的價值成正比。
這意味著相同數(shù)量的蜜蜂將被遣派到同等價值的區(qū)域。

我們繼續(xù)討論算法本身。
下面列出了執(zhí)行步驟:

所有蜜蜂都作為偵察員沿著搜索空間隨機飛行。

測量來自每只蜜蜂采集的花蜜量。

分揀蜜蜂。

根據(jù)從蜜蜂獲得的花蜜量信息分配區(qū)域。

將工蜂遣派到該區(qū)域。
該區(qū)域的花蜜越多,遣派的蜜蜂就越多。

在隨機選擇的區(qū)域附近派遣偵察蜂。

測量來自每只蜜蜂那里采集到的花蜜量。

按花蜜量對區(qū)域進行排名。

重復上述步驟 直到滿足停止準則。

為了便于直觀感知,我們制作了算法的框圖,如圖例 3。

ABCsceme

圖例 3. 算法框圖

我們更詳細地講述蜂群算法代碼。

一只蜜蜂是算法的基本邏輯單元。
它可以通過結(jié)構(gòu)來講述。
您可能還記得,蜜蜂的位置是由坐標、與采集的花蜜區(qū)域的隸屬關系、以及花蜜的數(shù)量來設置的。
那么,蜂巢的蜜蜂可由一個數(shù)組表示。
每個都可以據(jù)其索引來訪問。

“種群優(yōu)化算法人工蜂群(ABC)”該信息由會員自行發(fā)布。采用請謹慎,不貪小便宜,以防上當!
© 2007 - 2025 版權(quán)所有 娃酷網(wǎng) 粵ICP備19125541號-1