李 真,王 帆,王冉珺
(1.中國科學(xué)院 光電技術(shù)研究所,成都 610209; 2.中國科學(xué)院大學(xué),北京 100049;3.中國科學(xué)院 空間光電精密測量技術(shù)重點(diǎn)實(shí)驗(yàn)室,成都 610209;4.中國科學(xué)院 西安光學(xué)精密機(jī)械研究所,西安 710000;5.中國科學(xué)院 空間精密測量技術(shù)重點(diǎn)實(shí)驗(yàn)室,西安 710000)
群體智能算法[1]如蟻群算法[2]、鯊魚算法[3]、蜂群算法[4-5]、遺傳算法[6-8]、粒子群算法[9-11]近幾年逐漸成為學(xué)者們研究的焦點(diǎn),由于粒子群算法(PSO,particle swarm optimization)易于實(shí)現(xiàn)且復(fù)雜度相對較小,已廣泛應(yīng)用于多個不同的工程領(lǐng)域[12-13],但粒子群算法存在一個天然缺陷,就是其在搜索的過程當(dāng)中,易陷入局部最優(yōu),即最終通過粒子群算法找到的值與全局最優(yōu)值有一定的差距,針對此缺點(diǎn)許多學(xué)者提出了許多改進(jìn)策略。文獻(xiàn)[14]將提出將遺傳算法與粒子群算法結(jié)合使算法能夠快速收斂,文獻(xiàn)[15]將粒子群算法的位置更新公式進(jìn)行改進(jìn),增強(qiáng)其搜索能力,文獻(xiàn)[16]將混沌策略加入粒子群算法當(dāng)中,改善了其易陷入局部最優(yōu)的缺點(diǎn)。文獻(xiàn)[17]對粒子群算法的參數(shù)進(jìn)行調(diào)整,平衡全局和局部的搜索能力.
本文同樣針對粒子群算法易陷入局部最優(yōu)的缺點(diǎn),對粒子群算法進(jìn)行改進(jìn),由此提出了一種改進(jìn)的粒子群優(yōu)化算法(PSO_GWO),主要改進(jìn)策略包括最差粒子進(jìn)行進(jìn)化策略和對最優(yōu)粒子進(jìn)行擾動的策略,以及結(jié)合灰狼算法搜索能力強(qiáng)[18]的優(yōu)點(diǎn),將灰狼算法的優(yōu)勢引入粒子群算法中,并且選取了9個常用的標(biāo)準(zhǔn)測試函數(shù)進(jìn)行測試,從收斂速度和尋優(yōu)精度兩個方面進(jìn)行了對比,仿真結(jié)果表明所提算法有效。
粒子群算法(PSO)是1995年Kennedy[11]提出的通過仿照鳥群尋找食物的過程的一種進(jìn)化算法,其基本思想是將粒子看作沒有體積和質(zhì)量的個體,每個粒子都有速度和位置兩個特征,每個粒子在每次迭代過程中朝著粒子群全局最優(yōu)和自身歷史最優(yōu)趨近,不斷進(jìn)化尋找更優(yōu)值。粒子群算法迭代更新公式如下:
(1)
(2)
由于粒子群算法有易陷入局部最優(yōu)的缺點(diǎn),其陷入局部最優(yōu)的原因主要有兩點(diǎn):第一點(diǎn)是由于粒子群算法在迭代后期會發(fā)生聚集造成種群多樣性下降;第二點(diǎn)是在算法迭代更新公式中只考慮了個體經(jīng)驗(yàn)和最優(yōu)粒子的引導(dǎo)作用,同樣會導(dǎo)致算法出現(xiàn)多樣性下降和早熟收斂的問題。所以,本文為提高粒子群算法的搜索能力,提出了改進(jìn)粒子群算法(PSO_GWO),分別提出了最差改進(jìn)策略、最優(yōu)粒子擾動策略,并結(jié)合灰狼算法對迭代更新公式進(jìn)行改進(jìn),其中最差粒子改進(jìn)策略是為了提高粒子群算法在搜索過程中的多樣性,而最優(yōu)粒子擾動策略則是為了防止算法后期發(fā)生聚集導(dǎo)致搜索能力下降,灰狼算法的引進(jìn)是為了改進(jìn)現(xiàn)有粒子群算更新公式中所存在的缺點(diǎn)。
由于粒子群算法是一種模仿自然界中鳥群覓食的過程提出的一種智能優(yōu)化算法,受自然界中“優(yōu)勝劣汰”生存法則的啟發(fā),對粒子群算法中的進(jìn)行優(yōu)化,即在每次迭代過程中對適應(yīng)度最差的粒子進(jìn)行進(jìn)化,其主要目的是為了增加粒子群的多樣性增強(qiáng)算法的搜索能力,如果進(jìn)化后的粒子的適應(yīng)度優(yōu)于未進(jìn)化時的適應(yīng)度,則將進(jìn)化后的粒子替換掉未進(jìn)化的粒子,如果進(jìn)化后的粒子的適應(yīng)度比未進(jìn)化時的適應(yīng)度差,則保留未進(jìn)化時的粒子。對最差適應(yīng)度的粒子進(jìn)化策略具體如下:
x_worst(t)=argmax(fit(x1(t)),fit(x2(t))…
fit(xN(t)))
(3)
Eworst(t)=xi(t)+rand(xj(t)+xk(t))
(i≠j≠k∈1,…,N)
(4)
x_worst(t)=
(5)
式中,x_worst(t)表示第t次迭代時,N個粒子中最差適應(yīng)度的粒子,其中N表示粒子群的數(shù)量為N。式(4)中Eworst(t)表示進(jìn)化后的粒子的位置,其中i、j、k為在粒子種群中隨機(jī)選擇的3個互不相同的粒子。如式(5)所示,若進(jìn)化后的粒子的適應(yīng)度優(yōu)于未進(jìn)化的粒子的適應(yīng)度,則替換掉進(jìn)化前的粒子。若進(jìn)化后的粒子的適應(yīng)度比未進(jìn)化的粒子的適應(yīng)度差,則保留原有粒子。
在算法迭代后期,由于粒子群發(fā)生聚集導(dǎo)致粒子群的搜索能力下降,從而使得粒子群算法極易陷入局部最優(yōu)。粒子群算法的全局最優(yōu)位置gbest(t)在整個粒子群算法尋優(yōu)過程中對種群有很強(qiáng)的引導(dǎo)作用,全局最優(yōu)位置會引導(dǎo)所有粒子朝著全局最優(yōu)位置方向進(jìn)行,所以可以根據(jù)粒子群的聚集程度,對全局最優(yōu)位置進(jìn)行擾動,從而增大粒子群的全局搜索能力。
(6)
ri=|xi-avg_x|
(7)
(8)
式中,avg_x(j)表示粒子群中所有粒子的中心位置的第j維,i表示第i個粒子。式(7)中ri表示第i個粒子與粒子群中心位置的距離,式(8)表示所有粒子到中心位置的平均距離。若avg_r較大說明粒子群較為分散,即說明粒子群還具有很強(qiáng)的多樣性,此時只需要對全局最優(yōu)位置進(jìn)行較小的擾動,即增強(qiáng)粒子群的局部搜索能力。若avg_r較小說明粒子群較為密集,此時粒子群的多樣下降,甚至粒子群可能已經(jīng)陷入局部最優(yōu),此時需要對全局最優(yōu)位置進(jìn)行較大的擾動,使得全局最優(yōu)位置引導(dǎo)粒子群跳出局部最優(yōu),即增強(qiáng)粒子群全局搜索能力。對全局最優(yōu)位置的擾動策略如式(9),使用指數(shù)函數(shù)對全局最優(yōu)粒子進(jìn)行擾動,avg_r較小時,對應(yīng)的指數(shù)函數(shù)值較大,即產(chǎn)生的擾動較大。反之,對應(yīng)的指數(shù)函數(shù)值較小,即產(chǎn)生的擾動較小。
Nbest(t)=sign(rand-0.5)exp(-avg_r)
gbest(t)+gbest(t)
觀察圖4~圖8發(fā)現(xiàn),鋼筋連接件荷載-變形曲線的模擬結(jié)果略大于試驗(yàn)結(jié)果,偏心試件模擬結(jié)果和試驗(yàn)結(jié)果吻合較好。最大荷載值的相對誤差:試件H400-20為25%,試件H500-16為5.2%,其余試件為3%左右,偏移試件基本都為1%左右。通過ABAQUS建立模型得到的模擬結(jié)果整體較好。表3所示為有限元分析結(jié)果與試驗(yàn)結(jié)果的對比。
(9)
(10)
式中,若擾動后的粒子的適應(yīng)值優(yōu)于擾動前的粒子,則將擾動前的粒子替換為擾動后的粒子;反之,擾動前的粒子將不進(jìn)行替換。
最差粒子進(jìn)化策略提高了粒子群算法的多樣性,最優(yōu)粒子進(jìn)化策略幫助算法在迭代后期跳出局部最優(yōu),針對粒子群算法迭代更新公式中只考慮了個體經(jīng)驗(yàn)和最優(yōu)粒子的引導(dǎo)作用,導(dǎo)致算法出現(xiàn)多樣性下降和早熟收斂的問題。本文結(jié)合灰狼算法對其更新公式進(jìn)行改進(jìn),主要原因是灰狼算法在迭代更新時,采用精英群體引導(dǎo)策略,即選擇群體中最優(yōu)的3個精英個體進(jìn)行引導(dǎo)更新,而不再是粒子群算法中最優(yōu)的一個個體進(jìn)行引導(dǎo)。而且灰狼算法采用的是包圍式引導(dǎo)策略,即在搜索對過程中,其他粒子會包圍式的向精英群體進(jìn)行趨近。所以將粒子群算法與狼群算法進(jìn)行結(jié)合可以進(jìn)一步提高算法的搜索能力。
灰狼算法中最重要的搜索策略的包圍式搜索策略,其數(shù)學(xué)模型如下。
X(t+1)=Xp(t)-A×D
(11)
D=|C×Xp(t)-X(t)|
(12)
其中:t為迭代次數(shù),Xp(t)是獵物的位置向量,X(t)是灰狼的位置向量。其包圍示意圖如圖1所示。
圖1 灰狼算法包圍策略示意圖
C=2r1
(13)
(14)
其中:r1、r2為[0,1]之間的隨機(jī)數(shù),a為控制參數(shù)在[0,2]內(nèi)隨著迭代次數(shù)線性遞減,遞減公式如式(15):
(15)
由上述對灰狼算法的介紹中可知,灰狼算法在進(jìn)行引導(dǎo)時,其采用精英群體對種群進(jìn)行引導(dǎo),即選擇最優(yōu)的3個精英個體對種群進(jìn)行引導(dǎo)?;依欠N群中最優(yōu)的3個精英個體分別是最優(yōu)解α、次優(yōu)解β以及第三最優(yōu)解,3個精英個體均會根據(jù)(11)、(12)對整個種群進(jìn)行包圍式的引導(dǎo),其引導(dǎo)策略具體公式如下:
Dα=|C1×Xα(t)-X(t)|
(16)
Dβ=|C1×Xβ(t)-X(t)|
(17)
Dδ=|C1×Xδ(t)-X(t)|
(18)
其中:式(16)~(18)為群體中灰狼個體分別距離前3個最優(yōu)解α、β、δ的距離,式(19)~(21)為灰狼種群分別向3個精英個體移動的方向,式(22)為結(jié)合3個精英個體引導(dǎo)后,灰狼算法的更新公式:
X1(t)=Xα(t)-A1×Dα
(19)
X2(t)=Xβ(t)-A2×Dβ
(20)
X3(t)=Xδ(t)-A3×Dδ
(21)
(22)
為引入灰狼算法包圍式搜索的全局搜索能力強(qiáng)的優(yōu)點(diǎn),將粒子群算法的更新公式改為式(23),即在粒子群算法更新公式中添加灰狼算法的包圍式更新策略:
(23)
通過式(23)可以看出,在粒子群算法的位置更新過程中,保留了粒子群算法原本的個體經(jīng)驗(yàn)和最優(yōu)粒子的引導(dǎo),并且引入了灰狼算法更新策略X(t),其不僅包含了灰狼算法的精英群體的引導(dǎo)策略還包含了灰狼算法的包圍式搜索策略。通過引入灰狼算法,可以彌補(bǔ)粒子群算法在迭代更新公式中存在的不足。
為驗(yàn)證算法的有效性,采用表1中的9個測試函數(shù)進(jìn)行測試,這9個測試函數(shù)表示不同的參數(shù)空間并且擁有不同的特性,可以充分考察算法的尋優(yōu)能力,函數(shù)表達(dá)式和函數(shù)的搜索范圍以及9個函數(shù)的全局最優(yōu)值如表1所示,其中f1~f3、f6~f9為單峰函數(shù),表示只有一個最小值;f4~f5為多峰函數(shù),表示有多個局部最小值,將優(yōu)化算法在不同函數(shù)上進(jìn)行尋優(yōu),測試算法性能。
表1 9個不同的測試函數(shù)函數(shù)
將PSO、GWO、GAPSO、PSOd以及本文提出的改進(jìn)粒子群算法(PSO_GWO)分別對測試函數(shù)尋優(yōu),每種算法的種群規(guī)模均為N=20,算法的迭代次數(shù)均為Tmax=1 000,對每種算法重復(fù)運(yùn)行20次,對20次的結(jié)果求均值(mean)和方差(std)進(jìn)行對比,最終對5種不同算法的性能進(jìn)行了排名(rank),5種算法的尋優(yōu)精度對比以及最終的結(jié)果排名如表2所示。
由表2可知,將本文提出的改進(jìn)粒子群算法(PSO_GWO)與其他4種算法做對比時,函數(shù)f1、f2、f4、f5、f6、f8均可找到全局最優(yōu)值0,而標(biāo)準(zhǔn)粒子群(PSO)和改進(jìn)位置更新公式的粒子群算法(PSO_d)在對這6個函數(shù)進(jìn)行尋優(yōu)時,均未找到全局最優(yōu)值0,并且最終找到的值與全局最優(yōu)值0差距較大。對于f7函數(shù),對比其他4種算法,PSO_GWO的尋優(yōu)精度與GAPSO的尋優(yōu)精度相同,但是比較其他3種算法其尋優(yōu)精度提高了1~16個數(shù)量級。對f3函數(shù)進(jìn)行尋優(yōu)時,PSO_GWO的尋優(yōu)精度比較其他4種算法尋優(yōu)精度提高了1~4個數(shù)量級。對f9函數(shù)進(jìn)行尋優(yōu)時,PSO_GWO的尋優(yōu)精度比較其他4種算法尋優(yōu)精度提高了1~4個數(shù)量級,綜上所述,PSO_GWO在對不同測試函數(shù)上進(jìn)行尋優(yōu)時,只有在f7函數(shù)上進(jìn)行尋優(yōu)時,尋優(yōu)結(jié)果與GAPSO,在其余函數(shù)上進(jìn)行尋優(yōu)時的尋優(yōu)結(jié)果均是優(yōu)于其他4種算法的,所以在對5種算法進(jìn)行綜合評價時,PSO_GWO的綜合排名是處于第1位的,即PSO_GWO在尋優(yōu)精度上是優(yōu)于其余4種算法的。
表2 不同測試函數(shù)尋優(yōu)精度對比
圖2為不同算法對不同函數(shù)尋優(yōu)時的收斂曲線,可以看出對函數(shù)f1、f4、f5、f6、f7、f8進(jìn)行尋優(yōu)時,PSO_GWO算法在前期的收斂速度較慢,在后期明顯加快,其中在對f1函數(shù)的尋優(yōu)過程中,PSO_GWO算法在迭代90次時,達(dá)到其他4種算法迭代200次的尋優(yōu)精度。在對f4進(jìn)行尋優(yōu)時,其前期的收斂速度略差于GAPSO,但其在80次迭代時,可達(dá)到其余4種算法在200次的尋優(yōu)精度。在對f5函數(shù)的尋優(yōu)過程中,PSO_GWO算法在迭代120次時,達(dá)到其他4種算法迭代200次的尋優(yōu)精度。在對f6函數(shù)的尋優(yōu)過程中,PSO_GWO算法在迭代80次時,達(dá)到其他4種算法迭代200次的尋優(yōu)精度。在對f7函數(shù)的尋優(yōu)過程中,PSO_GWO算法在迭代83次時,達(dá)到其他4種算法迭代200次的尋優(yōu)精度。在對f8函數(shù)的尋優(yōu)過程中,PSO_GWO算法在迭代70次時,達(dá)到其他4種算法迭代200次的尋優(yōu)精度。在對f9函數(shù)的尋優(yōu)過程中,PSO_GWO算法在迭代初期開始尋優(yōu)速度就是優(yōu)于其他4種算法的,其迭代30次時,達(dá)到其他4種算法迭代200次的尋優(yōu)精度。但在對f2、f3進(jìn)行尋優(yōu)時,PSO_GWO的尋優(yōu)速度雖優(yōu)于PSO、GWO、PSOd三種算法但略差于GAPSO。綜上所述,PSO_GWO除了在對函數(shù)f2、f3進(jìn)行尋優(yōu)時的速度略差于GAPSO,在對其他函數(shù)上進(jìn)行尋優(yōu)時,尋優(yōu)速度均是優(yōu)于其他算法的。
圖2 各種算法在不同函數(shù)的尋優(yōu)曲線
本文提出了一種結(jié)合灰狼算法的粒子群優(yōu)化算法(PSO_GWO),主要思想是對粒子群最差粒子進(jìn)行進(jìn)化,提高粒子群的多樣性以及對最優(yōu)粒子進(jìn)行擾動使粒子群跳出局部最優(yōu),此外還結(jié)合灰狼算法的精英群體包圍式搜索策略增強(qiáng)粒子群算法的全局搜索能力,最后將改進(jìn)完的粒子群算法(PSO_GWO)與標(biāo)準(zhǔn)粒子群算法(PSO)、灰狼算法(GWO)、遺傳粒子群算法(GAPSO)、改進(jìn)位置更新公式的粒子群算法(PSOd)在9個標(biāo)準(zhǔn)測試函數(shù)上進(jìn)行尋優(yōu)精度和收斂性能的對比。在尋優(yōu)精度上,PSO_GWO在對9個函數(shù)進(jìn)行尋優(yōu)時,對其中6個函數(shù)均找到了全局最優(yōu)值0,對其他3個函數(shù)進(jìn)行尋優(yōu)時,即使未找到理論最優(yōu)值0,但比較其他4種算法依舊提高了1~16個數(shù)量級。在收斂性能上,除f2、f3函數(shù)外,在對其他7個函數(shù)進(jìn)行尋優(yōu)時,在前200次迭代均能達(dá)到其余算法的收斂精度。由此可以看出,PSO_GWO在尋優(yōu)精度和收斂性能上均是優(yōu)于其他4種算法的。本文將所提算法主要用于自抗擾控制器[19-20]的參數(shù)自整定中,其主要原因是控制系統(tǒng)處于不同的環(huán)境當(dāng)中時,控制對象的模型會發(fā)生改變,由此會造成參數(shù)不適用的現(xiàn)象,為了使控制系統(tǒng)的參數(shù)在不同的環(huán)境下均有良好的控制效果,本文將粒子群算法(PSO)和改進(jìn)粒子群算法(PSO_GWO)均用于自抗擾控制器的參數(shù)自整定中去,結(jié)果表明PSO_GWO的整定的參數(shù)的控制效果更優(yōu)。