朱德剛 洪 建 張 潔
(安徽醫(yī)科大學(xué)第一附屬醫(yī)院 合肥 230022)
粒子群優(yōu)化(Particle Swarm Optimization,PSO)算法[1~2]是由 Kennedy和 Eberhart對動物的捕食行為觀察而得出。該算法流程簡單、具備一定的生物背景等優(yōu)點,一經(jīng)提出就得到無線傳感器[3]、函數(shù)優(yōu)化[4]、神經(jīng)網(wǎng)絡(luò)[5~6]等眾多領(lǐng)域的廣泛應(yīng)用。
PSO算法相比較其他的智能優(yōu)化算法具有很多優(yōu)點,但隨著眾多學(xué)者的不斷研究,發(fā)現(xiàn)傳統(tǒng)的粒子群優(yōu)化算法在收斂速度和陷入局部最優(yōu)方面存在缺陷。大量學(xué)者針對粒子群算法這個缺點,進(jìn)行了大量的算法改進(jìn),不斷地提高算法的收斂速度和精度。Liang等通過改變傳統(tǒng)PSO算法的拓?fù)浣Y(jié)構(gòu),采用動態(tài)的鄰域拓?fù)浣Y(jié)構(gòu),提出了綜合學(xué)習(xí)粒子群優(yōu)化算法[7];林國漢等根據(jù)種群的多樣性,動態(tài)分配種群中粒子任務(wù),將種群進(jìn)化分為多個狀態(tài),采用不同的模型來平衡算法的全局和局部搜索能力,提出了自適應(yīng)任務(wù)分配的粒子群優(yōu)化算法[8]。Zhan等通過對種群的進(jìn)化的過程進(jìn)行研究,將其劃分為四個進(jìn)化狀態(tài),算法的相關(guān)參數(shù)可以自適應(yīng)的根據(jù)當(dāng)前算法狀態(tài)進(jìn)行調(diào)整,提出了自適應(yīng)子空間高斯學(xué)習(xí)的粒子群優(yōu)化算法[9]。文獻(xiàn)[10]提出了協(xié)同粒子群優(yōu)化算法,算法將PSO算法劃分成多個子群,每個子群對解向量各個部分進(jìn)行優(yōu)化,引入?yún)f(xié)同進(jìn)化思想,各個子群協(xié)同進(jìn)化。朱德剛等通過對粒子當(dāng)前的歷史最優(yōu)位置增加高斯擾動項,提出一種基于高斯擾動的粒子群優(yōu)化算法[11]。孫輝等通過構(gòu)造一種新的子群信息共享模式,并對粒子進(jìn)行子空間學(xué)習(xí),提出一種多種群子空間學(xué)習(xí)的粒子群優(yōu)化算法[12]。
如何采用有效的策略解決標(biāo)準(zhǔn)粒子群優(yōu)化算法的缺陷,成為了眾多學(xué)者研究的重要方向之一。本文提出以一種基于反向?qū)W習(xí)和高斯擾動的粒子群優(yōu)化算法(OGPSO)。算法在傳統(tǒng)的PSO“自我認(rèn)知”和“社會學(xué)習(xí)”基礎(chǔ)上,隨機(jī)選擇種群中任意粒子的反向位置,該反向位置引導(dǎo)當(dāng)前粒子進(jìn)行運動,在進(jìn)化過程中,對種群最優(yōu)粒子進(jìn)行高斯擾動,增加算法找到最優(yōu)解的概率。在經(jīng)典測試函數(shù)上,本文算法相比較其他知名算法具有更好的收斂速度和精度。
PSO算法可看做一個種群大小為N的粒子群在問題維度為D的范圍內(nèi)進(jìn)行搜索,第i(i=1,2,…,N)個粒子在第t次迭代時位置和速度分別為粒子i在第t+1次迭代時第d(d=1,2,…,D)維子空間的速度和位置根據(jù)下式調(diào)整。
式中:w為慣性權(quán)重;c1和c2為加速因子;r1、r2是在(0,1)之間的隨機(jī)數(shù);分別為粒子i在第t次迭代時歷史最優(yōu)位置和種群最優(yōu)位置。
反向?qū)W習(xí)策略(Opposition-based Learning,OBL)[13]主要指種群在進(jìn)化過程中,每個粒子每次找到一個當(dāng)前最優(yōu)位置時均產(chǎn)生一個對應(yīng)的反向位置,如果反向位置的適應(yīng)值較優(yōu),將其作為當(dāng)前粒子的最優(yōu)位置。
定義1普通反向?qū)W習(xí)(Generalized Opposi?tion-based Learning,GOBL)。設(shè)當(dāng)前粒子的最優(yōu)位置xi(t)在其反向位置第 j維上可定義為
定義2改進(jìn)的反向?qū)W習(xí)(Improved Opposi?tion-based Learning,IOBL)。設(shè) Xi(t)=(xi1,xi2,…,xiD)為種群中第i個粒子在第t代時的位置,則對應(yīng)的反向粒子位置 X?i(t)=(x?i1,x?i2,…,x?iD)可定義為
其中 xij∈[aj,bj],k 、k1和 k2屬于(0,1)之間隨機(jī)數(shù),[aj,bj]為xij第 j維的區(qū)間,具體表示如下:
如果反向解 xij?[aj,bj],則按式(6)更新:
在標(biāo)準(zhǔn)PSO算法中,粒子的運動方向主要由粒子的歷史最優(yōu)位置 pij和全局最優(yōu)位置 pgd來決定。OGPSO算法為了增加種群多樣性,粒子的運動方向由 pij、x?kj、Ggd和 pgd共同決定,隨機(jī)選擇種群中的任一粒子的反向粒子作為當(dāng)前粒子的引導(dǎo)粒子,擴(kuò)大了算法尋優(yōu)范圍,幫助算法快速找到全局最優(yōu)位置。具體的進(jìn)化模式如下所示。
其中 m=rand(1,2,…,i,…N),N為種群粒子數(shù)目,w為慣性權(quán)重,c1、c2和c3為加速因子,r1、r2、r3、r4和 r5均在(0,1)區(qū)間,和為粒子i在第t次迭代時的速度和歷史最優(yōu)位置,是第t次迭代時隨機(jī)選擇的第m個粒子的反向粒子位置,是第t次迭代時整個種群的最優(yōu)位置,表示第t次迭代時種群最優(yōu)粒子的高斯擾動粒子。μ表示均值,σ2表示方差。
算法的具體步驟如圖1所示。
本 文 通 過 比 較 FIPS[14]、HPSO-TVAC[15]、DMS-PSO[16]、CLPSO[7]和 APSO[9]五種經(jīng)典算法性能,選擇了八種較經(jīng)典的測試函數(shù)。測試函數(shù)的函數(shù)形式、搜索范圍和理論最優(yōu)值如表1所示。
圖1 算法流程圖
種群粒子數(shù)目N=10,評估次數(shù)T=200000,慣性權(quán)重 w=0.8?e(-0.5?t/iterNum)為慣性權(quán)重,t表示當(dāng)前的迭代次數(shù),iterNum表示總的迭代次數(shù),均值 μ=0 ,方 差 σ2=|,表示方差學(xué)習(xí)因子c1=1.5,c2=0.5,c3=2.0。
4.3.1 低維仿真實驗結(jié)果
表2中的Mean和Std.Dev表示最優(yōu)適應(yīng)值的均值和標(biāo)準(zhǔn)差。選取四個單峰函數(shù) f1、f2、f3、f4和四個多峰函數(shù) f5、f6、f7、f8,以獨立運行30次的平均值作為算法最終的解。
由表2可知,OGPSO算法相比較其他5種知名算法,不僅在單峰函數(shù)上優(yōu)勢明顯,而且在多峰函數(shù)上依然保持絕對優(yōu)勢。特別在單峰函數(shù) f1、f2和多峰函數(shù) f5、f6和 f8,達(dá)到了最優(yōu)值0。
表1 8種測試函數(shù)
為了更好地表現(xiàn)OGPSO在算法進(jìn)化過程中的收斂情況,本文將OGPSO和其他五種算法在8個30維測試函數(shù)上進(jìn)化過程中適應(yīng)值收斂情況進(jìn)行比較。觀察圖2~圖9可知,本文算法中的反向粒子和高斯擾動粒子能夠加快收斂速度,提高算法精度。通過圖2~圖5可知,OGPSO算法在處理單峰函數(shù)時,收斂速度和精度優(yōu)勢明顯,特別是 f1、f2函數(shù),進(jìn)化到6~8萬次就已經(jīng)尋找到全局最優(yōu)位置。觀察圖6~圖9可知,OGPSO算法能夠幫助多峰函數(shù)逃離其局部最優(yōu),加快算法的收斂速度,特別是在 f5、f6、f8函數(shù)表現(xiàn)很好,算法的收斂速度非???,且能夠快速找到全局最優(yōu)位置。
表2 六種算法在30維問題上的比較
圖2 f1函數(shù)進(jìn)化過程曲線圖
圖5 f4函數(shù)進(jìn)化過程曲線圖
圖3 f2函數(shù)進(jìn)化過程曲線圖
圖4 f3函數(shù)進(jìn)化過程曲線圖
圖6 f5函數(shù)進(jìn)化過程曲線圖
圖7 f6函數(shù)進(jìn)化過程曲線圖
圖8 f7函數(shù)進(jìn)化過程曲線圖
圖9 f8函數(shù)進(jìn)化過程曲線圖
4.3.2 高維仿真實驗結(jié)果
為了驗證MSPSO算法的優(yōu)越性,選擇PSO算法和CLPSO算法進(jìn)行對比測試。粒子個數(shù)為20,評估次數(shù)為D*5000次,D為函數(shù)維數(shù)。算法的測試結(jié)果如表3所示。表中結(jié)果均為30次獨立運行的平均值。
表3 改進(jìn)算法的測試結(jié)果
由表3可知,函數(shù)維數(shù)為100維時,OGPSO算法除了在Rosenbrock函數(shù)的測試結(jié)果上稍差于CLPSO算法,在其它六種函數(shù)上均優(yōu)勢明顯。
為了研究標(biāo)準(zhǔn)PSO算法的特點,針對其缺點,本文算法提高了標(biāo)準(zhǔn)PSO算法收斂速度和精度,避免算法過早陷入局部最優(yōu)。通過增加反向粒子和高斯擾動項,增加種群多樣性,提高尋優(yōu)的概率,幫助算法逃離局部最優(yōu)位置。實驗表明,通過對低維和高維的經(jīng)典函數(shù)進(jìn)行比較,OGPSO算法相比較其他幾種算法收斂速度更快、精度更高。函數(shù)進(jìn)化過程曲線圖進(jìn)一步說明了本文算法的收斂速度具有很大的優(yōu)勢,收斂精度更高。