王賀琦,王 然,劉詩琳,唐浩桁,馬云鵬
(天津商業大學信息工程學院,天津 300134)
384410733@qq.com;kad2001628@163.com;1595996480@qq.com;tanghaoheng@163.com;mayunpeng@tjcu.edu.cn
群體智能(Swarm Intelligence)是指具有簡單智能的個體通過相互協作和組織表現出群體智能行為的特性,具有天然的分布式和自組織特征。無論外界環境如何變化,蜜蜂總能找到蜜源和巢穴,對外界環境變化具有很好的適應性。蜜蜂屬于群居性昆蟲,其行為目標簡單明確,各司其職,可以高效快速地找到蜜源。當外界環境變化時,蜜蜂可以靈活地調整勞動分工,如減少或增加采蜜的工蜂。針對以上現象和行為,文獻[3]提出了ABC算法,并將其應用于函數的數值優化問題上,且取得良好的效果。類比自然界中的蜜蜂采蜜行為,ABC算法是將各蜜蜂的初始位置定義為搜索空間的初始點;把蜜蜂的進化和覓食行為模擬為種群個體更新機制;將蜜蜂對環境的適應性類比為解的適應度函數值;將蜜源的質量作為目標函數值。根據以上分析,ABC算法屬于一種啟發式迭代優化算法。
ABC算法具有控制參數少、全局優化能力強的優點,引起國內外研究學者的廣泛關注,并將其成功應用于各個領域。然而,ABC算法仍存在一些不足,如局部搜索能力差、收斂精度低、收斂速度慢等。針對上述不足,文獻[4]提出了分段式蜜源搜索半徑公式,提高了算法的收斂精度和收斂速度,并采用改進的ABC算法對徑向基神經網絡的初始參數進行優化。文獻[5]針對傳統ABC算法收斂速度慢的問題,引入自適應參數,加快了算法的后期收斂能力,實驗結果表明改進的算法收斂能力更強,收斂速度更快。文獻[6]在ABC算法的跟隨蜂階段,使種群依概率進行反向學習代替跟隨蜂搜索方式,雇傭蜂和偵察蜂階段用以保證種群的探索能力以及種群的多樣性。文獻[7]運用最大最小距離積法處理初始蜜源,將K均值聚類算法與ABC算法相結合,提高了ABC算法的收斂速度,具有較好的解適應度。ZHU等人改進ABC算法的搜索模式來提高局部搜索能力,提出改進的ABC算法。文獻[9]將交叉機制與全局最優解信息融入ABC算法,增強了ABC算法的開發能力和探索能力。曾志文等人提出一種雙種群架構ABC算法,將交叉變異操作和最優解鄰域搜索融入不同種群,提高了算法的尋優能力。
為進一步提高ABC算法的性能,本文提出一種改進的ABC算法(Modified Artificial Bee Colony,MABC)。首先,分別采用Tent混沌映射函數和反向學習機制初始化種群個體的位置,使初始解在搜索空間中的分布更加均勻,以增強種群的多樣性,有助于提高算法的全局搜索能力;然后,在雇傭蜂階段,將分組機制和慣性權值引入種群個體的更新機制中,以提高算法的收斂精度和平衡算法的探索能力與開發能力。
為驗證MABC算法的有效性,本文應用13 個基準數學函數對MABC算法的收斂精度和全局搜索能力等性能進行測試。與原始ABC算法對比,實驗結果表明MABC算法具有良好的收斂速度和收斂精度。
在標準ABC算法中,有三種角色:引領蜂、跟隨蜂、偵察蜂。引領蜂又稱為雇傭蜂,跟隨蜂和偵查蜂被稱為非雇傭蜂。ABC算法的搜索過程簡要描述如下:首先,所有蜜蜂都是偵查蜂,在整個解空間隨機搜索。當偵查蜂搜索到蜜源后,將蜜源質量信息帶回蜂巢與其他蜜蜂共享,對偵察蜂帶回的所有信息進行比較。當該蜜源的質量排名靠前時,該偵查蜂就轉變為引領蜂,蜜源和引領蜂一一對應,另外招募到一些跟隨蜂到引領蜂所在的蜜源附近搜索新的蜜源;當蜜源的質量排名居中時,該偵查蜂就轉變為跟隨蜂,然后根據一定的規則選擇引領蜂,到引領蜂對應的蜜源附近進行搜索;當該蜜源的質量排名靠后時,該偵查蜂就放棄已經搜索到的蜜源,再次成為偵查蜂,在整個區域進行新一輪的隨機搜索。
ABC算法在求解優化問題時,蜜源的位置代表優化問題的可行解,蜜源的質量代表優化問題的值,尋找蜜源的過程就是優化問題的過程,蜜源的最大質量即優化問題的最優解。在整個算法中,引領蜂和跟隨蜂是為了加快算法的收斂,偵察蜂主要負責跳出局部最優解。



在該算法中,控制參數的設置能有效平衡全局搜索與局部搜索。如果引領蜂在其蜜源鄰域搜索次數達到最大未更新次數時,仍沒有找到適應度值更高的新解,表明這個解為局部最優值,就放棄該蜜源;然后,根據式(1)再次隨機初始化該引領蜂的位置。


在原始ABC算法中,是[-1,1]之間的一個隨機數。解更新操作對原個體的影響較小,保留了很多特征到新解,極大影響了種群收斂的速度和精度。另一方面,系數是一個隨機數,不能動態地、自適應地改變搜索步長,造成了原始ABC算法隨機性大的缺陷。本文采用一種新雇傭蜂更新機制,其基本思想如下:每次迭代更新前,找出當前解中最優秀的解向量,讓較差解向最優解學習,讓雇傭蜂根據式(7)進行更新,以便較快地提高算法的收斂精度和收斂速度。隨著種群迭代的進行,在算法前期,較差解向最優解加速靠攏;在算法后期,較差解在其周圍鄰域內搜索。此外,引入慣性權值,如式(8)所示。慣性權值是非線性收斂因子調整策略,它是逐級遞增的,前期距離控制參數較大,保證較少的特性遺留到下一代,搜索范圍較大,因此有利于全局尋優;在迭代后期距離控制參數大,較多保留了上一代優秀解的特性,在優秀解附近進行精細搜索,有利于局部尋優,能夠有效平衡算法的全局搜索能力和局部搜索能力。三角函數權值系數也有助于提高算法的運行速度和全局搜索能力。


為驗證MABC算法的性能,本文選用13 個經典數學函數集測試MABC算法的收斂速度和收斂精度。表1給出13 個函數的詳細描述,包括函數表達式、解的取值范圍、最優點的位置及最優值等。在表1中,F1—F7為單峰函數,用于測試MABC算法的收斂精度和求解能力;F8—F13為多峰函數,用于驗證MABC算法的全局搜索能力。本文將MABC算法與原始ABC算法進行對比,兩種算法的相關設置參數如表2所示。為驗證算法的穩定性和對比公平性,每個算法獨立運行20 次,每次迭代1,000 次,分別測試每個函數10 維、30 維、50 維的函數值,并求20 次最優函數值的平均值和均方差,實驗結果記錄于表3。平均值和均方差越小,說明算法的收斂精度和穩定性越好。表3中加粗的字體表示最優性能參數。本文采用的實驗設備為:64 位MateBook X Pro 2019款筆記本;處理器型號為:Intel(R) Core(TM) i5-8265U CPU @1.60 GHz 1.80 GHz;運行內存為8.00 GB;仿真軟件為:MATLAB 2014b。由表3可知,相較于ABC算法,MABC算法在F1、F2、F3、F4、F7、F9、F10、F11、F12等9 個函數上取得更小的最優解的平均值和均方根誤差,說明MABC算法具有良好的收斂精度和穩定性。雖然ABC算法在F5、F6、F8及F13等4 個函數上表現出較好的收斂精度和穩定性,但兩種算法在收斂精度上差距不大。

表1 經典測試函數集Tab.1 Classic test function set

表2 初始參數設置Tab.2 Initial parameter setting

表3 測試結果Tab.3 Test results
為了更加直觀地對比MABC算法與ABC算法的收斂性,圖1—圖8分別給出部分函數在兩個算法中某個維度的仿真圖,其中MABC算法用虛線表示,ABC算法用實線表示。由8個仿真圖可知,無論是單峰函數還是多峰函數,MABC算法的收斂速度和收斂精度明顯優于原始ABC算法。綜上所述,MABC算法具有良好的收斂速度和全局搜索能力。

圖1 F1=10適應度值對比Fig.1 Comparison of fitness value of F1 with dim=10

圖2 F2=30適應度值對比Fig.2 Comparison of fitness value of F2 with dim=30

圖3 F5=50適應度值對比Fig.3 Comparison of fitness value of F5 with dim=50

圖4 F7=30適應度值對比Fig.4 Comparison of fitness value of F7 with dim=30

圖5 F8=30適應度值對比Fig.5 Comparison of fitness value of F8 with dim=30

圖6 F9=50適應度值對比Fig.6 Comparison of fitness value of F9 with dim=50

圖7 F10=30適應度值對比Fig.7 Comparison of fitness value of F10 with dim=30

圖8 F13=50適應度值對比Fig.8 Comparison of fitness value of F13 with dim=50
為進一步提升ABC算法的性能,分別對ABC算法的種群個體初始化方式和雇傭蜂階段的種群個體更新機制進行改進。應用Tent混沌映射函數和反向學習機制對種群個體的位置進行初始化,增強了初始個體在解空間的均勻分布性,提高了種群個體多樣性。在雇傭蜂階段,引入新型慣性權值和改進種群個體更新機制,有利于提高收斂速度和平衡算法的全局探索能力及局部開發能力。通過13 個基準測試函數的驗證,實驗結果顯示MABC算法具有良好的收斂速度和全局搜索能力。