趙志彪, 李 瑞, 劉 彬, 周武洲
(1. 天津職業(yè)技術(shù)師范大學(xué)自動(dòng)化與電氣工程學(xué)院,天津300222;2. 燕山大學(xué)電氣工程學(xué)院,河北秦皇島066004)
粒子群算法是優(yōu)化領(lǐng)域一種典型的群體智能尋優(yōu)算法,受到達(dá)爾文進(jìn)化論和自然現(xiàn)象的啟發(fā),模仿鳥(niǎo)群的群體行為對(duì)目標(biāo)進(jìn)行優(yōu)化搜索,理論結(jié)構(gòu)簡(jiǎn)單且參數(shù)較少,具有魯棒性強(qiáng)、搜索效率高的特點(diǎn),已經(jīng)廣泛應(yīng)用于工程實(shí)踐和函數(shù)優(yōu)化等領(lǐng)域[1~7]。但是傳統(tǒng)的粒子群算法存在易陷入局部最優(yōu)、求解精度不高等缺陷。因此,近年來(lái)不少學(xué)者對(duì)粒子群算法進(jìn)行了大量研究。
針對(duì)單種群粒子群算法,趙鵬程等提出了一種帶隨機(jī)擾動(dòng)的混沌粒子群算法,算法采用混沌映射保持種群的多樣性,當(dāng)粒子出現(xiàn)“聚集”現(xiàn)象時(shí)加入隨機(jī)擾動(dòng)策略,在求解高維復(fù)雜優(yōu)化問(wèn)題時(shí)取得了較好的求解精度[8,9];Liang等提出了采用分維度綜合學(xué)習(xí)策略的粒子群算法,算法在維持種群多樣性的同時(shí)未增加計(jì)算復(fù)雜度,具有較好的全局搜索能力[10];陶新民等提出了改進(jìn)的粒子群與K均值算法混合的聚類算法,通過(guò)兩種算法的有機(jī)結(jié)合,有效實(shí)現(xiàn)了算法全局搜索能力及收斂速度的平衡[11]。
目前的這些單種群算法雖然一定程度上提高了粒子群算法的性能,但算法執(zhí)行單一種群的操作模式,每個(gè)粒子都趨向于同一種群的“社會(huì)部分”,導(dǎo)致解的多樣性較低,種群中的粒子聚集到一起很難擺脫局部最優(yōu)狀態(tài),并不能彌補(bǔ)算法的缺陷[12]。因此,多種群的構(gòu)建逐漸成為提升算法尋優(yōu)效率的研究熱點(diǎn)。Liang等提出了一種動(dòng)態(tài)的多種群粒子群算法,將整個(gè)種群劃分為若干個(gè)小種群,并周期性地隨機(jī)重組小種群,在多峰問(wèn)題上表現(xiàn)出良好的搜索能力[12];劉衍民等提出了一種基于K-均值聚類的多種群粒子群算法,根據(jù)聚類中心對(duì)小種群進(jìn)行動(dòng)態(tài)劃分,提高了種群的多樣性[13];高云龍等提出了一種基于多種群粒子群算法和布谷鳥(niǎo)搜索的聯(lián)合尋優(yōu)算法,算法采用中位數(shù)聚類將整個(gè)種群動(dòng)態(tài)劃分為若干個(gè)小種群,并將每個(gè)小種群的最優(yōu)粒子作為高層種群的粒子進(jìn)行深度優(yōu)化,提高了算法的全局搜索能力[14]; Bergh F V D等提出了一種利用多個(gè)子種群分別優(yōu)化解向量各維度的多種群粒子群算法,避免了“two steps forward,one step back”的現(xiàn)象[15];Niu B等提出了一種基于互利共生和共棲思想的主從式結(jié)構(gòu)的多群體協(xié)同進(jìn)化粒子群算法,該結(jié)構(gòu)有效地保證了算法開(kāi)發(fā)與探測(cè)能力的平衡[16]。上述算法的多種群策略都是基于粒子之間的位置信息共享,并沒(méi)有考慮粒子的速度信息。 Zhang J等提出了一種自適應(yīng)多種群協(xié)同粒子群算法,子種群間通過(guò)分享速度和位置信息實(shí)現(xiàn)算法的全局搜索,具有較好的求解高維優(yōu)化問(wèn)題的能力[17]。
受上述多種群粒子群算法的啟發(fā),本文提出了一種基于速度交流的共生多種群粒子群算法(symbiosis multi-population particle swarm optimization algorithm based on velocity communication,SMPSO)。SMPSO算法中,構(gòu)建具有共生關(guān)系的主從群結(jié)構(gòu),在提升算法解集多樣性的同時(shí)平衡局部與全局搜索能力。根據(jù)從種群間的速度信息交流機(jī)制進(jìn)行子種群的劃分,即以固定種群動(dòng)態(tài)交流速度信息的方式對(duì)子種群進(jìn)行規(guī)劃,有效實(shí)現(xiàn)子種群搜索領(lǐng)域的分割,從而增強(qiáng)算法的探索與開(kāi)發(fā)能力。當(dāng)算法陷入局部最優(yōu)時(shí),引入自適應(yīng)變異策略對(duì)主種群個(gè)體進(jìn)行變異,提升SMPSO算法跳出局部最優(yōu)的能力。在仿真實(shí)驗(yàn)中,對(duì)不同函數(shù)尋優(yōu)測(cè)試,均顯示出該算法優(yōu)良的搜索能力和尋優(yōu)性能。
傳統(tǒng)粒子群算法采用單一種群的模式,在處理復(fù)雜的優(yōu)化問(wèn)題時(shí),具有易陷入局部最優(yōu)、求解精度不高的缺點(diǎn);而多種群粒子群算法的運(yùn)行效率和求解精度往往優(yōu)于單種群粒子群算法[18]。因此,本文構(gòu)建了基于速度交流的共生多種群粒子群算法(SMPSO),算法的優(yōu)化框架如圖1所示。
圖1 算法優(yōu)化框架Fig.1 Algorithm optimization framework
本文將SMPSO分割為主種群和從種群兩部分。其中,從種群采用速度交流機(jī)制,被劃分為4個(gè)子種群p1,p2,p3,p4,負(fù)責(zé)在解空間中全局廣度搜索,主種群根據(jù)自適應(yīng)變異策略負(fù)責(zé)在解空間中局部精度搜索。搜索過(guò)程中,從種群將獲得的最優(yōu)信息Plocal-best分享給主種群,而主種群根據(jù)共生群體(從種群)的經(jīng)驗(yàn)以及自身經(jīng)驗(yàn)獲得整個(gè)種群的最優(yōu)狀態(tài)Pglobal-best再反饋給從種群,從而建立主從群間的共生結(jié)構(gòu)。這種結(jié)構(gòu)能夠?qū)崿F(xiàn)主從種群間的互利共生,在一定程度上避免了個(gè)體信息誤判造成的陷入局部最優(yōu)的危險(xiǎn)。
從種群中4個(gè)子種群p1,p2,p3,p4速度交流機(jī)制的思想是:一次迭代過(guò)程中,采用不同慣性權(quán)值與學(xué)習(xí)因子參數(shù)組合的子種群p1和p2作為基本子種群,將速度信息分享給子種群p3,從而影響子種群p3的搜索行為;子種群p1,p2,p3再將速度信息分享給子種群p4,用于影響子種群p4的搜索行為。該操作使4個(gè)子種群粒子的搜索性能具有差異性,使解空間被劃為4個(gè)子種群對(duì)應(yīng)獨(dú)立的子空間,實(shí)現(xiàn)優(yōu)化問(wèn)題搜索領(lǐng)域的有效規(guī)劃,既滿足子種群間的自由競(jìng)爭(zhēng),又可以實(shí)現(xiàn)子種群間的信息交流。本節(jié)將詳細(xì)描述從種群中4個(gè)子種群p1,p2,p3,p4的更新方式。
(1)
(2)
為了產(chǎn)生不同于p1,p2的粒子搜索軌跡,子種群p3的速度受子種群p1,p2的引導(dǎo),通過(guò)對(duì)子種群p1,p2速度信息的記憶,自適應(yīng)更新其速度,子種群p3的粒子速度迭代如式(3)所示。
(3)
式中:w3表示子種群p3的慣性權(quán)重;c31表示子種群p3的自我學(xué)習(xí)因子;c32表示子種群p3的社會(huì)學(xué)習(xí)因子;s1,s2為子種群p3的影響因子。
利用式(4)和式(5)對(duì)s1和s2進(jìn)行計(jì)算。
s1=(V1+V2)/V1
(4)
s2=(V1+V2)/V2
(5)
式中:V1為子種群p1的個(gè)體適應(yīng)度值(本文為目標(biāo)函數(shù)值);V2為子種群p2的個(gè)體適應(yīng)度值。
s1、s2決定子種群p1、p2對(duì)子種群p3的影響程度。sG(G=1,2)越大,子種群pG(G=1,2)對(duì)子種群p3的影響程度越大。
綜上,子種群p1,p2,p3在解空間中占有不同的搜索領(lǐng)域。為了使解空間得到更全面的探索,本文建立了相異于子種群p1,p2,p3搜索方向的子種群p4。子種群p4用于搜索被子種群p1,p2,p3忽略的解空間,從而使從種群的全局搜索性能更完善。子種群p4的速度受其它3個(gè)子種群的引導(dǎo),通過(guò)對(duì)子種群p1,p2,p3速度信息的記憶,自適應(yīng)更新其自身的速度。子種群p4的更新如式(6)所示。
(6)
在速度迭代更新的基礎(chǔ)上,子種群p1、p2、p3對(duì)位置進(jìn)行相應(yīng)的更新,子種群p1、p2、p3的粒子位置更新如式(7)所示。
(7)
子種群p4的速度接收子種群p1,p2,p3的速度信息,決定其粒子移動(dòng)的方向和距離,而全局最優(yōu)狀態(tài)Pglobal-best可以引導(dǎo)種群尋找最優(yōu)解。因此為了增強(qiáng)子種群p4的搜索能力,利用式(8)對(duì)p4粒子位置迭代更新。
(8)
式中:α1,α2,α3為影響因子。
α1,α2,α3分別決定式(8)各元素對(duì)子種群p4搜索能力的影響程度,且滿足α1+α2+α3=1。αr(r=1,2,3)越大,對(duì)子種群p4的影響程度越大,分別設(shè)定α1,α2,α3為1/6,1/3,1/2[17]。
從種群每次完成迭代,利用式(9)對(duì)子種群p1,p2,p3,p4的最優(yōu)位置Plocal-best-G(G=1,2,3,4)進(jìn)行篩選,從PLocal-best-G(G=1,2,3,4)中選擇最優(yōu)位置狀態(tài)Plocal-best,將Plocal-best分享給主種群。
Plocal-best=min{Plocal-best-G,G=1,2,3,4}
(9)
主種群綜合自身最好經(jīng)驗(yàn)和從種群最好經(jīng)驗(yàn)Plocal-best,進(jìn)行狀態(tài)的更新,獲得整個(gè)種群的最優(yōu)狀態(tài)Pglobal-best,并將Pglobal-best再次反饋給從種群,作為從種群的社會(huì)部分,從而實(shí)現(xiàn)主種群與從種群的互利共生。
主種群的粒子個(gè)數(shù)為M,第i個(gè)粒子的位置表示為[xi1,xi2,xi3,…xiD],第i個(gè)粒子的速度表示為[vi1,vi2,vi3,…viD],利用式(10)對(duì)主種群的粒子速度迭代更新。
vij(t+1)=wvij(t)+c1r1(Pij(t)-xij(t))+
λ1c2r2(Pglobal-best(t)-xij(t))+
λ2c3r3(Plocal-best(t)-xij(t))
(10)
式中:w為主種群的慣性權(quán)值;c1為主種群的自我學(xué)習(xí)因子;c2、c3為主種群社會(huì)學(xué)習(xí)因子;r1、r2、r3為[0,1]間的隨機(jī)數(shù);λ1,λ2為主種群的影響因子。
λ1,λ2分別決定Pglobal-best,Plocal-best對(duì)主種群搜索行為的影響程度,且滿足λ1+λ2=1。λ1,λ2根據(jù)式(11)和式(12)進(jìn)行計(jì)算。
λ1=1-VG/(VG+VL)
(11)
λ2=1-VL/(VG+VL)
(12)
式中:VG為Pglobal-best對(duì)應(yīng)的個(gè)體適應(yīng)度值;VL為Plocal-best對(duì)應(yīng)的個(gè)體適應(yīng)度值。
公式(13)為主種群的粒子位置更新公式:
xij(t+1)=xij(t)+vij(t+1)
(13)
通過(guò)分析上述算法運(yùn)行結(jié)構(gòu)可知,從種群采用速度交流機(jī)制被劃分為4個(gè)子種群p1,p2,p3,p4。子種群p1,p2作為從種群的基本子種群,分別傳遞速度信息給子種群p3和p4。不僅實(shí)現(xiàn)子種群粒子速度的自適應(yīng)更新與子區(qū)域的合理規(guī)劃,提高從種群的全局探索與開(kāi)發(fā)能力;而且將全局搜索的最優(yōu)狀態(tài)Plocal-best發(fā)送給主種群,協(xié)助主種群有效的進(jìn)行局部搜索。主種群綜合從種群的全局最優(yōu)位置進(jìn)行局部深度尋優(yōu),獲得整個(gè)種群的最優(yōu)位置Pglobal-best反饋給從種群,引導(dǎo)4個(gè)子種群向全局最優(yōu)解逼近,從而建立了具有共生關(guān)系的主從群結(jié)構(gòu)。多種群策略提升了算法解集多樣性,主從群結(jié)構(gòu)充分利用了粒子群算法的局部搜索能力,實(shí)現(xiàn)各種群間的速度與位置信息共享。因此,本文所建立的主從群共生關(guān)系為算法的優(yōu)化提供了優(yōu)良的搜索環(huán)境。
在進(jìn)化策略中引入柯西分布的變異算子可以降低算法陷入局部最優(yōu)的機(jī)會(huì)[19]。為了進(jìn)一步提高算法的搜索能力,本文將柯西變異算子引入主種群算法中,從而提高算法跳出局部最優(yōu)的能力。
在算法的初始階段,主要運(yùn)行多種群的算法結(jié)構(gòu)。當(dāng)算法連續(xù)2次迭代找到的最優(yōu)值在0.01%內(nèi)變化,則認(rèn)為算法本次迭代陷入局部最優(yōu)。此時(shí)根據(jù)適應(yīng)度值對(duì)主種群的粒子從小到大進(jìn)行排序,引入柯西變異算子對(duì)主種群排名在后50%的粒子進(jìn)行變異,從而引導(dǎo)算法跳出局部最優(yōu)。自適應(yīng)變異策略的規(guī)則為:
xij-new=xij+Δxij·φ·rand
(14)
(15)
式中:φ為尺度壓縮因子,取值范圍為[0,0.1];Δxij為變量的柯西算子變異增量;rand表示(0,1)范圍內(nèi)的隨機(jī)數(shù)。
經(jīng)過(guò)自適應(yīng)變異的新個(gè)體將取代舊個(gè)體,繼續(xù)進(jìn)行算法迭代。
粒子群算法的慣性權(quán)值和學(xué)習(xí)因子的選取對(duì)算法的優(yōu)化性能有很大的影響,不同的參數(shù)組合下,粒子的軌跡形式是不同的,參數(shù)組合決定了粒子搜索能力的大小[20]。綜合考慮各種群的搜索性能和影響因素,本文對(duì)主從群分別選取了合適的慣性權(quán)值與學(xué)習(xí)因子的參數(shù)組合,提高種群多樣性的同時(shí)增強(qiáng)算法的搜索能力。
子種群p1的慣性權(quán)值w1=0.4,學(xué)習(xí)因子c11=2,c12=2; 子種群p2的慣性權(quán)值w2=0.75,學(xué)習(xí)因子如式(16)和式(17)所示[20]。
(16)
(17)
子種群p3的搜索性能受子種群p1,p2的綜合影響??紤]到子種群p1,p2的動(dòng)態(tài)迭代效應(yīng),子種群p3的慣性權(quán)值與學(xué)習(xí)因子采用固定數(shù)值的設(shè)置方法,具體設(shè)定通過(guò)下文實(shí)驗(yàn)獲得,此處不再贅述。子種群p4沒(méi)有相應(yīng)的慣性權(quán)值和學(xué)習(xí)因子參數(shù),搜索行為受到子種群p1,p2,p3的綜合影響。
主種群在整個(gè)算法結(jié)構(gòu)中具有深度局部?jī)?yōu)化作用。綜合考慮主種群對(duì)算法搜索性能的影響,慣性權(quán)值w采用雙指數(shù)函數(shù)的設(shè)置形式[21],如式(18)。
w=exp(-exp(-(T-t)/T))
(18)
雙指數(shù)函數(shù)是一個(gè)單調(diào)遞減的非線性函數(shù),因此慣性權(quán)值w隨著迭代次數(shù)t增加而減??;從而在算法迭代初期,主種群具有較大的迭代步長(zhǎng),加快其搜索速度。隨著算法逐漸逼近最優(yōu)解,主種群的慣性權(quán)值不斷衰減,主種群粒子的步長(zhǎng)也不斷減小,使主種群在最優(yōu)解附近進(jìn)行有效的小范圍搜索。通過(guò)下文實(shí)驗(yàn)對(duì)主種群的學(xué)習(xí)因子進(jìn)行取值分析。
在粒子群算法中,速度和社會(huì)影響因素在算法中的作用是舉足輕重的。在一次飛行中,種群根據(jù)當(dāng)前種群最優(yōu)點(diǎn)不一定找到最優(yōu)的搜索領(lǐng)域,因此每個(gè)種群應(yīng)該更多的關(guān)注其它群體中的個(gè)體與社會(huì)信息。本文的策略是粒子在飛行過(guò)程中綜合其它種群中的粒子速度和位置最優(yōu)信息進(jìn)行尋優(yōu),建立具有共生關(guān)系的主從群結(jié)構(gòu);采用速度交流機(jī)制對(duì)從種群進(jìn)行劃分與聯(lián)系,從全局與局部著手,建立了新穎的多種群粒子群算法;采用自適應(yīng)變異策略與合適的參數(shù)組合進(jìn)一步提升算法的搜索特性。SMPSO算法的流程如圖2所示。
通過(guò)上述的算法分析與流程圖的建立,所提出的改進(jìn)算法的步驟總結(jié)如下:
Step1:設(shè)置算法參數(shù):種群規(guī)模M,最大函數(shù)迭代次數(shù)T,學(xué)習(xí)因子c1和c2等;
Step2:初始化各種群的速度和位置;
Step3:利用式(1)~式(8)對(duì)從種群迭代更新,計(jì)算各子種群中粒子的適應(yīng)度值,得到各子種群局部最優(yōu)位置Plocal-best-G(G=1,2,3,4),從中選擇最優(yōu)的位置Plocal-best;
Step4: 將從種群得到的Plocal-best發(fā)送給主種群,主群綜合自身最好經(jīng)驗(yàn)和從種群最好經(jīng)驗(yàn),利用式(10)~式(13)進(jìn)行迭代更新,得到Pglobal-best;
Step5: 判斷算法是否滿足結(jié)束條件(最大迭代次數(shù)T),如果滿足,跳轉(zhuǎn)到Step9,如果不滿足,執(zhí)行Step6;
Step6: 根據(jù)Pglobal-best的更新情況,判斷算法是否陷入局部最優(yōu),如果算法陷入局部最優(yōu),執(zhí)行Step7,否則執(zhí)行Step8;
Step7: 利用式(14)和式(15)對(duì)主種群排在后50%的個(gè)體變異,并執(zhí)行Step8;
Step8: 將主群的Pglobal-best發(fā)送給從種群,接著跳到Step3;
Step9: 輸出Pglobal-best,即優(yōu)化問(wèn)題的解向量。
為了驗(yàn)證SMPSO算法的尋優(yōu)性能和求解效率,本文選取5個(gè)基準(zhǔn)測(cè)試函數(shù)進(jìn)行SMPSO算法的性能測(cè)試,分別為: Sphere, Ackley, Griewank, Rastrigin, Schwefel。各測(cè)試函數(shù)具體屬性如表1所示。
圖2 SMPSO算法流程圖Fig.2 SMPSO algorithm flowchart
表1 基準(zhǔn)測(cè)試函數(shù)Tab.1 Benchmark function
本文進(jìn)行了3組測(cè)試實(shí)驗(yàn):(a)子種群p3的參數(shù)w3、c31和c32的取值分析;(b)主種群參數(shù)c1、c2和c3的取值分析;(c)與其它改進(jìn)PSO算法的性能對(duì)比。為驗(yàn)證本文算法在不同的變量維度下的適用性,分別在10和30維的變量維數(shù)下進(jìn)行(a), (b)和(c)的實(shí)驗(yàn)。為了避免算法運(yùn)行的隨機(jī)性,以上所有實(shí)驗(yàn)均獨(dú)立運(yùn)行30次,最大函數(shù)迭代次數(shù)T均為1 000,粒子個(gè)數(shù)統(tǒng)一設(shè)置為50。算法的評(píng)價(jià)指標(biāo)為迭代得到的最優(yōu)解與真實(shí)的全局最優(yōu)解的適應(yīng)度值之差,稱為求解精度(AC),其計(jì)算方法如式(19)所示。
AC=|f(Pglobal-best)-f(xopt)|
(19)
式中:Pglobal-best表示算法迭代得到的最優(yōu)解;xopt表示真實(shí)的全局最優(yōu)解;f表示目標(biāo)函數(shù)。
由于在子種群p3中引入了3個(gè)需要預(yù)先設(shè)定的參數(shù),即參數(shù)組合w3、c31和c32; 因此需要對(duì)3個(gè)參數(shù)進(jìn)行取值分析。設(shè)置子種群p3的自我學(xué)習(xí)因子c31=2,社會(huì)學(xué)因子c32=2[22,23],并對(duì)慣性權(quán)值w3選取了7個(gè)不同數(shù)值。
表2給出了在w3取值不同的情況下,算法對(duì)10維和30維的5個(gè)函數(shù)的30次測(cè)試的最優(yōu)結(jié)果,其中每個(gè)函數(shù)最好的結(jié)果用黑體字標(biāo)出。
表2 子種群p3中w3取值不同的優(yōu)化結(jié)果Tab.2 Optimization result along with difference of w3 in subpopulation p3
從優(yōu)化結(jié)果來(lái)看,對(duì)于10維和30維的Griewank,Ackley,Schwefel函數(shù),在w3=0.5時(shí)SMPSO算法的最優(yōu)結(jié)果均優(yōu)于其它情況,表明w3=0.5為子種群p3慣性權(quán)值的最佳選擇。在實(shí)際應(yīng)用中,建議w3在[0,1]取值。本文的實(shí)驗(yàn)中,w3取0.5。
在主種群中引入了3個(gè)需要預(yù)先設(shè)定的參數(shù),即參數(shù)學(xué)習(xí)因子c1,c2和c3,因此需要對(duì)3個(gè)參數(shù)進(jìn)行取值分析。設(shè)置主種群的自我學(xué)習(xí)因子c1=2,社會(huì)學(xué)因子c2=2[22,23],對(duì)學(xué)習(xí)因子c3選取了10個(gè)不同的數(shù)值。
表3給出了在c3不同的情況下,算法對(duì)10維和30維的5個(gè)函數(shù)的30次測(cè)試的最優(yōu)結(jié)果,其中每個(gè)函數(shù)最好的結(jié)果用黑體字標(biāo)出。
表3 主種群c3取值不同的優(yōu)化結(jié)果Tab.3 Optimization result along with difference of c3 in master population
從優(yōu)化結(jié)果來(lái)看,對(duì)10維的基準(zhǔn)測(cè)試函數(shù),除Sphere函數(shù)外,在c3=1.4時(shí)SMPSO算法的最優(yōu)結(jié)果均優(yōu)于其它情況;對(duì)30維的Sphere,Rastrigin,Schwefel函數(shù),在c3=1.4時(shí)SMPSO算法的最優(yōu)結(jié)果均優(yōu)于其它情況。上述實(shí)驗(yàn)結(jié)果表明c3=1.4為主種群學(xué)習(xí)因子c3的最佳選擇。在實(shí)際應(yīng)用中,建議c3可在[1,2]取值。本文的實(shí)驗(yàn)中,c3取1.4。
為了測(cè)試算法的尋優(yōu)性能與適用性,對(duì)5個(gè)基準(zhǔn)函數(shù)的10維和30維問(wèn)題進(jìn)行測(cè)試。并與7種其它改進(jìn)PSO算法進(jìn)行對(duì)比,包括:PSO(原始粒子群算法)[24],WPSO(帶慣性權(quán)重的粒子群算法)[24],XPSO(帶有收縮因子的粒子群算法)[24],MiPSO[25],MaPSO[25],CLPSO[10]和RPCPSO[9]。其中,SMPSO算法子種群p3的參數(shù)組合設(shè)置為:w3=0.5,c31=2,c32=2;主種群學(xué)習(xí)因子參數(shù)的設(shè)置為:c1=2,c2=2,c3=1.4。本小節(jié)從優(yōu)化結(jié)果、排名和收斂特征曲線展開(kāi)討論和分析。
表4和表5分別為PSO,WPSO,XPSO,MiPSO,MaPSO,CLPSO,RPCPSO以及SMPSO算法對(duì)10維和30維的基準(zhǔn)測(cè)試函數(shù)尋優(yōu)的求解結(jié)果。以表格的形式分別記錄了30次實(shí)驗(yàn)的最優(yōu)值(Max)、平均值(Mean)和標(biāo)準(zhǔn)差(SD)。其中最好的運(yùn)行結(jié)果用黑體字標(biāo)出。
表4 10維函數(shù)的測(cè)試結(jié)果Tab.4 10 dimension function test result
表5 30維函數(shù)的測(cè)試結(jié)果Tab.5 30 dimension function test result
綜上分析可知,在優(yōu)化Sphere、Rastrigin、Griewank、Ackley、Schwefel函數(shù)時(shí),SMPSO算法求解結(jié)果的最優(yōu)值顯著優(yōu)于其它對(duì)比算法。同樣從平均值的統(tǒng)計(jì)結(jié)果也能觀察到與最優(yōu)值相似的結(jié)論,即本文算法大幅度提高了PSO算法的優(yōu)化能力。這得益于SMPSO算法采用的具有共生關(guān)系的主從群結(jié)構(gòu),從全局與局部提升了算法的搜索性能,同時(shí)自適應(yīng)變異策略的引入,增大了算法跳出局部最優(yōu)的能力。此外,本文算法所得結(jié)果的標(biāo)準(zhǔn)差在5個(gè)函數(shù)的測(cè)試中均比其它算法小很多,表明其結(jié)果具有更強(qiáng)的魯棒性,說(shuō)明SMPSO算法具有良好的全局動(dòng)態(tài)尋優(yōu)效果。無(wú)論從種群還是主種群,本文均選用了合適的參數(shù)組合,進(jìn)一步提高了算法的搜索性能和解集的多樣性。
為了更直接地比較各個(gè)算法,依據(jù)10維測(cè)試函數(shù)的優(yōu)化結(jié)果,對(duì)改進(jìn)的算法進(jìn)行排名,如表6所示。得出SMPSO算法最優(yōu),CLPSO算法次之,接下來(lái)的3個(gè)算法依次為RPCPSO,MiPSO,MaPSO。
表6 8種優(yōu)化算法基于優(yōu)化結(jié)果的排名Tab.6 8 optimization algorithms based on ranking of optimization result
收斂特征曲線圖反映優(yōu)化結(jié)果隨函數(shù)迭代次數(shù)變化的情況。圖3~圖5僅展示10維的Sphere函數(shù)和30維的Griewank,Rastrigin函數(shù)中算法優(yōu)化結(jié)果收斂特征曲線,并以求解精度(AC)的對(duì)數(shù)形式呈現(xiàn)。觀察圖3~圖5的收斂特征曲線可知,SMPSO算法尋優(yōu)能力優(yōu)于其它算法。在迭代初期,算法具有較大的搜索空間,SMPSO算法與其他算法的求解結(jié)果差異較大,SMPSO算法的求解精度明顯較高。這得益于SMPSO算法從種群強(qiáng)大的全局搜索能力,給予了主種群尋找最優(yōu)解的優(yōu)勢(shì)搜索領(lǐng)域。在迭代后期,當(dāng)搜索空間逐漸減小,算法之間的差異減小,但SMPSO算法的求解精度仍具有明顯優(yōu)勢(shì)。主要是因?yàn)橹鞣N群的局部精確搜索能力,使算法在小范圍的搜索空間內(nèi),能夠最快得發(fā)現(xiàn)最優(yōu)解。
觀察圖3中SMPSO算法的收斂特征曲線可知,在400次迭代以后,算法尋優(yōu)趨勢(shì)減緩,逐漸陷入局部最優(yōu);但通過(guò)觀察之后的收斂趨勢(shì)發(fā)現(xiàn),算法在520次以后的迭代中跳出了局部最優(yōu)的狀態(tài)。
同樣在圖4中也觀察到了同樣的結(jié)果,在算法600到1 000次迭代的收斂曲線中,算法產(chǎn)生兩次跳出局部最優(yōu)的動(dòng)作。雖然在部分函數(shù)后期迭代中,SMPSO算法的尋優(yōu)趨勢(shì)減緩,但自適應(yīng)變異策略引導(dǎo)算法不斷跳出局部最優(yōu)狀態(tài),提高了算法的尋優(yōu)性能,從而使SMPSO算法具有優(yōu)于對(duì)比算法的尋優(yōu)結(jié)果。
相對(duì)其它改進(jìn)的粒子群算法,SMPSO算法的主從群結(jié)構(gòu)從多樣性和搜索性能上使算法性能提升,自適應(yīng)變異策略的引入提高了算法跳出局部最優(yōu)的能力,實(shí)現(xiàn)了全局與局部搜索能力的同時(shí)加強(qiáng),因而算法具有更高的搜索效率。
圖3 10維的Sphere函數(shù)收斂特征曲線Fig.3 Convergence characteristic curves of 10 dimension Sphere function
通過(guò)與多種改進(jìn)PSO算法實(shí)驗(yàn)結(jié)果的對(duì)比,本文提出的SMPSO算法具有一定的尋優(yōu)優(yōu)勢(shì)。在大多數(shù)的測(cè)試函數(shù)中,SMPSO算法求解精度均高于對(duì)比算法,進(jìn)一步驗(yàn)證了SMPSO算法的有效性。
圖4 30維的Ackley函數(shù)收斂特征曲線Fig.4 Convergence characteristic curves of 30 dimension Ackley function
圖5 30維的Griewank函數(shù)收斂特征曲線Fig.5 Convergence characteristic curves of 30 dimension Griewank function
本文從對(duì)多種群粒子群算法的研究入手,提出了一種基于速度交流的共生多種群粒子群算法(SMPSO)。在SMPSO算法中,針對(duì)算法的搜索性能和求解精度等問(wèn)題,建立了具有共生關(guān)系的主從群結(jié)構(gòu),平衡了算法的全局與局部搜索能力。利用速度交流機(jī)制對(duì)從種群進(jìn)行劃分,該機(jī)制有效地提高了從種群的全局搜索性能。通過(guò)設(shè)定合適的慣性權(quán)值與加速因子的參數(shù)組合和引入自適應(yīng)變異策略,進(jìn)一步提升了主從群的搜索性能和跳出局部最優(yōu)的能力。仿真實(shí)驗(yàn)表明SMPSO算法比其它改進(jìn)算法在求解精度、搜索能力、穩(wěn)定性等方面具有一定的優(yōu)勢(shì),是一種高效的PSO改進(jìn)算法。