(內(nèi)江師范學(xué)院 數(shù)學(xué)與信息科學(xué)學(xué)院,四川 內(nèi)江 641112)
粒子群優(yōu)化[1](PSO)是模擬鳥類捕食行為的仿生算法.該算法具有容易實(shí)現(xiàn)、收斂速度快等優(yōu)點(diǎn),在組合優(yōu)化、聚類分析、神經(jīng)網(wǎng)絡(luò)訓(xùn)練等方面應(yīng)用廣泛.但該算法易陷入局部最優(yōu),所以諸多學(xué)者利用余弦函數(shù)的對稱性對學(xué)習(xí)因子進(jìn)行改進(jìn)[2],或采用遞減指數(shù)和迭代閾值[3]、自適應(yīng)方法[4]、柯西分布[5]等對慣性權(quán)重進(jìn)行改進(jìn),均促進(jìn)了算法的發(fā)展.為加快算法的收斂速度和提高全局搜索性能,本文提出基于混沌和反向策略產(chǎn)生初始解,利用柯西密度函數(shù)和柯西分布函數(shù)對算法進(jìn)行改進(jìn),通過4個經(jīng)典函數(shù)進(jìn)行測試,并與文獻(xiàn)[2]、文獻(xiàn)[6]進(jìn)行對比,仿真結(jié)果表明:改進(jìn)算法的收斂速度更快,搜索結(jié)果更有效.
在D維搜索空間中,由m個粒子組成,第i個粒子表示空間向量xi=(xi1,xi2, …,xiD)(i=1,2, …,m),即第i個粒子在D維搜索空間中的位置是xi,其速度為vi=(vi1,vi2, …,viD).記第i個粒子搜索到最好的位置為Pi=(pi1,pi2, …,piD),整個群體搜索到最好的位置為Pg=(pg1,pg2, …,pgD).粒子的速度-位置方程描述為
(1)
(2)
其中,w是慣性權(quán)重,c1和c2為學(xué)習(xí)因子,c1是“自身認(rèn)知”,是對自身信息的利用;c2是“社會認(rèn)知”,是群體間信息共享;r1,r2為[0,1]中服從均勻分布的隨機(jī)數(shù).
利用混沌運(yùn)動的特點(diǎn)(初值的高度敏感性、遍歷性、隨機(jī)性)[7]進(jìn)行初始化,可以使種群多樣化,避免過于早熟.文章采取Logistic映射進(jìn)行混沌初始化,其表達(dá)式為
Xn+1=μ·Xn·(1-Xn),n=0,1,2,…,N,
其中,0 反向?qū)W習(xí)[8]指在搜索過程中,同時考慮當(dāng)前解和它的反向解,當(dāng)前解有一半的概率比它的反向解更遠(yuǎn)離最優(yōu)解,因此,采用基于當(dāng)前解與反向解的精英選擇策略來進(jìn)行初始化. 綜合以上改進(jìn),對改進(jìn)辦法進(jìn)行實(shí)驗(yàn):方法一,混沌與反向?qū)W習(xí)策略進(jìn)行初始化;方法二,采用式(3)進(jìn)行調(diào)整;方法三,采用式(4)對進(jìn)行調(diào)整;改進(jìn)算法,綜合方法一、二、三進(jìn)行調(diào)整. 對于上述方法,通過4個典型測試函數(shù)來測試: 采用MatlabR2010b,環(huán)境:CPU為Intel(R)Xeon(R) E5,2.6 Ghz,內(nèi)存為8GB,操作系統(tǒng)為Windows7SP1. 分別對方法一、方法二、方法三以及標(biāo)準(zhǔn)PSO進(jìn)行測試,各運(yùn)行1 000次后取平均值及標(biāo)準(zhǔn)差,規(guī)定:慣性權(quán)重為0.5,學(xué)習(xí)因子都為2,粒子數(shù)為30,空間維數(shù)為30,結(jié)果見表1、2.由表1可知,方法一對單峰函數(shù)的尋優(yōu)效果較好,對多峰函數(shù)表現(xiàn)一般;方法二對4個函數(shù)的尋優(yōu)效果都有一定的提高;方法三在Sphere、Griewank的尋優(yōu)中表現(xiàn)良好.由表2可知,三種方法對解的穩(wěn)定性均有改進(jìn),說明該算法有效. 表1 各方法的最優(yōu)平均值 表2 各方法下的最優(yōu)值的方差 參數(shù)設(shè)置為:文獻(xiàn)[6]中,c1,c2:1.5~2.5,w=1;文獻(xiàn)[2]中采用余弦公式進(jìn)行參數(shù)更新;本文的改進(jìn)算法采用之前的設(shè)置值.實(shí)驗(yàn)結(jié)論如下:(1)針對單峰函數(shù)Sphere,改進(jìn)算法每次都能找到最優(yōu)值,但求解Rosenbrock時的改進(jìn)算法弱于文獻(xiàn)[6],優(yōu)于文獻(xiàn)[2];(2)針對多峰函數(shù)Rastrigin和Griewank,改進(jìn)算法能夠找到最優(yōu)值(表3),優(yōu)于文獻(xiàn)[2]和文獻(xiàn)[6];最優(yōu)值的方差優(yōu)于文獻(xiàn)[2]和文獻(xiàn)[6](表4),這說明算法更加穩(wěn)定.綜上所述,改進(jìn)算法在收斂精度上有明顯提高,能夠避免陷入局部最優(yōu). 表3 不同粒子群優(yōu)化算法的搜索結(jié)果比較 表4 測試函數(shù)的最優(yōu)值的方差比較 針對算法易陷入局部最優(yōu)的缺點(diǎn),采用混沌和反向策略產(chǎn)生初始解,能使算法更好地覆蓋解空間,產(chǎn)生較好的初始解;利用柯西密度函數(shù)對慣性權(quán)重進(jìn)行調(diào)整,利用柯西分布函數(shù)對位置更新公式進(jìn)行調(diào)整,通過實(shí)驗(yàn)來驗(yàn)證三種調(diào)整方法的有效性.改進(jìn)算法在尋優(yōu)中表現(xiàn)更好,特別是在多峰函數(shù)中.2.2 基于柯西密度函數(shù)的慣性權(quán)重調(diào)整
2.3 基于柯西分布函數(shù)的粒子位置更新
3 實(shí)驗(yàn)結(jié)果與分析
3.1 測試函數(shù)與配置
3.2 改進(jìn)方法的有效性測試
3.3 改進(jìn)算法的比較實(shí)驗(yàn)
4 結(jié)語