汪雅文,錢 謙,馮 勇,伏云發(fā)
昆明理工大學(xué) 信息工程與自動化學(xué)院,云南省計(jì)算機(jī)技術(shù)應(yīng)用重點(diǎn)實(shí)驗(yàn)室,昆明 650500
粒子群算法(particle swarm optimization,PSO)是一種群智能優(yōu)化算法,由Eberhart和Kennedy[1]在1995年首次提出。該算法由于操作簡單,不依賴于目標(biāo)問題的梯度信息等優(yōu)點(diǎn),一經(jīng)提出便在眾多領(lǐng)域得到了成功應(yīng)用,例如神經(jīng)網(wǎng)絡(luò)分類[2]、圖像分割[3]、機(jī)械的位置控制[4]、雷達(dá)站布局優(yōu)化[5]、路徑規(guī)劃[6]等。雖然PSO算法有較好的優(yōu)化性能,但在對一些復(fù)雜問題進(jìn)行優(yōu)化時仍存在“早熟”、種群多樣性缺失和收斂速度慢等現(xiàn)象,引起這些現(xiàn)象主要是因?yàn)镻SO算法在進(jìn)化過程中難以有效地平衡局部搜索能力與全局搜索能力[7]。許多學(xué)者針對PSO算法的不足提出了很多的改進(jìn)方法,文獻(xiàn)[8]提出了一種將粒子的慣性權(quán)重w與粒子的位置信息相關(guān)聯(lián)的改進(jìn)方法,可以更精確地調(diào)節(jié)算法中的w,使粒子的搜索行為得到了更好的平衡,改善了算法易“早熟”收斂的缺陷;文獻(xiàn)[9]提出了一種異步變化策略來更新算法中的學(xué)習(xí)因子,通過該算法的學(xué)習(xí)能力使得算法陷入局部極值的幾率大大減小;文獻(xiàn)[10]提出了一種能夠?qū)⒎N群動態(tài)地分層的自主學(xué)習(xí)策略,通過利用不同階層粒子的特性采取不同的學(xué)習(xí)模式,增加了粒子的多樣性,使該算法的收斂速度和精度得到了提高;文獻(xiàn)[11]定義了一種高斯變異策略,使種群多樣性得到了保持,降低早熟收斂的概率;文獻(xiàn)[12]將遺傳算法與PSO算法相融合,豐富了算法在進(jìn)化過程中的群體多樣性,提升了算法的收斂速度。
雖然上述改進(jìn)使算法的性能獲得了一定程度上的提升,但PSO算法仍有很大的改進(jìn)空間,為了使算法同時擁有較好的收斂性能和收斂精度,進(jìn)一步加強(qiáng)PSO算法的性能,在已有研究的基礎(chǔ)上,本文提出了一種新的改進(jìn)的PSO算法。首先,將借鑒文獻(xiàn)[13]中天牛須搜索思想提出的一種雙向?qū)W習(xí)策略和一種改進(jìn)的吸引-排斥策略融入PSO算法的全局尋優(yōu)過程中,雙向?qū)W習(xí)策略能夠允許粒子在尋優(yōu)過程中進(jìn)行雙向?qū)W習(xí),豐富種群的多樣性;吸引-排斥策略使粒子能夠在全局最優(yōu)粒子的吸引力和全局最差粒子排斥力的合力方向上隨機(jī)地移動尋找最優(yōu)解,以增強(qiáng)算法的局部尋優(yōu)能力和收斂能力;然后提出了雙重自適應(yīng)策略,使雙向?qū)W習(xí)策略速度更新公式中的慣性權(quán)重w和學(xué)習(xí)因子c根據(jù)算法的進(jìn)化現(xiàn)狀動態(tài)地調(diào)整,這種雙重自適應(yīng)的方式能夠有效地控制算法全局搜索行為與局部搜索行為之間的平衡;形成融合吸引排斥和雙向?qū)W習(xí)的改進(jìn)粒子群算法(integrating attraction-repulsion and bidirectional learning IPSO,ARLIPSO),通過對本文所提出的改進(jìn)算法進(jìn)行仿真測試,結(jié)果表明本文算法可以更好地在尋優(yōu)過程中跳出局部極值,減小出現(xiàn)“早熟”收斂的可能,使算法的性能得到提升。
PSO算法是基于鳥群或魚群尋找食物的社會行為方式而產(chǎn)生的一種算法[14]。群體中的每個個體都在自己已有的搜索方向和歷史上尋找更好的解,即向個體的歷史經(jīng)歷中最好的解學(xué)習(xí);此外,每個個體都從其他成員那里學(xué)習(xí),通常是向群體當(dāng)中表現(xiàn)最好的個體學(xué)習(xí)。粒子群優(yōu)化算法可概括為,初始化種群個體的位置和速度、速度更新、位置更新。如果種群大小為N,則在D維搜索空間中PSO算法的更新公式如下:
其中,第i個粒子的速度、位置分別為vi、xi,i=1,2,…,N,t為當(dāng)前代數(shù),w為慣性權(quán)重,c1、c2為學(xué)習(xí)因子;r1、r2為均勻隨機(jī)數(shù),范圍在0和1之間,gbesti(t)為全局最優(yōu)個體對應(yīng)的位置,pbesti(t)為個體歷史最優(yōu)對應(yīng)的位置。
為了提高算法的全局搜索和局部搜索能力提出了融合吸引排斥和雙向?qū)W習(xí)的方法,通過雙向?qū)W習(xí)方法來增加種群多樣性,提高算法的全局尋優(yōu)性能;通過吸引-排斥方法來增加算法的局部搜索和收斂能力。此外,為了克服單一性的學(xué)習(xí)因子和慣性權(quán)重在優(yōu)化復(fù)雜函數(shù)時無法很好地調(diào)節(jié)尋優(yōu)進(jìn)程的問題,提出了雙重自適應(yīng)策略,使雙向?qū)W習(xí)策略速度更新公式中的慣性權(quán)重w和學(xué)習(xí)因子c根據(jù)算法的進(jìn)化現(xiàn)狀動態(tài)地調(diào)整。
在標(biāo)準(zhǔn)PSO算法中,粒子更新的影響因素主要包括全局最優(yōu)位置、個體歷史最優(yōu)位置和粒子原有的速度。其中,慣性權(quán)重w的大小決定了粒子當(dāng)前速度對下一代速度更新的影響程度,學(xué)習(xí)因子c1、c2分別決定了個體歷史最優(yōu)位置和全局歷史最優(yōu)位置對速度更新影響的程度。由此可以看出慣性權(quán)重w和學(xué)習(xí)因子c是影響算法性能的主要參數(shù)。文獻(xiàn)[15]提出了一種使慣性權(quán)重w在線性和非線性之間進(jìn)行動態(tài)調(diào)整的方法。文獻(xiàn)[16]采用了余弦函數(shù)使學(xué)習(xí)因子c隨著不同的搜索階段非線性地變換的方法。上述文獻(xiàn)所提出的方法均在不同程度上加強(qiáng)了算法的搜索能力,減少了算法的“早熟”收斂情況。在前人研究的基礎(chǔ)上,本文提出了一種雙重自適應(yīng)優(yōu)化策略,使算法在尋優(yōu)過程中能夠自適應(yīng)地同時調(diào)節(jié)慣性權(quán)重w和學(xué)習(xí)因子c,使算法前期的全局搜索能力和后期的局部搜索能力得到提升。
2.1.1 改進(jìn)的慣性權(quán)重
慣性權(quán)重w對PSO算法的全局搜索和局部搜索能力有著很大程度的影響[17],對w加以適當(dāng)?shù)恼{(diào)整,能夠使算法的尋優(yōu)能力以及收斂速度同時得到提升。若使算法的全局搜索能力較強(qiáng),則需要較大數(shù)值的慣性權(quán)重w;若使算法的局部搜索能力較好,則需要較小數(shù)值的慣性權(quán)重w,若采用固定數(shù)值的w,算法無法根據(jù)進(jìn)化的情況來調(diào)整搜索能力,會增加陷入“早熟”收斂的可能性。文獻(xiàn)[8]指出PSO算法的尋優(yōu)過程是復(fù)雜的,單一變化w的方法很大程度上限制了算法在復(fù)雜尋優(yōu)進(jìn)程中的調(diào)節(jié)能力,容易出現(xiàn)“早熟”收斂,所以本文提出了一種新的改進(jìn)慣性權(quán)重的方法,使慣性權(quán)重非線性取值,根據(jù)粒子的迭代次數(shù)進(jìn)行適當(dāng)?shù)恼{(diào)整,能夠使慣性權(quán)重在復(fù)雜系統(tǒng)中呈現(xiàn)出動態(tài)變化關(guān)系,進(jìn)而使算法在全局搜索和局部搜索之間達(dá)到一定的平衡。ARLIPSO算法的慣性權(quán)重w的更新方式如下:
其中,wmin為慣性權(quán)重最小值,取值為0.1;wmax為慣性權(quán)重最大值,取值為0.8;A是控制曲線曲率的參數(shù),經(jīng)過測試A取值為6;t為當(dāng)前迭代次數(shù);T為最大迭代次數(shù)。
慣性權(quán)重w的非線性變化曲線如圖1所示。在算法初期,w能夠維持比較平穩(wěn)的狀態(tài),使粒子在此期間保持比較大的更新速度,確保算法具有較好的全局搜索能力,在算法的早期階段提高了種群多樣性,避免出現(xiàn)“早熟”的情況;而在算法后期階段,為了提高算法的收斂能力,使算法的慣性權(quán)重w值快速降低,使粒子能夠以較小的步長更新,實(shí)現(xiàn)更加精細(xì)的搜索。
圖1 慣性權(quán)重w自適應(yīng)曲線Fig.1 Adaptive curve of inertia weight w
2.1.2 改進(jìn)的學(xué)習(xí)因子
文獻(xiàn)[18]證明了單粒方法在探索方面較優(yōu)且降低了計(jì)算復(fù)雜度,因此本文同樣采用了單粒更新方式。即從較優(yōu)的粒子中隨機(jī)選取一個粒子xk作為學(xué)習(xí)對象,并在此基礎(chǔ)上提出了更進(jìn)一步的自適應(yīng)單粒學(xué)習(xí)因子。學(xué)習(xí)因子c更新公式如下:
其中,cmin為學(xué)習(xí)因子最小值,取值為0.5;cmax為學(xué)習(xí)因子最大值,取值為2;fit為當(dāng)前粒子個體的適應(yīng)度值,fmax為當(dāng)代粒子中最大的適應(yīng)度值。
學(xué)習(xí)因子c數(shù)值的變化趨勢如圖2所示,本策略中,學(xué)習(xí)因子的大小決定了粒子向xk學(xué)習(xí)的程度。在算法初期,學(xué)習(xí)因子較小,且呈緩慢上升的趨勢,使粒子較少的向xk學(xué)習(xí),提升算法的全局尋優(yōu)能力;在算法的后期,學(xué)習(xí)因子以較大幅度上升,使粒子更多地向xk學(xué)習(xí),起到提高算法局部搜索能力的作用。
圖2 學(xué)習(xí)因子c自適應(yīng)曲線Fig.2 Adaptive curve of learning factor c
本文借鑒了天牛須搜索算法的主要思想,提出了一種雙向?qū)W習(xí)策略,其中適應(yīng)度評估、行為學(xué)習(xí)和種群排序是本策略的重要組成部分。不同于標(biāo)準(zhǔn)PSO算法的是,本策略的搜索過程是基于社會學(xué)習(xí)原理,粒子隨機(jī)選擇一個較優(yōu)者學(xué)習(xí),提高了全局搜索能力。但由于種群整體往較優(yōu)者逼近,導(dǎo)致多樣性不足,因此通過雙向?qū)W習(xí)的方法,豐富種群多樣性,提高算法全局搜索能力。即粒子在解空間搜索時,每一次進(jìn)化都會進(jìn)行正反方向的學(xué)習(xí)行為。在每一次迭代時,先將個體按照適應(yīng)度值由優(yōu)到差進(jìn)行排序,再從中隨機(jī)選擇一個比xi好的個體作為學(xué)習(xí)對象即xk(1≤k≤i),排序如圖3所示。然后對正向?qū)W習(xí)(xk-xi)和反向?qū)W習(xí)(xi-xk)對應(yīng)的適應(yīng)度值進(jìn)行評估,并從兩種學(xué)習(xí)方式中選擇適應(yīng)度值更優(yōu)的一種作為更新方式,改進(jìn)后的粒子速度與位置更新公式為:
圖3 粒子適應(yīng)度排序Fig.3 Fitness ordering of particles
其中,第i個粒子的速度、位置分別為vi、xi,i=1,2,…,N,t為當(dāng)前代數(shù),r1為均勻隨機(jī)數(shù),w為慣性權(quán)重,按照公式(3)更新;c為學(xué)習(xí)因子,按照公式(4)更新。粒子每次更新時會根據(jù)公式(5)同時進(jìn)行正向?qū)W習(xí)和反向?qū)W習(xí)兩種行為,粒子通過學(xué)習(xí)獲得了新的適應(yīng)度,并向產(chǎn)生適應(yīng)度值較優(yōu)的方向移動。這種雙向?qū)W習(xí)的粒子更新方式不但擴(kuò)大了算法的搜索范圍,使算法的全局尋優(yōu)能力得到了提高,一定程度上也減小了算法陷入局部最優(yōu)的可能性。
2.2.1 雙向?qū)W習(xí)策略的偽代碼
雙向?qū)W習(xí)策略的偽代碼如下:
2.2.2 雙向?qū)W習(xí)策略的測試
本文使用函數(shù)F1和F2來測試雙向?qū)W習(xí)策略的性能。其中,F(xiàn)1為單峰函數(shù),定義域?yàn)?10<xi<10,F1全局最小值為0;F2為多峰函數(shù),定義域?yàn)?100<xi<100;F2全局最小值為0,函數(shù)F1、F2表達(dá)式如下所示:
本次測試維度D設(shè)置為20,種群大小設(shè)置為100,進(jìn)化代數(shù)為400,c1=c2=1.5、w=0.9,將PSO算法與本文方法各獨(dú)立進(jìn)行20次仿真實(shí)驗(yàn);種群進(jìn)化過程中,每次迭代時粒子選擇正向?qū)W習(xí)和與之相反方向的反向?qū)W習(xí)次數(shù)的曲線圖如圖4所示,優(yōu)化結(jié)果對比如表1所示。
圖4 正反向?qū)W習(xí)次數(shù)Fig.4 Number of forward and reverse learning
表1 函數(shù)F1、F2的優(yōu)化結(jié)果對比Table 1 Comparison of optimization results of functions F1 and F2
圖4結(jié)果表明,在測試函數(shù)F1中種群接近一半的個體采用了反向?qū)W習(xí)的方法,豐富了種群的多樣性,從而提高了算法的全局搜索能力;在函數(shù)F2中每次進(jìn)化時個體采用正向?qū)W習(xí)次數(shù)的曲線呈波峰形狀,函數(shù)F2有很多的局部極小值點(diǎn),當(dāng)種群集中在局部極值附近時,反向?qū)W習(xí)的方法擴(kuò)大了種群搜索范圍,有助于算法跳出局部最優(yōu)。通過對比表1的優(yōu)化結(jié)果證明了本學(xué)習(xí)方式在單峰測試函數(shù)和多峰測試函數(shù)中均優(yōu)于傳統(tǒng)PSO算法的單向?qū)W習(xí),說明了本策略的有效性。
擬態(tài)物理學(xué)方法提出具有速度和位置的個體,通過個體之間虛擬力(引力和斥力)的作用產(chǎn)生速度,進(jìn)而改變個體位置[19]。通過PSO算法速度更新公式可知,粒子在更新過程中受到了個體最優(yōu)粒子和全局最優(yōu)粒子引力的影響,這種作用力規(guī)則在一定程度上具有局限性,對此文獻(xiàn)[20]通過算法的不同搜索階段,分別構(gòu)造了引斥力規(guī)則和雙引力規(guī)則,提高了種群的多樣性,使算法在很大程度上減小了陷入局部極值的可能性。
在前人研究的啟發(fā)下,本文從擬態(tài)物理學(xué)角度構(gòu)造出一種新的粒子間作用方式,通過對比粒子適應(yīng)度值的大小提出了一種新的吸引-排斥策略。該策略將標(biāo)準(zhǔn)PSO算法中粒子的更新受全局最優(yōu)個體以及自身歷史最優(yōu)個體的雙引力作用,擴(kuò)展為粒子在受全局最優(yōu)粒子gbesti吸引的同時還受全局最差粒子gworsti的排斥,使得粒子在引力和斥力所產(chǎn)生的合力作用下朝著更優(yōu)的方向進(jìn)化。其中,(gbesti-xi)為全局最優(yōu)粒子對xi的吸引,-(gworsti-xi)為全局最差粒子對xi的排斥,本策略中粒子的更新公式為:
其中,r1為[0,1]范圍內(nèi)的均勻隨機(jī)數(shù),r2=1/2(1-r1),第i個粒子的位置為xi,i=1,2,…,N,t為當(dāng)前代數(shù),公式(9)中引力、斥力占比相同,引斥力使粒子向適應(yīng)度值較好的個體聚攏,同時也遠(yuǎn)離適應(yīng)度值較差的個體,使得粒子更快逼近最優(yōu)值,提高了算法的局部尋優(yōu)能力。
采用自適應(yīng)的抉擇因子F,使雙向?qū)W習(xí)和吸引排斥兩種方法在不同進(jìn)化時期有所側(cè)重,有利于保持種群多樣性和收斂能力之間的平衡。R是0到1之間的隨機(jī)數(shù),其中,R<F時,采用雙向?qū)W習(xí)策略;R≥F時,采用吸引排斥策略。由圖5F變化曲線可知,F(xiàn)在進(jìn)化初期以大于0.5的數(shù)值緩慢下降,使得算法更加側(cè)重于雙向?qū)W習(xí)策略;進(jìn)化后期F以小于0.5的數(shù)值快速減小,使得算法更側(cè)重于吸引-排斥策略,在整個尋優(yōu)過程中兩種方法處于一個動態(tài)平衡的狀態(tài)。在提高種群的豐富度的同時加快了算法的收斂速度。自適應(yīng)抉擇因子F的更新公式如下:
圖5 自適應(yīng)抉擇因子曲線Fig.5 Curve of adaptive decision factor
其中,d2=0.6,d1=0.4,a=10,t為當(dāng)前迭代次數(shù),T為最大迭代次數(shù)。融合雙向?qū)W習(xí)與吸引-排斥的策略不僅考慮了種群的多樣性,而且也提高了算法的收斂速度,有效地平衡了算法的全局和局部搜索的能力。
ARLIPSO算法的流程如下:
輸入:算法迭代次數(shù)T、種群規(guī)模N。輸出:最優(yōu)位置x。
步驟1初始化粒子群個體,包括位置x、速度v,粒子數(shù)量N和算法參數(shù)。
步驟2計(jì)算群體中各個粒子適應(yīng)度函數(shù)值fit。
步驟3將fit由優(yōu)到差排序,每個個體從群體中隨機(jī)選取一個較優(yōu)個體作為學(xué)習(xí)對象xk,更新全局最優(yōu)個體gbesti和全局最差個體gworsti。
步驟4根據(jù)公式(3)、(4)、(10)自適應(yīng)地更新w、c和抉擇因子F。
步驟5若R<F采用雙向?qū)W習(xí)策略,即公式(5)、(6)更新粒子的x、v;反之采用吸引-排斥策略,即公式(9)更新粒子。
步驟6更新所有粒子適應(yīng)度函數(shù)值fit。
步驟7t=t+1,若t<T轉(zhuǎn)步驟3,否則執(zhí)行步驟8。
步驟8輸出x,結(jié)束。
為了驗(yàn)證本文提出的ARLIPSO算法的性能,對表2給出的9個測試函數(shù)進(jìn)行了仿真測試,其中,f1~f5為單峰值測試函數(shù),f6~f9為多峰值測試函數(shù)。此外,將本文提出的ARLIPSO算法的測試結(jié)果與近年來新提出的自適應(yīng)慣性權(quán)重混沌PSO算法(CPSO-NAIW)[8]和基于學(xué)習(xí)與競爭的改進(jìn)PSO算法(LC-PSO)[21]進(jìn)行比較,這些對比算法的優(yōu)化性能在相應(yīng)的文獻(xiàn)中已經(jīng)得到證明,它們在各方面都比標(biāo)準(zhǔn)PSO算法優(yōu)秀。
表2 測試函數(shù)Table 2 Test functions
在對比實(shí)驗(yàn)分析中,具體實(shí)驗(yàn)參數(shù)設(shè)置為:算法的種群數(shù)量N設(shè)置為100,最大進(jìn)化代數(shù)為400代。ABLPSO算法中,wmin=0.1、wmax=0.8,cmin=1.494 45、cmax=2,CPSO-NAIW算法與LC-PSO算法的其他參數(shù)設(shè)置與原文獻(xiàn)保持一致。為了避免算法的隨機(jī)性保證實(shí)驗(yàn)的公平性,針對每種算法,在上述9種函數(shù)的測試中,3種算法分別獨(dú)立進(jìn)行30次仿真實(shí)驗(yàn),本文采用3個參量作為評估算法性能的指標(biāo):(1)最優(yōu)值,反應(yīng)算法求解質(zhì)量好壞的標(biāo)準(zhǔn)。(2)均值(Mean),表示算法最優(yōu)解的平均值,均值越小說明算法的搜索性能越好。(3)標(biāo)準(zhǔn)差(STD),用來反映算法穩(wěn)定性的指標(biāo),STD越小表明算法穩(wěn)定性越強(qiáng)。
4.2.1 單峰值函數(shù)優(yōu)化下的性能分析
表3給出了3種算法在5個單峰測試函數(shù)上不同維度的優(yōu)化結(jié)果。對比表中數(shù)據(jù)可以得出,ARLIPSO算法的最優(yōu)值、Mean和STD多數(shù)都為最優(yōu),說明該算法的收斂能力和尋優(yōu)能力相比于另外兩種算法更為突出。通過對比3種算法的Mean可知,ARLIPSO算法雖然沒有達(dá)到理想最優(yōu)值,但優(yōu)化能力仍要優(yōu)于另外兩種算法,此外相對于CPSO-NAIW而言,LC-PSO算法較好。從實(shí)驗(yàn)結(jié)果上看,雖然函數(shù)從10維到60維,隨著維度的提高尋優(yōu)的復(fù)雜度也增加了,但ARLIPSO算法的優(yōu)化能力并沒有降低。對比表中的STD可知,算法ARLIPSO的標(biāo)準(zhǔn)差在5個測試函數(shù)中均為最小,說明該算法每次的優(yōu)化結(jié)果波動較小,穩(wěn)定性較另外兩種算法更為出色;而算法CPSO-NAIW的STD值多部分在3種算法中最大,特別是在函數(shù)f2中雖最優(yōu)值取到了理想值0,但其Mean值在3種算法中最小,表明該算法穩(wěn)定性最差,適用性最差。
圖6給出了本次實(shí)驗(yàn)中3種對比算法在9種測試函數(shù)中測試時隨機(jī)選取的尋優(yōu)收斂曲線。由圖6中(a)~(e)可以看出,與CPSO-NAIW算法和LC-PSO算法相比,ARLIPSO算法在單峰值函數(shù)優(yōu)化的收斂速度和收斂精度方面具有明顯的優(yōu)勢,其中,CPSO-NAIW算法整體上的尋優(yōu)能力表現(xiàn)最差。證明了ARLIPSO算法擁有較好的局部尋優(yōu)能力。
4.2.2 多峰值函數(shù)優(yōu)化下的性能分析
表4給出了3種算法在4個多峰測試函數(shù)上不同維度的優(yōu)化結(jié)果。其中f6~f9可以作為測試算法能否有效跳出局部最優(yōu)值的評價(jià)函數(shù),通過對比分析可知,算法ARLIPSO在優(yōu)化多峰函數(shù)時,無論低維還是高維,均值Mean和標(biāo)準(zhǔn)差STD兩個性能指標(biāo)都大幅度優(yōu)于其他兩種算法,說明其全局尋優(yōu)能力較好。實(shí)驗(yàn)結(jié)果顯示,ARLIPSO算法在函數(shù)f8、f9上均值都達(dá)到了理想最優(yōu)值0,CPSO-NAIW算法尋優(yōu)效果整體最差,歸因于該算法在搜索后期跳出局部極值的能力有所缺陷,總之,相比于LC-PSO和CPSO-NAIW兩種算法,ARLIPSO算法優(yōu)化能力更強(qiáng),收斂速度更快。
表4 3種算法在函數(shù)f6~f9中的優(yōu)化結(jié)果對比Table 4 Comparison of optimization results of three algorithms in function f6~f9
從圖6中(f)~(i)可以看出,ARLIPSO算法的尋優(yōu)能力在優(yōu)化多峰函數(shù)時也表現(xiàn)出眾,由圖6(f)的優(yōu)化曲線可知,CPSO-NAIW算法相比其他兩種算法其收斂速度非???,即在迭代初期曲線就呈水平狀態(tài),但由于局部最優(yōu)值的存在,導(dǎo)致收斂精度極低,反之ARLIPSO算法雖然收斂速度慢,但收斂精度最高,表明ARLIPSO算法能夠在雙向?qū)W習(xí)策略的作用下保持種群的多樣性,即使是復(fù)雜的多峰值函數(shù)也能取得良好的優(yōu)化結(jié)果。
數(shù)學(xué)模型的參數(shù)擬合決定了算法的時間復(fù)雜度[22]。設(shè)種群最大迭代數(shù)目為Tmax,種群大小為N,其中,Tmax、N的數(shù)值越大,其計(jì)算的時間復(fù)雜度O(TmaxN)也就越大。ARLIPSO和對比算法(CPSO-NAIW、LC-PSO)采用了相同的種群規(guī)模,ARLIPSO采用了兩種不同的進(jìn)化策略,即雙向?qū)W習(xí)策略和吸引-排斥策略,通過自適應(yīng)抉擇因子F調(diào)整種群的進(jìn)化策略,實(shí)現(xiàn)不同的進(jìn)化功能。因?yàn)檫@兩種策略是作為算法尋優(yōu)附加模塊參與計(jì)算,所以該操作沒有使算法本身進(jìn)行更深層次的循環(huán),使得ARLIPSO基本運(yùn)算的頻度與標(biāo)準(zhǔn)PSO相同,時間復(fù)雜度仍為O(TmaxN),沒有多余地增加算法的時間復(fù)雜度。而本文選取的另外兩種對比算法(CPSONAIW、LC-PSO)分別采用了混沌優(yōu)化擺脫局部極值法和社會學(xué)習(xí)法。CPSO-NAIW使用的擺脫極值法,使算法在原有的基礎(chǔ)上額外地增加擺脫極值的循環(huán)操作,增加了算法的時間復(fù)雜度。LC-PSO基本運(yùn)算的頻度與標(biāo)準(zhǔn)PSO相同,沒有多余地增加算法的時間復(fù)雜度。與對比算法相比,ARLIPSO在沒有增加時間復(fù)雜度的情況下,尋優(yōu)精度更高,所以此算法更優(yōu)。
為了解決PSO算法存在收斂速度較慢且難以跳出局部最優(yōu)值的問題,本文提出了ARLIPSO算法,該算法提出一種雙向?qū)W習(xí)的策略與吸引-排斥策略相結(jié)合的方法,在提高了全局尋優(yōu)能力的同時提高了局部搜索能力。此外還采用了雙重自適應(yīng)優(yōu)化策略,對雙向?qū)W習(xí)策略中的慣性權(quán)重和學(xué)習(xí)因子進(jìn)行自適應(yīng)調(diào)整,使算法的全局尋優(yōu)能力和局部尋優(yōu)能力達(dá)到更好的平衡。最后,通過對9個測試函數(shù)進(jìn)行仿真實(shí)驗(yàn),表明本文提出的ARLIPSO算法在單峰值和多峰值函數(shù)尋優(yōu)中都具有較好的收斂速度和尋優(yōu)精度。