黎紅玲,羅 林,劉好斌
(內(nèi)江師范學(xué)院數(shù)學(xué)與信息科學(xué)學(xué)院,四川內(nèi)江 641112)
粒子群優(yōu)化(PSO)是由Kennedy和Eberhart于1995年提出的一種進(jìn)化計(jì)算技術(shù),其基本思想源于對(duì)鳥(niǎo)群捕食行為的模擬[1]。PSO算法具有簡(jiǎn)單易懂、容易實(shí)現(xiàn)、收斂速度快等特點(diǎn),但在搜索后期收斂速度變慢,局部收斂能力減弱,容易陷入局部最優(yōu)。
為提高粒子群優(yōu)化算法的求解質(zhì)量,許多學(xué)者針對(duì)算法本身的進(jìn)行了改進(jìn):如帶粒子釋放和速度限制的改進(jìn)算法[2],文獻(xiàn)[3]引入速度因子和位置因子參數(shù),增強(qiáng)粒子活性和粒子的多樣性,取得了良好的實(shí)驗(yàn)效果。Shi等人[4]首次將慣性權(quán)重引入 PSO算法中后,許多人對(duì)慣性權(quán)重進(jìn)行了改進(jìn),例如利用個(gè)體尋優(yōu)來(lái)定義慣性權(quán)重[5],使慣性權(quán)重線性微分或非線性微分遞減[6],用典型線性遞減策略和動(dòng)態(tài)變化策略相結(jié)合的方法來(lái)確定慣性權(quán)重[7]等,或者利用慣性權(quán)重函數(shù)對(duì)學(xué)習(xí)因子進(jìn)行改進(jìn)[8],對(duì)參數(shù)進(jìn)行全局性調(diào)整[9]。如混合蛙跳算法來(lái)簡(jiǎn)化粒子群優(yōu)化算法[10],各種改進(jìn)都在不同程度了促進(jìn)了粒子群優(yōu)化算法的研究與發(fā)展。
本文針對(duì)粒子群優(yōu)化算法的早熟現(xiàn)象及后期局部搜索能力弱的缺點(diǎn),利用正負(fù)反饋的原理來(lái)調(diào)整算法的慣性權(quán)重,增加粒子的多樣性以及增強(qiáng)算法的局部尋優(yōu)能力;同時(shí)利用隨機(jī)數(shù)來(lái)動(dòng)態(tài)調(diào)整位置更新公式,類(lèi)似蛙跳算法中對(duì)青蛙步長(zhǎng)的調(diào)整[10]。文章結(jié)合這兩種改進(jìn)得出新的粒子群算法。
粒子群優(yōu)化算法是一種模擬鳥(niǎo)群飛行的人工智能算法,采用“群體”和“進(jìn)化”的概念,將群體中的成員描述為“微?!保辛W油ㄟ^(guò)一個(gè)適應(yīng)函數(shù)來(lái)確定其在空間中的適應(yīng)度。進(jìn)化初期,每個(gè)粒子的位置和速度都被隨機(jī)初始化,粒子在飛行過(guò)程中相互合作,根據(jù)自身和同伴的運(yùn)動(dòng)狀態(tài)及時(shí)調(diào)整速度和位置。在PSO算法中每個(gè)粒子都是解空間的一個(gè)解,每個(gè)粒子均知道自身位置和其他粒子的信息,通過(guò)自身的最優(yōu)位置,再結(jié)合群體最優(yōu)位置區(qū)調(diào)節(jié)自身的位置和速度,從而找到最優(yōu)值。
假設(shè)在一個(gè)D維的目標(biāo)搜索空間中,有m個(gè)粒子組成,其中第個(gè)粒子表示為一個(gè)D維的向量xi=(xi1,xi2,…,xiD),i=1,2,3,…m,即第 i個(gè)粒子在 D 維的搜索空間中的位置是xi,第i個(gè)粒子的速度vi=(vi1,vi2,…,viD)。記第i個(gè)粒子搜索到最好的位置pi=(pi1,pi2,…,piD),整個(gè)群體搜索到最好的位置 pg=(pg1,pg2,…,pgD)。
在PSO算法中,粒子的速度-位置方程描述為:
其中,w為慣性權(quán)重,是[0.4,0.9]之間的隨機(jī)數(shù),c1和c2是學(xué)習(xí)因子;r1,r2為介于[0,1]之間的隨機(jī)數(shù),vid∈[-vmax,vmax]。w是對(duì)自身運(yùn)動(dòng)狀態(tài)的信任,c1是“認(rèn)知部分”權(quán)重,是對(duì)粒子自身的思考。c2是“社會(huì)認(rèn)知”權(quán)重,是粒子間的信息共享,來(lái)源于群體中各個(gè)優(yōu)秀粒子的經(jīng)驗(yàn)。
文獻(xiàn)[11]從收斂性能上分析提出一種慣性權(quán)重正弦調(diào)整的粒子群算法,即w滿(mǎn)足
其中,k為當(dāng)前迭代次數(shù);max為最大迭代次數(shù)。由w值呈正弦變化可知,整個(gè)算法過(guò)程中,粒子先在其自身附近作局部尋優(yōu),接著進(jìn)行全局尋優(yōu),最后讓最優(yōu)粒子進(jìn)行局部搜索。本文針對(duì)此改進(jìn)引入了正負(fù)反饋機(jī)制來(lái)調(diào)整慣性權(quán)重:結(jié)合算法的迭代次數(shù),達(dá)到權(quán)重的實(shí)時(shí)變化,并通過(guò)慣性權(quán)重的動(dòng)態(tài)調(diào)整達(dá)到對(duì)粒子群的正負(fù)反饋。在式(3)中,若w為正值,體現(xiàn)系統(tǒng)對(duì)前期結(jié)果的認(rèn)可,進(jìn)行一次正反饋;若w為負(fù)值,相當(dāng)于對(duì)前一次迭代的結(jié)果進(jìn)行一次反思,接受解在一定程度上的退化,體現(xiàn)系統(tǒng)對(duì)前期結(jié)果的負(fù)反饋。另外,在迭代過(guò)程中,讓?xiě)T性權(quán)重在一定范圍內(nèi)變化,不僅增加了粒子的多樣性,也有利于算法跳出局部最優(yōu)值。實(shí)驗(yàn)表明,利用正負(fù)反饋的原理動(dòng)態(tài)調(diào)整慣性權(quán)重,增強(qiáng)了算法發(fā)現(xiàn)最優(yōu)解的能力。將權(quán)重公式調(diào)整如下
其中,k為當(dāng)前迭代次數(shù);h為[0,1]之間的反饋參數(shù);wmax和wmin分別為慣性權(quán)重的最大值、最小值。
參數(shù)調(diào)整的目的在于提高算法搜索能力,式(1)和式(2)值的大小反映了粒子最新位置會(huì)受到前一速度和位置作用的影響,若此值較大,粒子飛行速度大,搜索范圍廣,搜索比較粗糙;如果此值比較小,粒子飛行速度慢,搜索范圍小,搜索比較細(xì)致。而位置更新過(guò)程會(huì)導(dǎo)致粒子快速的陷入局部最優(yōu),為增強(qiáng)粒子的多樣性,增加搜索能力,本文利用隨機(jī)數(shù)來(lái)調(diào)整位置更新公式。
位置更新公式的改進(jìn)目的在于提高粒子群優(yōu)化算法的搜索能力,即提高粒子群算法的精度和收斂速度。在文獻(xiàn)[12]中,對(duì)位置更新公式作以下調(diào)整
文獻(xiàn)[12]利用隨機(jī)數(shù)來(lái)調(diào)整位置更新公式,即
其中,β為(0,1)之間的隨機(jī)數(shù)。對(duì)位置更新公式添加權(quán)重,提高了粒子群優(yōu)化算法的精度。
對(duì)于上述策略,通過(guò)4個(gè)典型測(cè)試函數(shù)進(jìn)行測(cè)試。
f1:Rosenbrock函數(shù),單峰,最優(yōu)值為0。
f2:Griewank函數(shù),多峰,最優(yōu)值為0。
f3:Sphere函數(shù),單峰,最優(yōu)值為0。
f4:Rastrigin函數(shù),多峰,最優(yōu)值為0。
利用f3:Sphere函數(shù),在標(biāo)準(zhǔn)粒子群算法的基礎(chǔ)上,對(duì)式(3)中的h進(jìn)行實(shí)驗(yàn)。對(duì)不同的h取值,算法分別運(yùn)行各10次后取平均值及10次的標(biāo)準(zhǔn)差,根據(jù)文獻(xiàn)[8 ~9,13]均取 wmax和 wmin為 0.9 和 0.4,實(shí)驗(yàn)結(jié)果如表1所示,可以看出,當(dāng)反饋參數(shù)取0.8時(shí),反饋效果較好。
表1 反饋參數(shù)對(duì)算法性能的影響分析
利用f3:Sphere函數(shù),在標(biāo)準(zhǔn)粒子群算法的基礎(chǔ)上,對(duì)位置更新式(4)和式(5),采用標(biāo)準(zhǔn)的PSO進(jìn)行測(cè)試,分別運(yùn)行算法各10次后取平均值以及10次的標(biāo)準(zhǔn)差,結(jié)果如表2所示,可看出,采用式(5)效果最好。
表2 更新公式對(duì)算法的影響分析
根據(jù)上述測(cè)試結(jié)果,改進(jìn)算法采用式(3)進(jìn)行慣性權(quán)重的更新公式,在公式中反饋參數(shù)取0.8。對(duì)位置更新公式采用式(5)進(jìn)行。
根據(jù)以上測(cè)試結(jié)果,取反饋參數(shù)h為0.8,更新公式為式(5),β取之間的隨機(jī)數(shù)。由文獻(xiàn)[8~9,13],wmin,wmax分別取0.4和0.9,學(xué)習(xí)因子均取2,迭代次數(shù)為100次,維數(shù)為10,結(jié)果如表3所示。
表3 標(biāo)準(zhǔn)PSO與改進(jìn)算法測(cè)試結(jié)果比較表
上述4個(gè)測(cè)試函數(shù)中,改進(jìn)算法的最優(yōu)值比標(biāo)準(zhǔn)PSO算法更理想,說(shuō)明改進(jìn)了算法的有效性。另外,從解的穩(wěn)定性角度出發(fā),由平均值和標(biāo)準(zhǔn)差的結(jié)果可以得到,改進(jìn)算法的整體效果明顯優(yōu)于標(biāo)準(zhǔn)算法。特別針對(duì)典型的多峰Griewank函數(shù)和Rastrigin函數(shù),改進(jìn)算法能找到最優(yōu)值,避免了陷入局部最優(yōu)。
綜上所述,改進(jìn)后的粒子群算法能有效地抑制早熟收斂問(wèn)題,且改進(jìn)算法在收斂速度和收斂精度上都有明顯提高,尤其對(duì)多峰函數(shù)更為明顯。
本文對(duì)慣性權(quán)重進(jìn)行分析,利用正負(fù)反饋的原理,對(duì)慣性權(quán)重進(jìn)行了動(dòng)態(tài)調(diào)整;通過(guò)增加隨機(jī)性改進(jìn)更新公式的改進(jìn),實(shí)驗(yàn)也驗(yàn)證了慣性權(quán)重的反饋因子和更新公式的有效性。大量的仿真實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的粒子群算法的求解質(zhì)量比改進(jìn)前的粒子群算法的求解質(zhì)量更高,特別在多峰函數(shù)中表現(xiàn)明顯。
[1]Kennedy J,Eberhart R.Particle swarm optimization[C].Perth Australia USA:Proceedings of the IEEE International Conference on Netural Network,IEEE Press,1995.
[2]吳正可,楊青真,施永強(qiáng),等.帶粒子釋放和速度限制的粒子群算法[J].計(jì)算機(jī)應(yīng)用研究,2013,30(3):682 -683.
[3]紀(jì)雪玲,李明,李瑋.一種克服局部最優(yōu)的收縮因子PSO算法[J].計(jì)算機(jī)工程,2011,10(20):213 -215.
[4]Shi Y,Eberhart R C.A modified particle swarm optimizer[C].Piscataway:IEEE World Congress on Computational Intelligence:The 1998 IEEEInternational Conference on Evolutionary Conference on Evolutionary Computation Proceedings,IEEE,1998:69 -73.
[5]董平平,高東慧,田雨波,等.一種改進(jìn)的自適應(yīng)慣性權(quán)重粒子群優(yōu)化算法[J].計(jì)算機(jī)仿真,2012,29(12):283 -286.
[6]胡建秀,曾建潮.微粒群算法中慣性權(quán)重的調(diào)整策略[J].計(jì)算機(jī)工程,2007,3(11):193 -195.
[7]郜振華,梅莉,祝遠(yuǎn)鑒.復(fù)合策略慣性權(quán)重的粒子群優(yōu)化算法[J].計(jì)算機(jī)應(yīng)用,2012,32(8):2216 -2218.
[8]趙遠(yuǎn)東,方正華.帶有權(quán)重函數(shù)學(xué)習(xí)因子的粒子群算法[J].計(jì)算機(jī)應(yīng)用,2013,33(8):2265 -2268.
[9]杜榮華.一種促進(jìn)PSO全局收斂的參數(shù)調(diào)整策略[J].系統(tǒng)工程與電子技術(shù),2009,31(6):1454 -1457.
[10]黃太安,生佳根,徐紅洋,等.一種改進(jìn)的簡(jiǎn)化粒子群算法[J].計(jì)算機(jī)仿真,2013,30(2):327 -330.
[11]姜長(zhǎng)元,趙曙光,沈士根,等.慣性權(quán)重正弦調(diào)整的粒子群算法[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(8):40 -42.
[12]馬莉.Matlab數(shù)學(xué)實(shí)驗(yàn)與建模[M].北京:清華大學(xué)出版社,2010.
[13]邵洪濤,秦亮曦.帶變異算子的非線性慣性權(quán)重PSO算法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(8):30 -38.