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