李夢霞
(長江大學(xué)信息與數(shù)學(xué)學(xué)院,湖北 荊州 434023)
關(guān) 雪
(江漢機械研究所,湖北 荊州 434000)
呂一兵,陳 忠
(長江大學(xué)信息與數(shù)學(xué)學(xué)院,湖北 荊州 434023)
一種新的自適應(yīng)混沌粒子群算法
李夢霞
(長江大學(xué)信息與數(shù)學(xué)學(xué)院,湖北 荊州 434023)
關(guān) 雪
(江漢機械研究所,湖北 荊州 434000)
呂一兵,陳 忠
(長江大學(xué)信息與數(shù)學(xué)學(xué)院,湖北 荊州 434023)
提出了一種新的自適應(yīng)混沌粒子群算法。在標(biāo)準(zhǔn)粒子群算法中引入An混沌映射,以特殊的方式,利用An混沌映射來初始化粒子的位置和速度,并且每隔一定的代數(shù)就用An混沌擾動部分粒子的位置和速度。數(shù)值仿真的結(jié)果表明,該算法的收斂性和全局搜索能力得到提高,能有效避免早熟收斂。
混沌;粒子群算法;適應(yīng)度值;收斂速度
粒子群算法(PSO)是群隨機搜索算法,其產(chǎn)生受到了鳥群的個體行為和群體行為的啟發(fā)。群體中的成員通過通信分享在對環(huán)境的搜索中發(fā)現(xiàn)的共同目標(biāo)。原始的PSO是Kennedy和Eberhart提出的,后來,Shi等對速度項引入慣性權(quán)重,得到了標(biāo)準(zhǔn)PSO形式[1]。現(xiàn)在,標(biāo)準(zhǔn)PSO是一種流行的優(yōu)化算法,被應(yīng)用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練、控制、電力系統(tǒng)、管理設(shè)計、系統(tǒng)辨識和狀態(tài)評估等多方面。PSO的流行部分是因為它形式簡單,更主要是因為它能以較低的消耗獲得好的結(jié)果[2]。PSO適合于搜索空間大且具有許多局部極小值的問題(以求最小值點為例)或者是目標(biāo)函數(shù)的性質(zhì)很差的問題。
在應(yīng)用中,PSO表現(xiàn)出早熟收斂的問題,一種解決方法是引入跳出局部最優(yōu)的機制。混沌因為具有隨機性和遍歷性,所以它是一種合適的機制[3]。下面,筆者利用An混沌來幫助PSO跳出局部最優(yōu),提出了一種新的自適應(yīng)混沌粒子群算法(AC-PSO)。
1)An混沌 An提出了一種隨機數(shù)產(chǎn)生格式[4]:
(1)
式(1)能產(chǎn)生周期為無窮的序列,其經(jīng)驗分布為F(y)=(ln(y+1/2)+ln(2))/ln(3)。根據(jù)cxi=(ln(yi+1/2)+ln(2))/ln(3)得到的序列{cxi}可以看作是服從[0,1]上均勻分布的隨機數(shù)列。
(2)
式中,pi,j表示第i個粒子到目前為止找到的最優(yōu)解的第j個分量的值;pi=〈pi,1,…,pid〉被稱為個體最優(yōu);pg,j表示粒子群(S)到目前為止找到的最優(yōu)解的第j個分量的值;pg=〈pg,1,…,pg,d〉 被看做領(lǐng)導(dǎo)粒子,pi和pg,每個粒子都能夠同時利用個體和群體信息來更新自己的速度和位置;c1,c2∈R是學(xué)習(xí)因子,分別代表了個體最優(yōu)解和全局最優(yōu)解的影響權(quán)重;r1,r2是[0,1]上均勻分布的獨立隨機數(shù);w是迭代權(quán)重,它能夠調(diào)整過去速度在當(dāng)前速度中的份額,影響算法的局部和整體開發(fā)能力,Shi等[2]指出:w隨著迭代次數(shù)的增加從0.9線性減小到0.2,可以增加算法的收斂性。對w的修改記為w=(wstart,wf,wend),其中,wstart和wend分別表示w的初始值和最終值,不是在所有的迭代次數(shù)中w都變小,對應(yīng)w變小的迭代次數(shù)占總迭代次數(shù)的比例記為為wf。這樣,w按照下式變?。?/p>
(3)
式中,T表示最大迭代次數(shù);w從迭代次數(shù)t=1(此時w=wstart)直到t=?T×wf?遞減變小(此后w=wend)。
1)初始化 設(shè)置p(1)是[0,1]中的一個隨機數(shù),產(chǎn)生p(2),p(3),…,p(I×d),其中I是群體規(guī)模,d是問題維數(shù)。這樣,p是一個I×d維的向量,其元素的取值范圍是[0,1]區(qū)間。從p中依次取出d個數(shù),每d個數(shù)構(gòu)成一個向量,將每個元素映射到相應(yīng)的區(qū)間[aj,bj]后,就得到了各個粒子的的初始位置。
采用類似途徑可以得到各個粒子的初始速度。
2)更新方程 為了充分利用An混沌的優(yōu)良性質(zhì),不僅利用An混沌做初始化,而且每L次迭代就利用An混沌擾動部分粒子的速度和位置。
3)算法設(shè)計 算法步驟如下:
步1初始化學(xué)習(xí)因子c1=c2=2;總迭代次數(shù)T=1000;群體規(guī)模I=10;問題維數(shù)J;慣性權(quán)重w=(0.9,0.5,0.2);擾動比率λ=0.5;擾動周期L=40;計算w的減小步長wdec=(wstart-wend)/?T×wf?;初始化粒子群各粒子的位置、速度。
步2計算適應(yīng)度值,確定粒子群的全局最優(yōu)位置gbest,粒子本身經(jīng)歷的最優(yōu)位置pbesti,i=1,2,…,I。轉(zhuǎn)步3;
步3若迭代次數(shù)小于?T×wf?,w按照式(3)遞減,粒子的位置和速度按照式(2)更新;迭代次數(shù)增加1。更新gbest,pbesti。若迭代次數(shù)等于L的整數(shù)倍,轉(zhuǎn)步4,否則轉(zhuǎn)步5;
步4對粒子群進行混沌擾動,更新gbest,pbesti,轉(zhuǎn)步5;
步5若迭代次數(shù)小于T,轉(zhuǎn)步3,否則,轉(zhuǎn)步6;
步6輸出最終結(jié)果:gbest,最優(yōu)函數(shù)值。
采用實數(shù)編碼,慣性權(quán)重按照式(3)遞減,采用表1所示測試函數(shù)評估AC-PSO的性能。
表1 測試函數(shù)
表2 測試PSO和AC-PSO采用的參數(shù)
表2顯示了測試算法采用的參數(shù),算法分別運行20次,各算法每次運行迭代1000次。
圖1和表3對比了對表1中測試函數(shù)的優(yōu)化結(jié)果,該結(jié)果是20次運行結(jié)果的平均值。運行中,PSO采用隨機初始化,AC-PSO則采用前迭初始化方式。
從圖1和表3可以看出,在表1的參數(shù)下,對所有的測試函數(shù)AC-PSO算法優(yōu)于標(biāo)準(zhǔn)粒子群算法,PSO算法在早期迭代中尋優(yōu)能力優(yōu)于AC-PSO,AC-PSO算法在迭代后期尋優(yōu)能力優(yōu)于PSO。
a-f:對應(yīng)函數(shù)1-6;實線對應(yīng)AC-PSO、虛線對應(yīng)PSO。圖1 測試函數(shù)的優(yōu)化結(jié)果
表3 不同問題的PSO與AC-PSO算法的仿真結(jié)果
提出了一種新的算法,即AC-PSO。新算法引入了新的位置和速度更新規(guī)則:以特殊方式利用An混沌初始化粒子群的位置和速度,在一些特定迭代次數(shù)時,利用An混沌擾動部分粒子的速度和位置。在一些測試函數(shù)上,AC-PSO的性能優(yōu)于PSO,具備了較好的抗早熟能力。
[1]Shi Y,Eberhart R C.A Modified Particle Swarm Optimizer[A].In Proceedings of the IEEE Congress on Evolutionary Computation[C].IEEE Press,1998: 69-73.
[2]Reyes M, Coello C.Multi-objective particle swarm optimizers: A survey of the state-of-the-art[J].International Journal of Computational Intelligence Research,2006,3(2): 287-308.
[3]Li B,Jiang W S.Optimizing Complex Function by Chaos Search[J].Cybernetics and Systems,1998,29: 409-419.
[4]Feng Yan.Study and realization for a new generation method of random nuber[D].Beijing: Beijing University of Technology,2002.
[編輯] 洪云飛
10.3969/j.issn.1673-1409(N).2012.12.034
TP301.6
A
1673-1409(2012)12-N105-03