程 勇
(西安科技大學(xué),西安710054)
1995年Eberhart和kennedy提出了粒子群優(yōu)化算法(Particle Swarm Optimization,PSO),通過種群粒子間的配合和競(jìng)爭(zhēng)達(dá)到群體指導(dǎo)搜索目標(biāo)[1]。該雖然算法簡(jiǎn)單、易實(shí)現(xiàn)。但是,仍然存在著收斂速度慢等缺點(diǎn)。因此,很多學(xué)者針對(duì)這一研究熱點(diǎn)提出了改進(jìn)算法[2-3]。提出一種隨機(jī)粒子群優(yōu)化算法—DPRPSO。結(jié)果驗(yàn)證了DPRPSO算法不易陷入局部最小點(diǎn)和收斂速度快的特性。
標(biāo)準(zhǔn)PSO算法首先初始化一群隨機(jī)粒子(particle),假設(shè)在D維搜索空間中,有m個(gè)粒子組成一群體,第 i個(gè)粒子在 D維空間中的位置表示為xi=(xi1,xi2,...,xiD),第 i個(gè)粒子經(jīng)歷過的最好位置(有最好適應(yīng)度)記為 pi=(pi1,pi2,...,piD),每個(gè)粒子的飛行速度為vi=(vi1,vi2,...,viD)。在整個(gè)群體中,所有粒子經(jīng)歷過的最好位置為 pg=(pg1,pg2,...,pgD),每一代粒子根據(jù)下面公式更新自己的速度和位置:
其中,w是慣性權(quán)重;c1和c2是學(xué)習(xí)因子;r1和r2是[0,1]之間的隨機(jī)數(shù)。公式分別說(shuō)明了,第一部分粒子先前的速度,即粒子目前的狀態(tài);第二部分認(rèn)知部分,即從當(dāng)前點(diǎn)指向此粒子自身最好點(diǎn)的一個(gè)矢量,反映了粒子的動(dòng)作來(lái)源于自身經(jīng)驗(yàn)的部分;第三部分為社會(huì)部分(Social Modal),是一個(gè)從當(dāng)前點(diǎn)指向種群最好點(diǎn)的一個(gè)矢量,反映了粒子間的協(xié)同合作和知識(shí)共享。
結(jié)合標(biāo)準(zhǔn)粒子群算法的特點(diǎn)本文提出了一種兩群并列隨機(jī)粒子群算法。
2.2.1 隨機(jī)搜索
隨機(jī)搜索算法最顯著的特點(diǎn)在于其算法本身的簡(jiǎn)單性,非常容易進(jìn)行編程運(yùn)算,以應(yīng)用于特定的函數(shù)優(yōu)化問題求解,而且基本上可以不需要預(yù)先設(shè)定的算法控制參數(shù)。
2.2.2 算法介紹
隨機(jī)粒子群算法如下:
(1)將粒子群平均分成兩群A、B。
(2)按照(3)混沌初始化 A、B粒子群(共 n個(gè)),并且從中選出,適應(yīng)度高的n個(gè)粒子。
Logistic映射如下:
(3)找出全局最優(yōu)粒子。
(4)進(jìn)行PSO全局搜索,然后進(jìn)行最優(yōu)粒子半徑r范圍內(nèi)的隨機(jī)搜索,如果發(fā)現(xiàn)更好的粒子位置就要更新A、B兩群中的最優(yōu)粒子位置。
同時(shí)計(jì)算最優(yōu)粒子的連續(xù)p次適應(yīng)度的變化值,如果小于Δ,而且仍然沒有達(dá)到目標(biāo)誤差,有可能已經(jīng)陷入了局部最小值。這時(shí),需要把最優(yōu)粒子的位置在范圍r內(nèi),利用隨機(jī)算法優(yōu)化,幫助最優(yōu)粒子跳出局部最優(yōu)值。這時(shí)的r表示隨機(jī)搜索的半徑,開始應(yīng)該取的較小,當(dāng)跳出局部最優(yōu)值失敗時(shí),就需要擴(kuò)大隨機(jī)搜索的半徑。
(5)對(duì)適應(yīng)度差的最后m個(gè)粒子進(jìn)行原位置上的混沌迭代,更新其位置,提高它的適應(yīng)度。
(6)達(dá)到條件,停止搜索。算法結(jié)果如圖1所示。
圖1 算法結(jié)構(gòu)圖
在參數(shù)辨識(shí)中以優(yōu)化為基礎(chǔ)的非線性系統(tǒng)參數(shù)辨識(shí)方法主要是尋找一組最優(yōu)的參數(shù)向量,使預(yù)定的誤差目標(biāo)函數(shù)F(Z)值達(dá)到最?。?]。本文定義誤差目標(biāo)函數(shù)為輸出誤差的平方和,即:
適應(yīng)值是評(píng)定粒子優(yōu)劣的標(biāo)準(zhǔn),取式(4)的倒數(shù)作為適應(yīng)度函數(shù)。設(shè)學(xué)習(xí)因子c1=1.4962;學(xué)習(xí)因子c2=1.4962;慣性權(quán)重w=0.7298;最大迭代次數(shù)MaxDT=1500;PSO粒子個(gè)數(shù)N=50;收斂誤差終止條件enorm=10-6,RPSO算法中有5個(gè)隨機(jī)搜索粒子。針對(duì)算法提出的算法特性,選取指數(shù)函數(shù)模型為辨識(shí)對(duì)象。
圖2 標(biāo)準(zhǔn)PSO和RPSO算法誤差收斂曲線
在y=aeb+cx中,原模型中 a=4.1240;b=2.1297,c=5.4900。x取值范圍[-5,5]。需要辨識(shí)的參數(shù)是a,b,c。連續(xù)搜索100次,對(duì)結(jié)果進(jìn)行統(tǒng)計(jì):
PSO平均搜索229步,成功率74%,達(dá)到誤差精度,停止搜索。a=4.113345480867251,b=2.109754600729356,c=5.510000331108581。
RPSO平均搜索153步,成功率95%,達(dá)到誤差精度,停止搜索。a=4.123002142000102,b=2.120300570417860,c=5.489655809122442。
圖2給出了搜索的平均結(jié)果,藍(lán)色的曲線表示RPSO算法,綠色的曲線表示PSO算法。
可以看出,由于混沌算法的初始化,在辨識(shí)的開始階段,DPRPSO就比PSO算法具有優(yōu)勢(shì)。隨著算法的進(jìn)一步展開,本文的算法在辨識(shí)過程中,利用兩個(gè)并行的PSO集體,不僅提高了算法的效率,而且更加高效的利用了最優(yōu)粒子的引導(dǎo)特性。因此,這個(gè)辨識(shí)過程具有更高的效率,更快的速度。
介紹了基于粒子群多樣性和隨機(jī)搜索所提出的一種改進(jìn)型PSO算法DPRPSO。應(yīng)用在參數(shù)辨識(shí)中,粒子群算法具有收斂速度快,辨識(shí)精度高的特點(diǎn)。最后辨識(shí)結(jié)果充分說(shuō)明了DPRPSO是一種有效的PSO改進(jìn)算法,也證明了該算法的有效性。
[1] Kennedy J,Eberhart R.Particle swarm optimization[C].Proc of IEEE Int Conf on Neural Networks.Perth,1995:1942-1948.
[2] Kennedy J.Small worlds and mega-minds:Effects of neighborhood topology on particle swarm performance[C].Washington DC:Proc of the Congress on Evolutionary Computation,1999:1931-1938.
[3] 陳貴敏,賈建援,韓琪.粒子群優(yōu)化算法的慣性權(quán)值遞減策略研究[J].西安交通大學(xué)學(xué)報(bào),2006,40(1):53-56.
[4] Mendes R,Kennedy J,Neves J.The fully informed particle swarm:Simpler,maybe better[J].IEEE Trans on Evolutionary Computation,2004(8):204-210.
[5] 馮培悌.系統(tǒng)辨識(shí)[M].杭州:浙江大學(xué)出版社,1999.