王謙, 張斌, 歐陽艾嘉, 許光俊
遵義師范學(xué)院 信息工程學(xué)院,貴州 遵義 563000
粒子群優(yōu)化算法常常被定義成一種通過個體已發(fā)現(xiàn)的最有利位置和種群最有優(yōu)勢位置來反復(fù)迭代從而引領(lǐng)該群體搜尋最有利位置的優(yōu)化算法[1].與其余各種算法相比而言,粒子群體所需要調(diào)節(jié)的參數(shù)較少、收斂速度快[2],已經(jīng)廣泛應(yīng)用于全局優(yōu)化、人工智能等諸多領(lǐng)域[3-11].粒子群優(yōu)化算法因為收斂速度快以至于很容易陷入局部最優(yōu)值.
文獻(xiàn)[12]提出的多種優(yōu)化策略混合粒子群優(yōu)化算法屬于準(zhǔn)PSO系列的概率優(yōu)化算法,雖然優(yōu)勢明顯,但對其實現(xiàn)方式的分析尚不完善.
鑒于粒子間信息共享機制粗略,針對粒子群優(yōu)化算法進行多極值函數(shù)優(yōu)化時極易出現(xiàn)的早熟和搜索效率不明顯的問題[13],提出了一種采用交叉策略的方法來使得粒子能夠快速有效地脫離陷阱,不但提高了收斂精度以及收斂速度,還能在全面和部分搜索區(qū)域之間維持良好的平衡狀態(tài),具有良好的普適性.
設(shè):xi(i=1,2,…,n)表示第i個粒子的當(dāng)前位置,pi(i=1,2,…,n)表示第i個粒子歷史認(rèn)知中的最優(yōu)位置,具體公式如下:
(1)
(2)
其中:c1與c2為學(xué)習(xí)因子,r1與r2表示隨機數(shù),ω表示慣性權(quán)重.慣性權(quán)重ω計算公式如下
ω=ωs-(ωs-ωe)×logTmTc
(3)
其中:ωs與ωe分別表示初始與末尾值,Tm與Tc分別表示最大迭代次數(shù)與當(dāng)前的迭代次數(shù).
使用概率的方法來選擇一定數(shù)量的粒子成對進行雜交,并產(chǎn)生相同數(shù)目的粒子進行更新替換,公式如下:
xnew=p·xold1+(1-p)·xold2
(4)
式(4)中p表示隨機數(shù),xold1,xold2表示種群上一次尋優(yōu)的位置.更新替換后公式:
(5)
在表1中,CSPSO算法的各個參數(shù)含義如下:D表示函數(shù)的維數(shù),N表示粒子數(shù)目,c1與c2表示學(xué)習(xí)因子,pc表示雜交概率,sp表示雜交區(qū)域的大小比例,f表示計算值,a與b表示實驗范圍,DTmax表示最大迭代次數(shù).
表1 CSPSO算法
將本文提出的CSPSO算法與參考文獻(xiàn)[14]中算法進行對比實驗.所有算法參數(shù)采用參考文獻(xiàn)[14]的設(shè)置:N=30,c1=c2=2,ω=[0.9,0.4],pc=0.9,每組測試函數(shù)運行20次,每次迭代1000輪,測試范圍均為[-50,50].首先給出6個測試函數(shù)及其函數(shù)圖形(圖1).
圖1 函數(shù)圖形
單峰函數(shù):
多峰函數(shù):
以上6個測試函數(shù)在[-50,50]上均有最優(yōu)值0.
本文以平均值、標(biāo)準(zhǔn)偏差為主要對比數(shù)據(jù),迭代1 000輪,種群維度D=30的仿真實驗值:
圖2中橫坐標(biāo)Generation表示迭代次數(shù),縱坐標(biāo)logf(x)表示適應(yīng)函數(shù)值的對數(shù)值以10為底,從圖2可以看出:CSPSO在6組測試函數(shù)上的結(jié)果都好于PSO和CS,全局搜索能力較強.
圖2 收斂曲線圖
由本文與參考文獻(xiàn)[14]中的仿真結(jié)果(表2)可知,本文的CSPSO算法優(yōu)于其他幾種算法.
表2 函數(shù)數(shù)據(jù)對比
本文提出了一種基于交叉策略的混合優(yōu)化算法,將粒子兩兩進行交叉變異進而得到相同數(shù)目的子代粒子來更新替代親代粒子,在避免陷入局部最優(yōu)值的同時提升了算法的精度.