鄧 浩,李均利,胡 凱,李 升,林秀麗
(四川師范大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,成都 610101)
粒子群算法(Particle Swarm Optimization,PSO)是基于群體智能的全局優(yōu)化算法[1],有著廣泛的應(yīng)用[2-4].粒子群算法中的參數(shù)控制著粒子的行為,在不同參數(shù)下粒子會(huì)展現(xiàn)不同的行為模式[5].PSO的參數(shù)設(shè)置可以分為參數(shù)整定和參數(shù)控制兩種,前者是針對(duì)具體問(wèn)題確定合適的常數(shù)值,后者是在運(yùn)行過(guò)程中改變參數(shù)的值.根據(jù)問(wèn)題類型為算法設(shè)置合適的參數(shù)能夠取得好的效果,但是如果無(wú)法預(yù)知問(wèn)題性質(zhì),預(yù)設(shè)合適的參數(shù)就很困難.合適的參數(shù)控制方式可以提高算法的通用性能,所以尋找有效的參數(shù)控制方式很重要.參數(shù)控制有如下幾種形式:
時(shí)變規(guī)則:基于迭代次數(shù)改變參數(shù).其主要思想是在前期鼓勵(lì)探索,后期鼓勵(lì)開(kāi)發(fā).如在標(biāo)準(zhǔn)粒子群算法中,通過(guò)對(duì)慣性權(quán)重的線性遞減變化,使得粒子的速度隨著迭代次數(shù)的增加逐漸降低,增強(qiáng)了算法的收斂性.文獻(xiàn)[6]令認(rèn)知系數(shù)從2.5-0.5變化,社會(huì)系數(shù)從0.5-2.5變化,使算法前期傾向于探索,后期傾向于開(kāi)發(fā).
參數(shù)適應(yīng):將搜索過(guò)程中的反饋信息映射到參數(shù)上.如文獻(xiàn)[7]根據(jù)粒子平均間距調(diào)整慣性權(quán)重,提出一種非線性改變慣性權(quán)重的策略.文獻(xiàn)[8]根據(jù)感知個(gè)體適應(yīng)值的優(yōu)劣調(diào)整慣性權(quán)重,提出一種自調(diào)節(jié)PSO算法.文獻(xiàn)[5]在搜索過(guò)程中通過(guò)定量度量粒子位置的自相關(guān)性、預(yù)期移動(dòng)距離、搜索的焦點(diǎn)的來(lái)改變粒子的參數(shù).文獻(xiàn)[9]根據(jù)粒子和全局最優(yōu)粒子間的距離來(lái)調(diào)整粒子的參數(shù),使得全局最優(yōu)附近的粒子承擔(dān)開(kāi)發(fā)的任務(wù),其他粒子承擔(dān)探索的任務(wù).
參數(shù)自適應(yīng):將參數(shù)編碼為個(gè)體,利用一些規(guī)則調(diào)整參數(shù).如文獻(xiàn)[10]賦予粒子不同的參數(shù),根據(jù)粒子的更新頻率,讓粒子學(xué)習(xí)最優(yōu)粒子的參數(shù),以達(dá)到自適應(yīng)的目的.文獻(xiàn)[11]使用具有擴(kuò)展社會(huì)學(xué)習(xí)的速度更新公式,并將粒子分為3個(gè)種群,分別賦予具有開(kāi)發(fā)、平衡、探索3種能力的參數(shù)設(shè)置.在這個(gè)過(guò)程,根據(jù)種群的表現(xiàn),動(dòng)態(tài)的調(diào)整粒子所屬的種群.文獻(xiàn)[12]根據(jù)適應(yīng)度排序?qū)⒘W臃譃閮蓚€(gè)種群,使用不同的更新公式更新這兩個(gè)種群.
對(duì)粒子群算法鄰域的研究集中在鄰域拓?fù)浣Y(jié)構(gòu)和鄰域搜索能力上,而個(gè)體的鄰域內(nèi)其他個(gè)體的相關(guān)信息可能會(huì)隱藏著這一區(qū)域的環(huán)境信息,如文獻(xiàn)[13]提出了利用鄰域差分和協(xié)方差信息的差分算法.鄰域內(nèi)粒子的其他信息也有挖掘的潛力,可以用來(lái)更新粒子的參數(shù).
本文利用鄰域粒子的適應(yīng)度變化信息和參數(shù)信息來(lái)實(shí)現(xiàn)參數(shù)自適應(yīng),提出了學(xué)習(xí)鄰域參數(shù)的粒子群算法(Particle swarm optimization with learning neighborhood parameter,LNPPSO).將種群中的個(gè)體賦予不同的參數(shù),根據(jù)鄰域粒子的適應(yīng)度變化信息和參數(shù)信息來(lái)更新參數(shù);同時(shí)對(duì)所有粒子施加單維速度變異;基于強(qiáng)化的思想,設(shè)計(jì)了一種概率自適應(yīng)策略,在更新過(guò)程中使用基于策略有效性的概率自適應(yīng)方法來(lái)調(diào)整更新策略,自適應(yīng)的平衡探索和開(kāi)發(fā).
Kennedy和Eberhart于1995年提出粒子群算法(PSO).Shi等在1998年將慣性權(quán)重概念引入PSO算法,一般將這個(gè)版本稱為標(biāo)準(zhǔn)PSO算法.其更新公式如下:
Vi,d=wVi,d+c1r1(pbi,d-Xi,d)+c2r2(gbi,d-Xi,d)
(1)
Xi,d=Xi,d+Vi,d
(2)
公式(1)中,Vi,d表示第i個(gè)粒子的第d維,w調(diào)節(jié)粒子原有速度對(duì)新速度的影響,稱為慣性權(quán)重,c1、c2調(diào)節(jié)新速度對(duì)個(gè)體經(jīng)驗(yàn)和社會(huì)經(jīng)驗(yàn)的學(xué)習(xí)率,稱為學(xué)習(xí)因子,pbi,d、gbi,d、Xi,d分別表示第i粒子歷史最優(yōu)值第d維、全局歷史最優(yōu)值第d維、第i個(gè)粒子位置第d維,r1、r2為獨(dú)立的隨機(jī)數(shù),取值范圍(0,1).
w隨著迭代次數(shù)線性減小:
(3)
式中,wmax為w的上限,wmin為w的下限,t為當(dāng)前迭代的次數(shù),tmax為迭代次數(shù)上限.wmax和wmin的值通常設(shè)置為0.9和0.4.
在粒子群算法中,參數(shù)w、c1、c2通過(guò)影響粒子的速度來(lái)影響粒子的運(yùn)動(dòng).其中,w控制原來(lái)速度影響的大小,c1影響對(duì)自己經(jīng)歷過(guò)的歷史最優(yōu)點(diǎn)的學(xué)習(xí),c2影響對(duì)全局最優(yōu)點(diǎn)的學(xué)習(xí).而更多的影響來(lái)源能帶來(lái)更多的行為的多樣性.在點(diǎn)X處的粒子的速度V受不同數(shù)量的點(diǎn)影響下,更新之后得到的速度的可能區(qū)域變化如圖1所示.

圖1 合成速度的可能范圍
Vk+1=Vk+r1(P1-X)
(4)
Vk+1=Vk+r1(P1-X)+r2(P1-X)
(5)
Vk+1=Vk+r1(P1-X)+r2(P1-X)+r3(P1-X)
(6)
圖1(a)、圖1(b)和圖1(c)分別對(duì)應(yīng)的速度更新公式為公式(4)-公式(6),分別為受1個(gè)點(diǎn)、2個(gè)點(diǎn)、3個(gè)點(diǎn)影響.圖中陰影為在對(duì)應(yīng)更新公式情況下,并且任意兩向量合成范圍不被其他任意兩向量合成范圍完全覆蓋的情況下,合成速度的可能范圍.可以看出,影響來(lái)源越多,合成的速度的可能范圍越大,粒子的潛在探索區(qū)域也就越大.而向鄰域內(nèi)的優(yōu)秀粒子學(xué)習(xí),可以促進(jìn)粒子向局部最優(yōu)前進(jìn).所以將標(biāo)準(zhǔn)粒子群算法擴(kuò)展為:
Vi,d=ci,1Vi,d+ci,2r1(pbi,d-Xi,d)+
ci,2r2(gbi,d-Xi,d)+ci,4r3(lbi,d-Xi,d)
(7)
式中,ci,1為第i個(gè)粒子的第1個(gè)參數(shù),對(duì)應(yīng)標(biāo)準(zhǔn)PSO中的慣性權(quán)重,ci,2為第i個(gè)粒子的第2個(gè)參數(shù),對(duì)應(yīng)標(biāo)準(zhǔn)PSO中的個(gè)體經(jīng)驗(yàn)學(xué)習(xí)率,ci,3為第i個(gè)粒子的第3個(gè)參數(shù),對(duì)應(yīng)標(biāo)準(zhǔn)PSO中的全局經(jīng)驗(yàn)學(xué)習(xí)率,ci,4為第i個(gè)粒子的第4個(gè)參數(shù),控制局部經(jīng)驗(yàn)學(xué)習(xí)率,lbi,d為動(dòng)態(tài)鄰域下的鄰域內(nèi)所有粒子的歷史最優(yōu)值最優(yōu)的解.r1、r2、r3為獨(dú)立的隨機(jī)數(shù),取值范圍(0,1).在初始化時(shí)對(duì)每個(gè)粒子,在給定參數(shù)范圍內(nèi)隨機(jī)賦予參數(shù).
在PSO迭代的過(guò)程中,為了找到最優(yōu)值,在不同的位置區(qū)域可能會(huì)有不同的合適的值.如圖2所示,黑色虛線為某一維函數(shù)的圖形,中間五星圖標(biāo)表示當(dāng)前粒子位置,左邊三角形圖標(biāo)表示粒子當(dāng)前個(gè)體歷史最優(yōu)位置,右邊圓點(diǎn)圖標(biāo)表示當(dāng)前找到的全局最優(yōu)位置.對(duì)標(biāo)準(zhǔn)PSO算法,不考慮慣性速度,如果c1>c2,則有利于粒子前進(jìn)到更低的位置,但是可能會(huì)陷入局部極值;如果c1 圖2 不同的位置不同參數(shù)會(huì)有不同的效果 從粒子的鄰域粒子信息中有可能會(huì)找到當(dāng)前粒子合適參數(shù)的線索.如某一粒子所處位置鄰近的優(yōu)秀粒子的平均參數(shù)可能代表了當(dāng)前區(qū)域的合適參數(shù).本文提出方法如下: 3.2.1 參數(shù)適應(yīng)度評(píng)價(jià)方法 1)周期性評(píng)價(jià):考慮到參數(shù)對(duì)粒子的影響可能要在幾代時(shí)間內(nèi)才能體現(xiàn)出來(lái),所以設(shè)置每cycle代為一個(gè)評(píng)價(jià)周期,每過(guò)一個(gè)周期對(duì)參數(shù)進(jìn)行一次評(píng)價(jià). 2)參數(shù)適應(yīng)度定義:對(duì)粒子的位置,期望的表現(xiàn)是有更優(yōu)的適應(yīng)度值,而對(duì)粒子的參數(shù),期望的表現(xiàn)是在該參數(shù)的指導(dǎo)下粒子的位置能更好.但是在一個(gè)周期結(jié)束時(shí),粒子的所處位置不一定是它在這個(gè)周期里經(jīng)歷過(guò)的最佳位置,而個(gè)體歷史最優(yōu)的變化則能體現(xiàn)出參數(shù)的優(yōu)劣,所以定義參數(shù)適應(yīng)度值為粒子個(gè)體歷史最優(yōu)pb的變化量. PCk=pbk-pbk-cycle (8) 式中PCk為第k代各粒子的參數(shù)適應(yīng)度向量(此處k應(yīng)為cycle的整數(shù)倍),pbk為第k代各粒子的個(gè)體歷史最優(yōu)向量,pbk-cycle為上一個(gè)周期結(jié)束的各粒子的個(gè)體歷史最優(yōu)向量. 3.2.2 參數(shù)學(xué)習(xí)方法 將粒子按照粒子適應(yīng)度和參數(shù)適應(yīng)度從優(yōu)到劣的排序,得到兩種排序,對(duì)粒子適應(yīng)度排名Erank在后2/3并且參數(shù)適應(yīng)度排名PCrank也在2/3的粒子的參數(shù)按概率執(zhí)行以下3個(gè)操作之一,并使用節(jié)3.4的3種操作的概率自適應(yīng)方式: 1)操作1:整體學(xué)習(xí) 參數(shù)適應(yīng)度較優(yōu)的鄰域粒子的平均參數(shù)可以在一定程度上反應(yīng)出在這一區(qū)域內(nèi)粒子的合適參數(shù).使粒子根據(jù)鄰域內(nèi)參數(shù)適應(yīng)度排名前5個(gè)粒子的平均參數(shù)更新自身的參數(shù): Ci=Ci+r(mean(CnebPCrank(1∶5))-Ci) (9) 式中Ci=[ci,1,ci,2,ci,3,ci,4]表示粒子i的參數(shù)向量,r為(0,1)之間的隨機(jī)數(shù),nebPCrank(1∶5)表示當(dāng)前粒子的鄰域里參數(shù)適應(yīng)度排名前5個(gè)的粒子,本文中鄰域范圍neb為10個(gè)粒子.mean(cnebPCrank(1∶5))表示鄰域內(nèi)參數(shù)適應(yīng)度排名前5個(gè)粒子的平均參數(shù). 2)操作2:?jiǎn)蝹€(gè)參數(shù)學(xué)習(xí) 鄰域內(nèi)較優(yōu)粒子的標(biāo)準(zhǔn)差較小的參數(shù)能反映出平均參數(shù)的可信度.所以使粒子根據(jù)其鄰域內(nèi)參數(shù)適應(yīng)度排名前5個(gè)粒子中標(biāo)準(zhǔn)差最小的參數(shù)上的平均參數(shù)來(lái)更新自身的參數(shù): Ci,j=Ci,j+r(mean(cnebPCrank(1∶5),j)-Ci,j) (10) 式中,ci,j表示第i個(gè)粒子的第j參數(shù)(j∈[1,2,3,4]),r為(0,1)之間的隨機(jī)數(shù),mean(cnebPCrank(1∶5),j)表示當(dāng)前的鄰域里參數(shù)適應(yīng)度排名前兩個(gè)粒子的第j個(gè)參數(shù)的平均值,其中j為nebPCrank(1∶5)標(biāo)準(zhǔn)差最小的那個(gè)參數(shù). 3)操作3:參數(shù)重置 操作1和操作2會(huì)使參數(shù)的多樣性降低,為了增強(qiáng)參數(shù)的多樣性,對(duì)一部分粒子的參數(shù)進(jìn)行重置: ci=R°(cmax-cmin)+cmin (11) 式中,R表示一個(gè)4維的隨機(jī)向量,各維度取值范圍為(0,1).“° ”為Hadamard積,即對(duì)應(yīng)元素相乘.Cmax為各個(gè)參數(shù)變化的最大值,Cmin為各個(gè)參數(shù)變化的最小值,Cmax=[1,2,2,2],Cmin=[0,0,0,0]. 3.3 粒子速度變異 為了增強(qiáng)跳出局部極值的能力,對(duì)粒子施加單維速度變異,即隨機(jī)重置粒子的某一維速度(包括速度方向),并使用節(jié)3.4的兩種操作的概率自適應(yīng)方式: Vi,rd=r(Vmax,rd-Vmin,rd)+Vmin,rd,rd∈(1,D) (12) 式中Vi,rd表示第i個(gè)粒子的隨機(jī)一維,Vmax表示速度上限,Vmin表示速度下限,本文速度的限制為. (13) Vmin=-Vmax (14) 式中Xmax為定義域各維度上限組成的向量,Xmin為定義域各維度下限組成的向量. 3.4 概率閾值自適應(yīng) 1)如果對(duì)一類對(duì)象按概率閾值有pv兩種操作: (15) 則可以根據(jù)有無(wú)操作1的有效性來(lái)決定概率閾值pv.在本文中,定義粒子或操作的有效性為:粒子或執(zhí)行了某種操作的粒子,在一個(gè)周期中,適應(yīng)度不劣于前一代全局最優(yōu)值的比率.計(jì)算方式如下: (16) (17) 式中,L11、L12為操作1、操作2的對(duì)象粒子的適應(yīng)度不劣于前一代全局最優(yōu)值的個(gè)數(shù),Pn11、Pn12為操作1、操作2的對(duì)象粒子的個(gè)數(shù),RR11、RR12為各個(gè)操作修正后的有效率,式中分子分母都加0.0001是為了防止分母為0. 然后再根據(jù)有效性的比值按比例修正概率閾值pv的取值: (18) 設(shè)置pv的范圍為[0.05,0.95]. pv=max(pv,0.05) (19) pv=min(pv,0.95) (20) 公式(18)中分子使用操作1的有效率RR11.如果RR12=0,則當(dāng)RR11=0時(shí),pv會(huì)下降一半,當(dāng)RR11≠0時(shí),pv會(huì)向上限靠近.在本文中,對(duì)所有粒子按這種概率自適應(yīng)執(zhí)行速度單維變異(見(jiàn)公式(12)),操作1為不進(jìn)行單維速度變異,操作2為進(jìn)行單維速度變異,并且初始概率值設(shè)為0.95.這樣有個(gè)好處就是,在開(kāi)始的時(shí)候只有很少的粒子進(jìn)行單維速度變異,以減少速度變異對(duì)開(kāi)發(fā)的影響,而當(dāng)單維速度變異出現(xiàn)有效粒子,或者無(wú)速度變異粒子的有效性為0時(shí),概率閾值才會(huì)開(kāi)始降低,更多的粒子執(zhí)行速度變異以擴(kuò)展探索范圍. 2)如果對(duì)一類對(duì)象按概率閾值p1、p2有3種操作: (21) 式中r為(0,1)范圍內(nèi)的隨機(jī)數(shù).則可以根據(jù)3種操作的有效性按比例修正概率閾值p1、p2計(jì)算方式如下: (22) (23) 式中,上式中RR3為各個(gè)操作修正后的有效率,計(jì)算方式同RR1、RR2.記操作1-操作3對(duì)應(yīng)粒子的種群為Pop21、Pop22、Pop23,對(duì)應(yīng)的有效個(gè)數(shù)為L(zhǎng)21、L22、L23. p1、p2的范圍為(0.05,0.95),超限后的處理如下: p1=max(p1,0.05) (24) p1=min(p1,0.95) (25) p2=max(p2,0.05) (26) p2=min(p1+p2,0.95)-p1 (27) 在本文中,對(duì)所有粒子按這種概率自適應(yīng)執(zhí)行速度單維變異,操作1為整體參數(shù)學(xué)習(xí)(見(jiàn)公式(9)),操作2為進(jìn)行單維參數(shù)學(xué)習(xí)(見(jiàn)公式(10)),操作3為參數(shù)重置(見(jiàn)公式(11)),并且初始概率值設(shè)為p2=0.5,p2=0.5,這樣有個(gè)好處就是,當(dāng)操作1和操作2的有效性足夠時(shí)候,操作3的觸發(fā)概率極低,種群在參數(shù)上的多樣性減少,開(kāi)發(fā)能力增加,當(dāng)操作1和操作2的有效性趨于0的時(shí)候,操作3的觸發(fā)概率升高,種群會(huì)在參數(shù)上的多樣性會(huì)增加,探索能力也會(huì)增加. 算法. 輸入:目標(biāo)函數(shù)f,維度D,最大迭代次數(shù)M,搜索空間(l,u)種群規(guī)模PopSize,參數(shù)變化范圍Cmax、Cmin,鄰域大小neb,初始概率閾值pv、p1、p2 輸出:最優(yōu)解 1.隨機(jī)初始化粒子群位置X、速度v、參數(shù)C,種群Pop11、Pop12、Pop21、Pop21、Pop23置空 2.評(píng)估個(gè)體適應(yīng)值e,迭代器item=0 3.更新全局最優(yōu)gb, 個(gè)體歷史最優(yōu)pb,個(gè)體鄰域歷史最優(yōu)lpb. 4.while(item 5.按公式(7)、公式(2)更新粒子速度和位置 6.評(píng)價(jià)粒子適應(yīng)度e 7.Fori=1:PopSize 計(jì)算各種群粒子的有效性 8. Ifei>=gbandiin Popn(n∈[11,12,21,22,23]) 9.Ln=Ln+1 10. end if 11. end for 12.更新gb、pb、lpb 13.if mod(item,cycle)==0 14.PCk=pbk-pbk-cycle 15. 按照粒子適應(yīng)度和變化值分別排序,得到每個(gè)粒子的排序索引Erank、PCrank. 16. 按公式(16)、(17)計(jì)算各個(gè)操作有效率(操作1為不進(jìn)行單維速度變異,操作2為進(jìn)行單維速度變異),按公式(16)、(22)、(23)修正各操作概率閾值pv、p1、p2 17. 置空種群Pop11、Pop12、Pop21、Pop21、Pop23 18. forii=1:ps 參數(shù)學(xué)習(xí) 20.r=rand(0,1) 21. ifr 22. Pop21=[Pop21,ii] 23. 按公式(9)更新粒子參數(shù) 24. else ifr 25. Pop22=[Pop22,ii] 26. 按公式(10)更新粒子參數(shù) 27. else 28. Pop23=[Pop23,ii] 29. 按公式(11)參數(shù)重置 30. end if 31. end if 32. if rand(0,1) 33. Pop11=[Pop11,ii] 34. else 35. Pop12=[Pop12,ii]; 36. 按公式(12)做速度變異. 37. end if 38. end for 39.end if 40.item++; 41.END while; 實(shí)驗(yàn)采用的基準(zhǔn)測(cè)試函數(shù)在表1中列出,其中f1~f5是單峰函數(shù),f6~f10為多峰函數(shù).搜索區(qū)間設(shè)置為[-100,100]D,所有函數(shù)在此區(qū)間內(nèi)的最小值都為0. 表1 10個(gè)基準(zhǔn)測(cè)試函數(shù) 本節(jié)以函數(shù)f7為例討論概率閾值的變化情況,為方便說(shuō)明,設(shè)置周期為15代,種群數(shù)量PopSize=100,最大迭代次數(shù)M=1000. 圖3(a)是LNPPSO算法在函數(shù)f7上的收斂曲線,圖3(b)為各個(gè)概率閾值的變化情況.可以看出,在15-60代之間全局最優(yōu)的更新處于停滯狀態(tài),同一時(shí)期速度變異閾值pv和參數(shù)學(xué)習(xí)閾值p1、p2急速下降;在60-300代之間,全局最優(yōu)值迅速下降,速度變異閾值逐漸上升趨于最大水平,參數(shù)學(xué)習(xí)閾值保持最小水平.這一時(shí)期粒子主要在速度變異和參數(shù)重置的作用下運(yùn)動(dòng),種群處于探索階段. 圖3 概率閾值的收斂和變化 在300代-600代之間,全局最優(yōu)緩慢下降,pv逐漸上升到頂部,速度變異影響減小,p2有小幅波動(dòng)但整體呈上升趨勢(shì),p1波動(dòng)幅度較大,說(shuō)明參數(shù)學(xué)習(xí)保持一定的有效性,而參數(shù)重置的有效性逐漸減小,種群處于開(kāi)發(fā)階段. 在600代左右,全局最優(yōu)已經(jīng)趨于0.同時(shí),pv、p1、p2均有較大幅度的下降然后上升直到700代左右,說(shuō)明無(wú)速度變異操作的粒子和參數(shù)學(xué)習(xí)操作粒子的有效性下降到0,激活了速度變異和參數(shù)重置操作,種群中部分粒子出現(xiàn)了短暫的探索行為.在800代左右,p1、p2也發(fā)生了較大幅度的下降,說(shuō)明這一時(shí)期兩個(gè)參數(shù)學(xué)習(xí)操作的有效性下降到0,激活了參數(shù)重置操作,種群中部分粒子出現(xiàn)了短暫的探索行為. 當(dāng)種群無(wú)速度變異粒子的有效性為0時(shí),速度變異的概率會(huì)增加,當(dāng)種群兩種參數(shù)學(xué)習(xí)有效性為0時(shí),參數(shù)重置的概率會(huì)增加,這種概率自適應(yīng)設(shè)計(jì)可以自動(dòng)平衡開(kāi)發(fā)和探索. 比較在參數(shù)學(xué)習(xí)中有參數(shù)重置和無(wú)參數(shù)重置的情況,如圖4所示. 圖4(a)是無(wú)參數(shù)重置操作算法在函數(shù)F7上迭代過(guò)程中的各粒子參數(shù)標(biāo)準(zhǔn)差的變化情況,整體呈縮小趨勢(shì).圖4(b)是有參數(shù)重置操作的情況,在0-800代左右標(biāo)準(zhǔn)差保持逐漸下降的波動(dòng)趨勢(shì),C1在800代之后有小幅的上升并保持穩(wěn)定;C2、C3、C4在0-300代之間比較穩(wěn)定,在300代-600代之間下降,在600代-700之間上升,然后下降到800代,在800代左右開(kāi)始又逐漸上升,和對(duì)照?qǐng)D3(b)可以看出,參數(shù)標(biāo)準(zhǔn)差的上升都是受參數(shù)重置影響.參數(shù)重置操作能增加參數(shù)的多樣性. 圖4 參數(shù)標(biāo)準(zhǔn)差變化 1)求解結(jié)果 表2列出了5種算法在10個(gè)測(cè)試函數(shù)上的運(yùn)行30次所得結(jié)果的平均值和標(biāo)準(zhǔn)差,在均值上加粗的結(jié)果表示對(duì)應(yīng)算法在對(duì)應(yīng)函數(shù)上取得最優(yōu)均值結(jié)果.LNPPSO算法在7個(gè)函數(shù)上取得了最優(yōu)均值結(jié)果,其中3個(gè)為單峰函數(shù),4個(gè)為多峰函數(shù).FDO在兩個(gè)單峰函數(shù)上取得最優(yōu)均值結(jié)果,MSMPSO在1個(gè)多峰函數(shù)上取得最優(yōu)均值結(jié)果.從最優(yōu)均值看,LNPPSO算法在單峰和多峰函數(shù)上均有良好表現(xiàn),整體優(yōu)于對(duì)比算法. 表2 5種算法的結(jié)果 2)T檢驗(yàn)結(jié)果 對(duì)各個(gè)算法的結(jié)果進(jìn)行T檢驗(yàn),結(jié)果在表3中列出.“=”、“-”、“+”分別表示在T檢驗(yàn)下LNPPSO算法對(duì)相應(yīng)算法的均值結(jié)果處于差異不顯著、顯著劣于、顯著優(yōu)于3種狀態(tài),其數(shù)量分別用S、W、B表示.LNPPSO算法對(duì)PSO算法、HFPSO算法、FDO算法、MSMPSO算法的B-W得分分別為7、7、5、3,均大于0,并且只在函數(shù)f3上顯著劣于FDO算法,在T檢驗(yàn)下LNPPSO算法具有更好的綜合性能. 表3 LNPPSO算法對(duì)其他算法的T檢驗(yàn)結(jié)果 3)F檢驗(yàn)結(jié)果 對(duì)各個(gè)算法在各個(gè)函數(shù)上的結(jié)果的均值排名進(jìn)行F檢驗(yàn),結(jié)果如表4所示,排名均值為算法在各函數(shù)上排名的均值,并且分為所有函數(shù)、單峰函數(shù)、多峰函數(shù)3種情況進(jìn)行分析,卡方值為對(duì)應(yīng)的統(tǒng)計(jì)值,P值為對(duì)應(yīng)的概率值,如果P<0.05或P<0.1則可以認(rèn)為在0.05或0.1水平5種算法的差異顯著,而排名情況則能說(shuō)明各個(gè)算法的優(yōu)劣. 從表4中可以看出,在所有函數(shù)、單峰函數(shù)、p值均小于0.05,在多峰函數(shù)上P值小于0.1,各個(gè)函數(shù)的結(jié)果存在顯著差異,并且在3種情況下LNPPSO算法排名均為第一.所以在F檢驗(yàn)下LNPPSO算法相比于其他算法,在給定的單峰和多峰函數(shù)上都有更好的表現(xiàn). 表4 LNPPSO算法對(duì)其他算法的F檢驗(yàn)結(jié)果 4)收斂情況 圖5為各算法在各函數(shù)上的0-200代之間的收斂曲線.為了方便對(duì)比,縱坐標(biāo)經(jīng)過(guò)了對(duì)數(shù)變換.由圖可見(jiàn),在函數(shù)f1、f7、f10之外的其他函數(shù)上都呈現(xiàn)出一種情況:在前期50代左右,LNPPSO收斂速度對(duì)PSO有所提升,但慢于其他算法,而在50代左右之后,LNPPSO收斂速度則快于其他算法.在f1上,LNPPSO的收斂速度比FDO稍慢,對(duì)比其他算法則符合前述情況.在函數(shù)f7、f10上,HFPSO收斂速度快于其他算法.前期LNPPSO的參數(shù)學(xué)習(xí)和速度變異著重于參數(shù)的適應(yīng)和搜索空間的搜索,延緩了群體的收斂,延長(zhǎng)了探索的時(shí)間,這不利于前期的快速收斂,但是有利于避免前期陷入局部極值,提高搜索精度. 圖5 函數(shù)收斂曲線 本文提出了一種學(xué)習(xí)鄰域參數(shù)的粒子群算法,將種群中的個(gè)體賦予不同的參數(shù),根據(jù)鄰域粒子的適應(yīng)度變化信息和參數(shù)信息來(lái)更新粒子參數(shù):讓處于特定區(qū)域的粒子學(xué)習(xí)其鄰域內(nèi)的優(yōu)秀粒子的參數(shù);同時(shí)對(duì)所有粒子施加單維速度變異;在更新過(guò)程中根據(jù)個(gè)體歷史最優(yōu)的更新情況來(lái)自適應(yīng)的調(diào)整概率閾值.算法前期著重于參數(shù)的適應(yīng)和搜索空間的探索,所以前期收斂速度較慢,但有利于提高搜索精度.在10個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)上的實(shí)驗(yàn)結(jié)果表明:與對(duì)應(yīng)的算法相比,LNPPSO前期著重于參數(shù)的適應(yīng)和搜索空間的探索,收斂速度提升不明顯,但中后期收斂速度得到明顯提升,搜索結(jié)果具有更好的精度,在單峰函數(shù)和多峰函數(shù)上都有很好的表現(xiàn).在今后的工作中,我們將進(jìn)一步研究利用鄰域信息來(lái)提升算法效果的方法.
4 數(shù)值實(shí)驗(yàn)
4.1 測(cè)試函數(shù)

4.2 概率閾值變化

4.3 參數(shù)變化情況

4.4 對(duì)比其他算法





5 結(jié) 論