樊偉萍 李秦
(蘭州交通大學(xué)數(shù)理學(xué)院,甘肅 蘭州 730070)
粒子群優(yōu)化算法(PSO)是由Kennedy和Eberhart于1995年通過觀察鳥群尋找棲息地的行為而簡化出的群體智能優(yōu)化算法[1],具有設(shè)置參數(shù)少、易于實現(xiàn)、收斂速度快等優(yōu)點而備受學(xué)者的青睞,但是PSO算法易陷入局部最優(yōu)值.為了改善這一問題,學(xué)者們先后提出了各種應(yīng)對策略,張迅等[2]人根據(jù)高斯函數(shù)分布特征設(shè)置慣性權(quán)重變化策略,文獻[3]基于文獻[2]提出了慣性權(quán)重對數(shù)遞減的粒子群算法,并引入對數(shù)調(diào)整因子α ,有助于粒子跳出局部極值,提高了算法的全局收斂性.Clerc 提出了帶有收縮因子的PSO算法[4],整體上具有比標(biāo)準(zhǔn)PSO算法更加高效地收斂性能,但在算法后期的精度比標(biāo)準(zhǔn)PSO算法性能差.總結(jié)來說,針對粒子群算法的改進大體上分為參數(shù)設(shè)置的改進[5-9]和算法融合改進[10-13],這些策略一定程度上優(yōu)化了算法性能,提高了PSO 算法的尋優(yōu)效率,但時間和空間消耗比較高,且無法避免粒子易陷入局部最優(yōu),易早熟的問題.本文在Shi和Eberhart提出的粒子群優(yōu)化算法[2]慣性權(quán)重線性遞減的基礎(chǔ)上,添加了隨迭代次數(shù)線性遞增的調(diào)節(jié)因子p,使算法在局部搜索能力和全局搜索能力之間得到更好的平衡,同時針對粒子群算法搜索后期易陷入局部最優(yōu),影響算法優(yōu)化性能的問題,在每次迭代時,對種群中的粒子進行突變操作,從而增強粒子跳出局部最優(yōu)的能力,最后對測試函數(shù)進行尋優(yōu)操作來驗證改進后粒子群優(yōu)化算法(XWPSO)的有效性.
粒子群算法的主要思想是將需要尋優(yōu)的問題的解想象成一只鳥,稱為一個“粒子”,然后讓所有粒子在D 維的搜索空間進行搜索,粒子位置的好壞由定義的適應(yīng)度函數(shù)評價,并且給每個粒子賦予記憶功能,能夠記憶粒子搜索過程中尋到的最佳位置,同時,各個粒子之間也可以進行信息共享,通過粒子自身經(jīng)驗和同伴的經(jīng)驗來動態(tài)調(diào)整粒子位置.
粒子群算法中,粒子之間是相互合作,信息互通的,速度更新公式(1)由三部分組成,第一部分是粒子先前的速度,代表粒子的狀態(tài);第二部分是粒子的“自我認(rèn)知”部分,體現(xiàn)粒子的自我思考;第三部分是“社會”部分,體現(xiàn)粒子之間信息共享合作.
Shi 和Eberhart 提出了粒子群優(yōu)化算法[14]慣性權(quán)重線性遞減的策略,對粒子群算法進行了修改,引入了慣性權(quán)重w.速度公式更改如下:
一定程度上優(yōu)化了文獻[1]粒子的尋優(yōu)性能,但線性遞減的慣性權(quán)重并不能如實的反映粒子復(fù)雜的搜索過程,尋到的最優(yōu)解精度也不高,為了更進一步優(yōu)化算法性能,文獻[15]在文獻[2]的基礎(chǔ)上將慣性權(quán)重w 修改為
考慮了正弦函數(shù)的周期性,又添加了rand(0~1之間)隨機數(shù),來增加粒子搜索過程的隨機性,但時間損耗較大.
為了進一步提高算法的尋優(yōu)性能和收斂精度,將慣性權(quán)重w 調(diào)整為
(1)Rastrigin函數(shù):具有大量極值的多峰函數(shù),其全局最優(yōu)解和最優(yōu)位置分別為
(2)Griewank函數(shù):多峰函數(shù),且其局部極小值均勻分布,全局最優(yōu)解和最優(yōu)位置分別為
(3)Ackley函數(shù):復(fù)雜的多峰函數(shù),有無數(shù)個極小值點,其全局最優(yōu)解和最優(yōu)位置分別為
為了驗證本文提出的XWPSO算法的有效性,采用XWPSO、PSO[1]、LPSO[14]、NXPSO[15]四種優(yōu)化算法分別對Rastrigin、Griewank、Ackley三種經(jīng)典函數(shù)進行優(yōu)化,其中在PSO、LPSO、NXPSO優(yōu)化算法中,2=2=1 cc,而在XWPSO 優(yōu)化算法中05.2=2=1 cc,四種算法維度2=D,粒子數(shù)目40=N,搜索范圍[-5,5],慣性權(quán)重w 的變化范圍[0.4,0.9], 1r , 2r 在[0,1]之間服從均勻分布的隨機數(shù),在Matble2016a環(huán)境中運行20次,實驗結(jié)果如表1所示
表1 尋優(yōu)結(jié)果對比
由表1可以看出,在對Rastrigin函數(shù)優(yōu)化時,基本粒子群算法PSO最優(yōu)值8.0912e-04,平均值為0.036055456;LPSO算法最優(yōu)值1.9263e-05,平均值為0.038160856;NXPSO算法最優(yōu)值1.4231e-05,平均值為8.0043445e-04.而改變慣性權(quán)重的XWPSO算法最優(yōu)值6.6352e-07,平均值為2.52246296e-04,在Rastrigin函數(shù)極值的優(yōu)化方面明顯優(yōu)于其他三種算法,更貼近函數(shù)最優(yōu)解0,所以改進的粒子群優(yōu)化算法較其他三種方法更優(yōu).同時對多峰函數(shù)Griewank、Ackley 的優(yōu)化結(jié)果可以看到,從得到的最優(yōu)值結(jié)果的平均值上來看,XWPSO算法也是明顯優(yōu)于其他算法的,從而驗證了算法的有效性.
圖1 Rastrigin函數(shù)在優(yōu)化算法下的適應(yīng)度曲線
圖2 Griewank函數(shù)在優(yōu)化算法下的適應(yīng)度曲線
圖3 Ackley函數(shù)在優(yōu)化算法下的適應(yīng)度曲線
Rastrigin、Griewank、Ackley 函數(shù)在PSO、LPSO、NXPSO、XWPSO 優(yōu)化算法下的適應(yīng)度曲線圖如圖1~3所示,XWPSO算法的適應(yīng)度函數(shù)選用的是測試函數(shù)表達式本身,所以算法尋找到的適應(yīng)度值就是要尋找的測試函數(shù)極值,從圖中可看出,改進的粒子群算法較其他三種優(yōu)化算法更早地收斂于函數(shù)的最優(yōu)值,并且收斂精度也更高.在Rastrigin函數(shù)優(yōu)化時,PSO算法在第17次迭代時趨于測試函數(shù)最優(yōu)值,LPSO算法在第10次迭代時趨于測試函數(shù)最優(yōu)值,NXPSO算法在第4次迭代時趨于測試函數(shù)最優(yōu)值,XWPSO算法在第3次迭代時就趨于測試函數(shù)最優(yōu)值;在Griewank函數(shù)優(yōu)化時,PSO算法在第12次迭代時趨于測試函數(shù)最優(yōu)值,LPSO算法在第18次迭代時趨于測試函數(shù)最優(yōu)值,NXPSO算法在第11次迭代時趨于測試函數(shù)最優(yōu)值,XWPSO算法在第3次迭代時趨于測試函數(shù)最優(yōu)值;在Ackley函數(shù)優(yōu)化時,PSO算法在第8次迭代時趨于測試函數(shù)最優(yōu)值,LPSO算法在第4次迭代時趨于測試函數(shù)最優(yōu)值,NXPSO 算法在第16 次迭代時趨于測試函數(shù)最優(yōu)值,XWPSO 算法在第5次迭代時趨于測試函數(shù)最優(yōu)值.
從實驗結(jié)果可知,改進的粒子群優(yōu)化算法XWPSO較其他幾種優(yōu)化算法具有較強的收斂性和收斂精度,尤其在Rastrigin、Ackley函數(shù)的優(yōu)化效果更明顯,從而也驗證了XWPSO算法的有效性.
本文應(yīng)用的改進粒子群慣性權(quán)重的XWPSO在Shi和Eberhart提出的慣性權(quán)重線性遞減的基礎(chǔ)上添加了隨迭代次數(shù)線性遞增的調(diào)節(jié)因子p,使得改進之后的XWPSO在尋優(yōu)能力和收斂精度上都有所提高,同時將XWPSO 算法與經(jīng)典的PSO、LPSO、NXPSO 算法進行比較,該算法具有更快跳出局部極值,且收斂點更貼近函數(shù)最優(yōu)解,與傳統(tǒng)的PSO、LPSO、NXPSO算法相比較,XWPSO算法在測試函數(shù)維度2=n時尋優(yōu)能力和收斂精度更高.