劉伉伉
(山東理工職業學院軟件工程學院,濟寧 272000)
人工蜂群算法(ABC)是仿照蜜蜂的采蜜過程提出的仿生智能算法,Karaboga 在2005年首次提出了這個概念,主要目的是解決函數優化的相關問題,蜂群算法充分體現了群體智能思想,利用單只蜜蜂具有的局部尋優能力,從而讓全局最優在整個群體里快速的凸顯出來,該算法不僅具有良好的全局收斂性能,而且具有算法簡單,適用范圍廣的特點。許多專家學者對此予以關注,并成為計算機領域的重點研究的智能算法。
目前,人工蜂群算法可應用在函數優化問題、作業調度、路徑及參數選擇等工程領域,均取得了良好的效果。然而,蜂群算法采用的群體進化搜索策略以及基于輪盤賭概率的適應度選擇方式,容易使算法產生局部最優解,而無法快速搜尋到全局最優解。而且算法在迭代過程中,鄰域搜索策略的不同也會影響算法的收斂性能,本文提出新的改進蜂群算法,通過改進領域搜索策略,提高智能算法的全局尋優能力。
群體智能算法(SIA)是一種智能算法,旨在模仿社會生物種群的行為。它是隨著現代化AI 行業的迅速成長而產生的一種較為新穎的計算智能模型。SIA 根據生物群體的個體間相互配合、共同協作的一系列行為從而構建行為規則模型,并根據模型中的行為規則演算出群體智能算法。人工蜂群算法也是屬于這類算法。蜂群算法是一種基于蜂群智能的優化算法。它模擬蜂群根據各自的分工來收集不同的蜂蜜,并交換蜂蜜來源的信息以找到最佳的蜂蜜來源。蜂群通過舞蹈進行消息傳遞,確定局部區域最佳蜜源的正確位置,通過此種搜索方式調整正反饋機制,快速找尋全局區域的最佳蜜源位置。
ABC 算法一般由引領蜂和跟隨蜂(觀察蜂和偵查蜂)組成:一是引領蜂負責在局部區域搜索最佳蜜源,如果搜尋過程中發現花蜜質量較好的蜜源,引領蜂通過舞蹈的方式將蜜源的相關信息傳遞給后面的跟隨蜂,并繼續搜尋蜜源,如若發現新的蜜源比之前的蜜源質量較好,則馬上將新的蜜源信息傳遞給跟隨蜂。二是跟隨蜂收到各個局部區域引領蜂傳遞來的蜜源信息,并不會直接選擇蜜源。而是采用概率選擇方式從中選擇蜜源,以防止陷入到局部區域無法搜尋到最佳蜜源。確定食物來源位置信息后,跟隨蜜蜂將繼續搜尋周圍的環境找尋優質蜜源。三是如若陷落到局部區域時,偵查蜂會隨機搜索新的蜂蜜源幫助蜂群跳出局部范圍,重新搜索。通過蜜蜂之間的相互協作找尋最佳蜜源。人工蜂群算法其實本質上就是針對存在可行解的問題通過一系列搜索算法快速找尋最優解。

圖1 蜂群智能模型
當采用ABC 算法解決函數求解問題時,尋找全局最優解的過程實際上就是蜜蜂之間相互協作采集蜂蜜的過程。引領蜜蜂根據公式(1)進行尋找優質蜜源。

式中,參數k,j是隨機的,k的取值在(1,2,3…SN),j的取值范圍為(1,2,3…,d);參數對鄰域搜索的范圍非常關鍵。當算法逐漸尋得最優解時。
作者簡介: 劉伉伉(1990-),男,漢族,助理講師,碩士研究生,研究方向為云計算、智能計算。此時鄰域搜索范圍也會慢慢縮小,以快速尋得最優解。引領蜂確定蜜源后,觀察蜂將會通過輪盤賭選擇食物來源。


當ABC 算法正在搜尋最佳蜜源(全局最優解)時,引導蜂需要負責找尋優質蜜源。跟隨來的觀察蜂對該區域根據公式(1)進行搜索。該方法加快了優化算法的收斂速度。偵察蜂可以在任何地方搜索高質量蜂蜜源,以幫助蜂群算法跳出局部最優。該算法通過蜂群之間的相互配合、相互協作快速的解決函數優化問題及其他應用領域難題。
在ABC 算法尋優期間,不同的進化時期對局部搜索與全局搜索能力的要求是不同的。本文通過自適應調整步長rij來動態調節局部領域搜索與全局搜索之間的平衡以快速找尋最優值。
首先,引領蜂在局部區域內搜索到優質蜜源時,通知跟隨蜂進行采蜜,跟隨蜂根據公式(5)進行局部區域的領域搜索。而步長rij對領域搜索非常關鍵,在算法初期,我們可以通過擴大步長擴大局部區域范圍的搜索,另外也可以防止算法陷入局部最優的可能性。而在算法后期,算法逐漸接近最優解時,此時應該需要縮小步長rij執行精細的局部鄰域搜尋,通過動態調整關鍵參數 可以提高算法的收斂速度,以便可以高效,快速地找到最佳解

公式(5)為鄰域搜索算法,公式(6)則是自適應調整步長rij算法,Max_Gen 為蜂群算法設置的最大迭代次數;Gen 表示算法目前執行的次數;λ設置為一個恒定參數。
本文將優化兩個經典的復雜數值函數,通過比較兩個不同蜂群算法優化數值函數的結果來測試改進的蜂群智能算法的性能。

Rosenbrock 函數(公式3.4)經常稱之為Rosenbroc香蕉函數,是一個可測試優化算法性能的非凸函數,在存在全局極小值0。表達式為:

本文測試兩個數值函數的維度設置為30維,算法的最大迭代次數MAX_Gen 為1,000次,鄰域搜索限定值算法的蜂群數量N 為80.表1則是兩個不同的算法通過執行30次優化后求得的平均尋優精度以方差。從表1可以看出,在函數優化過程中改進的ABC 算法在優化精度上要優于基本的人工蜂群算法。

表1 算法函數優化
本文主要介紹了人工蜂群算法,并針對蜂群算法在函數優化過程中存在收斂速度過慢、易陷入局部最優的問題,對蜂群算法的領域搜索策略進行改進,通過自適應調整步長加快蜂群算法的收斂速度,提高了快速尋優能力。并通過函數優化實驗證明了改進的人工蜂群智能算法的可行性及高效性。