王子航,劉建華,薛醒思,朱 劍,陳宇翔
(1.福建工程學(xué)院計(jì)算機(jī)科學(xué)與數(shù)學(xué)學(xué)院,福建 福州 350118;2.福建工程學(xué)院福建省大數(shù)據(jù)挖掘與應(yīng)用技術(shù)重點(diǎn)實(shí)驗(yàn)室,福建 福州 350118)
粒子群優(yōu)化算法 (particle swarm optimization,PSO)最初是由Eberhart 等[1]和Kennedy 等[2]于1995年提出,通過(guò)模擬動(dòng)物群體的社會(huì)行為,比如鳥(niǎo)群的捕食行為,構(gòu)建一種群體智能優(yōu)化算法。與其他遺傳算法[3]和蟻群算法[4]等智能算法相比PSO 算法具有實(shí)現(xiàn)簡(jiǎn)單且收斂速度快的優(yōu)勢(shì),廣泛應(yīng)用于很多領(lǐng)域,比如函數(shù)優(yōu)化[5],神經(jīng)網(wǎng)絡(luò)訓(xùn)練[6],軌跡優(yōu)化[7]等。PSO算法在運(yùn)算前期效果較好,在后期存在易陷入局部最優(yōu)值問(wèn)題,因此學(xué)者們提出了各種各樣的改進(jìn)方法。例如,鄧浩等[8]提出了自適應(yīng)權(quán)重參數(shù)調(diào)整的PSO算法;張德華等[9]提出了具有不同學(xué)習(xí)策略的PSO 算法;Wang 等[10]則將其他優(yōu)化算法與粒子群算法結(jié)合,得到新的PSO 算法。各種PSO 算法從PSO 不同元素中改進(jìn),提升了算法精度與性能。
速度約束是PSO 算法運(yùn)行過(guò)程中的一個(gè)步驟操作,目的是防止粒子跳出搜索空間,避免出現(xiàn)不可行解。最早的速度約束策略采用固定值[11],然后出現(xiàn)對(duì)PSO 速度邊界約束的研究和改進(jìn)策略,例如,Helwig 等[12]提出并比較了多種用于粒子群優(yōu)化的速度邊界約束處理技術(shù);Jiang 等[13]研究了速度約束策略解決高維問(wèn)題存在的缺陷并提出了幾種解決方案。近年來(lái),有學(xué)者提出一些自適應(yīng)速度約束策略,并提高了算法的性能。例如,Barrera 等[14]提出速度邊界隨迭代次數(shù)而幾何變化的策略;Adewumi 等[15]提出在粒子每代計(jì)算速度最高值和最低值的絕對(duì)值,據(jù)此計(jì)算速度邊界。
隨迭代次數(shù)而變化的速度約束策略具有自適應(yīng)性,可以更好地提高算法性能。但是,由于PSO 算法的種群狀態(tài)不確定,其局部搜索有可能發(fā)生在初始階段,而全局搜索也可能發(fā)生在后期,因此速度邊界不僅受迭代次數(shù)影響,還應(yīng)該與粒子群的狀態(tài)有關(guān)。Li 等[16]提出一種基于種群狀態(tài)的自適應(yīng)速度約束粒子群算法(particle swarm optimization with statebased adaptive velocity limit strategy,PSOSAVL),通過(guò)評(píng)估種群進(jìn)化狀態(tài)值而設(shè)置速度約束范圍,提高算法性能。但PSOSAVL 算法只是根據(jù)粒子之間的距離評(píng)估種群進(jìn)化狀態(tài),并沒(méi)有考慮迭代次數(shù),所以還是存在陷入局部最優(yōu)的風(fēng)險(xiǎn)。
同時(shí),PSO 算法與求解問(wèn)題的維度有關(guān),根據(jù)維度提出改進(jìn)算法的策略,可以提高其性能。例如,蔣曉屾等[17]提出,算法粒子每一維采用不同衰減權(quán)重,提高了多樣性和局部搜索能力;鄧志誠(chéng)等[18]提出一種具有動(dòng)態(tài)子空間隨機(jī)單維變異粒子群算法,當(dāng)某維退化且算法性能下降時(shí),該維采用變異,有效地提升算法收斂速度和求解質(zhì)量。然而,對(duì)于PSO算法速度約束與求解問(wèn)題維度的關(guān)系,目前并沒(méi)有發(fā)現(xiàn)文獻(xiàn)研究。
基于上述的分析,本文提出一種融合迭代和問(wèn)題維度的速度約束粒子群算法 (PSO with velocity limit combining iteration and problem dimension,VLPSOID)。該算法不僅計(jì)算種群進(jìn)化狀態(tài)評(píng)估值(evolutionary state evaluation,ESE),而且考慮了迭代次數(shù)和求解問(wèn)題的維度。算法首先設(shè)計(jì)受迭代次數(shù)和維度影響的計(jì)算公式,將其融合進(jìn)化狀態(tài)評(píng)估值計(jì)算中,再根據(jù)進(jìn)化狀態(tài)評(píng)價(jià)估值確定速度約束范圍,使用算法速度約束既受迭代變化影響,也受到問(wèn)題維度影響,具有自適應(yīng)性,提高了粒子群算法的性能。
在每次迭代過(guò)程中,粒子群算法計(jì)算每個(gè)粒子速度,更新自身位置,并且速度受到群體最優(yōu)位置和自身歷史最優(yōu)位置的影響。標(biāo)準(zhǔn)的PSO 算法的數(shù)學(xué)描述如下。
假設(shè)粒子種群規(guī)模為N,問(wèn)題維度為D;第i 個(gè)粒子位置向量xi=(),速度向量vi=(,);第i 個(gè)粒子第d 維的速度和位置在t 代的更新如下
式中:t 為當(dāng)前迭代數(shù);ω 為慣性權(quán)重;c1和c2為加速因子;為第t 代第i 個(gè)粒子第d 維的速度;r1和r2為介于0 和1 之間的隨機(jī)數(shù);為第t 代第i 個(gè)粒子第d 維的位置;為第i 個(gè)粒子第d 維的個(gè)體歷史最優(yōu)位置;為整個(gè)粒子群第t 代第d 維的全局最優(yōu)位置。
進(jìn)化狀態(tài)評(píng)估策略是評(píng)估計(jì)算算法粒子種群狀態(tài)值,判斷算法當(dāng)前搜索狀態(tài)并改進(jìn)算法,使用PSO 算法具有自適應(yīng)性。Zhan 等[19]提出一種自適應(yīng)粒子群優(yōu)化算法(adaptive particle swarm optimization, APSO),首次采用進(jìn)化狀態(tài)評(píng)估(evolutionary state evaluation, ESE)策略改進(jìn)PSO 算法;后來(lái)也有文獻(xiàn)提出改進(jìn)的ESE 策略[20],提高了算法效率。ESE策略考慮了種群粒子分布狀態(tài)及其適應(yīng)度值,根據(jù)進(jìn)化狀態(tài)評(píng)估值將種群狀態(tài)分為4 種類(lèi)型:探索,開(kāi)發(fā),收斂以及跳出。種群進(jìn)化狀態(tài)評(píng)估值定義如下,假定f 為種群進(jìn)化狀態(tài)評(píng)估值,則f 值通過(guò)式(4)和式(5)兩步計(jì)算得到。
式中:Li為第i 個(gè)粒子到其他粒子的平均距離,Lg為全局最佳粒子到其他粒子的平均距離,Lmin和Lmax分別為L(zhǎng)i的最大值和最小值。根據(jù)式(5),Li值為0和1 之間的值,式(4)是體現(xiàn)一個(gè)粒子到其他粒子之間平均距離,式(5)將種群最優(yōu)粒子平均距離歸一化處理,得到種群ESE 值f,然后用于控制粒子速度約束。
但是,式(5)評(píng)估種群進(jìn)化狀態(tài)值,只是采用全局最優(yōu)粒子的平均距離,存在陷入局部最優(yōu)風(fēng)險(xiǎn)。本文提出一種融合迭代和問(wèn)題維度的自適應(yīng)進(jìn)化狀態(tài)評(píng)估策略,改進(jìn)種群狀態(tài)評(píng)估方法,改進(jìn)粒子群算法的速度約束,形成一種融合迭代和問(wèn)題維度的速度約束粒子群算法。
本算法采用了融合迭代和問(wèn)題維度的自適應(yīng)進(jìn)化狀態(tài)評(píng)估策略,其方法是先由式(4)和式(5)計(jì)算f 值;然后讓其受當(dāng)前迭代次數(shù)t 和求解問(wèn)題維度D 影響,得到新的狀態(tài)評(píng)估值f^,如式(6)。這里s(t)和h(D)分別表示受到迭代次數(shù)t 和問(wèn)題維度D 影響的公式,各自采用了不同影響策略,影響著原始種群狀態(tài)評(píng)估值f。s(t)為迭代策略,h(D)為維度策略
式中:η 為影響系數(shù),η∈(0,1),控制兩個(gè)策略對(duì)原始種群狀態(tài)評(píng)估值f 的影響程度。
PSO 算法要盡可能地在前期處于探索狀態(tài),在后期處于開(kāi)發(fā)狀態(tài)。當(dāng)種群狀態(tài)評(píng)估值采用式(5)計(jì)算f 值時(shí),應(yīng)考慮迭代次數(shù)t 對(duì)其影響,目的是使f 值在前期相對(duì)較大,在后期慢慢變小。這樣算法在前期全局搜索能力較強(qiáng),能夠搜尋更大空間,容易跳出局部最優(yōu)點(diǎn);算法在后期局部搜索能力增強(qiáng),重點(diǎn)搜索有希望的局部區(qū)域。因此,本小節(jié)設(shè)計(jì)一個(gè)迭代策略,使其影響種群狀態(tài)評(píng)估值f,使其值隨著迭代遞減。
本文設(shè)計(jì)迭代策略s(t)如式(7),tmax為最大迭代次數(shù)。圖1 則表示s(t)是隨迭代t 指數(shù)遞減的圖像。如圖1 所示,s(t)在迭代前期,值相對(duì)較大,而隨迭代變化,s(t)值緩慢下降,最后值為1。指數(shù)遞減比線性遞減下降更快,容易使f 值突變,全局搜索能力下降快,其變化范圍從e 到1。
圖1 迭代策略值隨迭代次數(shù)的變化Fig.1 Change of iteration strategy value with iteration
隨著問(wèn)題維度增大,PSO 算法計(jì)算成本增加,搜索效率降低。由于在更新高維的粒子位置時(shí),粒子每個(gè)維度都同時(shí)到達(dá)最佳位置的概率降低,粒子更可能遠(yuǎn)離最佳位置,降低算法性能。因此PSO 算法會(huì)受到問(wèn)題維度的影響,本節(jié)設(shè)計(jì)維度策略,使種群狀態(tài)評(píng)估值f 受求解問(wèn)題維度D 影響,其值隨維度D 增加而增加,增強(qiáng)算法的全局搜索能力。
本文設(shè)計(jì)策略函數(shù)h(D)如式(8)所示,其變化如圖2 所示。在低維時(shí),h 值變化比較大,而隨著維度增加,h 值變化慢慢變平緩,最終趨于穩(wěn)定。
圖2 維度策略值隨問(wèn)題維度的變化Fig.2 The change of dimension policy value with the problem dimension
在式(6)的基礎(chǔ)上,融合迭代策略和維度策略到ESE 值f 中,得到新ESE 值,其計(jì)算如下
式中:η 為影響系數(shù),用于控制兩種策略影響ESE 值的程度,η∈(0,1),具體取值由實(shí)驗(yàn)方法決定;t 為迭代次數(shù);tmax為最大迭代次數(shù);D 為求解問(wèn)題維度。
2.4.1 速度約束的計(jì)算方法
假定μ 為PSO 速度約束值(VL)與其搜索最大位置(xmax)比例值,μ∈(0,1),而速度約束VL 限制在速度下邊界和上邊界[VLmin,VLmax]之間。
2.4.2 超參數(shù)設(shè)置方法
α 和β 為兩個(gè)超參數(shù)設(shè)置基于原則為,當(dāng)f^值越大時(shí),PSO 算法種群傾向于全局搜索,粒子速度約束邊界變大;而當(dāng)越小時(shí),種群傾向于局部搜索,粒子速度約束邊界收縮。當(dāng)時(shí),VL 達(dá)到最大值VLmax,此時(shí)μ=μmin;當(dāng)=0 時(shí),VL 達(dá)到其最小值VLmin,此時(shí)μ=μmax。μmin,μmax分別為VL 與xmax的最大比例和最小比例。假設(shè)μmin和μmax已知,根據(jù)式(11)可得式(12),推導(dǎo)求解α 和β 值。當(dāng)給定速度約束VL 的比例最大值μmax和比例最小值μmin時(shí),可以根據(jù)式(12)設(shè)置式(11)的超參數(shù)α 和β 值。
本節(jié)PSO 算法速度約束公式為式(3),其速度邊界值VL 采用式(11)計(jì)算。式(11)VL 由進(jìn)化狀態(tài)評(píng)估ESE 值f^決定,而f^值融合了迭代次數(shù)和問(wèn)題維度的影響,得到一種融合迭代和問(wèn)題維度的速度約束PSO 算法。
當(dāng)PSO 算法求解的問(wèn)題維度D 和其當(dāng)前迭代次數(shù)t 已知,并設(shè)置好μmin和μmax時(shí),可以用本文提出的相關(guān)策略及其公式,求解速度約束值VL 及其范圍值[-VL,VL],其算法具體過(guò)程的偽代碼見(jiàn)算法Calc_VL,本文提出PSO 算法流程的偽代碼見(jiàn)算法Calc_Best。
根據(jù)算法Calc_VL 和算法Calc_Best,VLPSOID算法的時(shí)間成本主要是:計(jì)算種群狀態(tài),更新粒子的速度和位置。對(duì)于算法Calc_VL,時(shí)間成本主要為式(4),需要計(jì)算粒子之間的距離,涉及粒子之間每個(gè)維度,N 個(gè)粒子之間要相互計(jì)算,所以時(shí)間復(fù)雜度為O(D*N2)。對(duì)于算法Calc_Best,由于每次迭代調(diào)用算法Calc_VL,最后時(shí)間復(fù)雜度為O(tmax*D*N2)。算法Calc_Best 在更新粒子速度和位置時(shí),時(shí)間復(fù)雜度為O(tmax*D*N)。綜上所述,VLPSOID 算法的最終時(shí)間復(fù)雜度為O(tmax*D*N2),主要時(shí)間成本花費(fèi)在計(jì)算粒子之間的距離,原因是需要計(jì)算算法種群的狀態(tài)評(píng)估值(ESE)。
本節(jié)實(shí)驗(yàn)分析方法用PSO 算法求解CEC2013中的28 個(gè)基準(zhǔn)測(cè)試函數(shù)[21],測(cè)試對(duì)比VLPSOID 算法與其他相關(guān)PSO 算法的性能。28 個(gè)函數(shù)的信息如表1 所示,共分為3 類(lèi):f1~f5為單峰函數(shù);f6~f20為多峰函數(shù);f21~f28為復(fù)合函數(shù)。與之對(duì)比算法有:基于種群狀態(tài)的自適應(yīng)速度約束粒子群算法(PSOSAVL),基于分層自主學(xué)習(xí)的改進(jìn)粒子群優(yōu)化算法(HCPSO)[22],具有拓?fù)鋾r(shí)變和搜索擾動(dòng)的混合粒子群優(yōu)化算法(HPSO)[23],以及標(biāo)準(zhǔn)PSO 算法;各算法的實(shí)驗(yàn)參數(shù)設(shè)置采用原始論文的數(shù)據(jù),如表2所示。
表1 CEC 2013 測(cè)試函數(shù)Tab.1 CEC 2013 benchmark functions
表2 用于比較的算法以及參數(shù)Tab.2 Algorithms and parameters for comparison
VLPSOID 算法式(9)的影響系數(shù)η 控制迭代次數(shù)和問(wèn)題維度對(duì)原始ESE 值f 的影響強(qiáng)度,η∈(0,1)。但η 具體取值表現(xiàn)為影響敏感程度,本節(jié)采用實(shí)驗(yàn)方法分析,根據(jù)η 取不同值時(shí),分析VLPSOID 算法優(yōu)化部分函數(shù)的實(shí)驗(yàn)性能,尋求一個(gè)最優(yōu)η 取值。
實(shí)驗(yàn)的種群粒子數(shù)為30 個(gè),最大迭代次數(shù)為20 000 次,實(shí)驗(yàn)選擇的優(yōu)化函數(shù)是f3,f8,f13,f18,f23,f286 種函數(shù),函數(shù)維度分別為20,40,60,80,100 維;η 取[0,1]之間均衡地取不同的10 個(gè)值,實(shí)驗(yàn)比較同一函數(shù)在同一個(gè)維度,其函數(shù)適應(yīng)度值的大小。實(shí)驗(yàn)結(jié)果如表3 所示,在η 取不同值時(shí),算法計(jì)算函數(shù)在不同維度時(shí)的最優(yōu)值。
表3 不同維度的最優(yōu)值結(jié)果Tab.3 The best result with different η in different dimension
算法處于不同維度時(shí),采用不同的η 值對(duì)結(jié)果的影響也是不同的。最終統(tǒng)計(jì)了所選6 個(gè)函數(shù)的結(jié)果,得到總結(jié)果表。由總結(jié)果表得到,當(dāng)η 值分別取0.6,0.7,0.8 時(shí),取得較好解的次數(shù)分別為6 次,7次,10 次。相比較其他值,當(dāng)η 值為0.6,0.7,0.8 時(shí),算法取得的結(jié)果更為突出。因此,為了能夠整體提升算法的性能,本文建議影響系數(shù)η 取值范圍在[0.6,0.8]。
算法的μmin和μmax是分別表示VL 與位置最大值μmax的最小比例和最大比例,決定式(12)計(jì)算超參數(shù)α 和β 值。本節(jié)針對(duì)部分測(cè)試函數(shù),采用實(shí)驗(yàn)方法,分析其取值的敏感度。實(shí)驗(yàn)的測(cè)試函數(shù)為f12,f18,f23,f26;函數(shù)的維度為50 維,算法種群大小為30 個(gè),最大迭代次數(shù)為50 000 次。實(shí)驗(yàn)方法是,先固定μmin為0.5,測(cè)試μmax取[0.4,1.0]范圍內(nèi)不同值時(shí),算法求解函數(shù)最優(yōu)值,實(shí)驗(yàn)結(jié)果如表4 及圖3左側(cè)所示。然后,固定μmax為0.7,測(cè)試μmin取[0.1,0.7]范圍內(nèi)不同值時(shí),算法求解函數(shù)最優(yōu)值,實(shí)驗(yàn)結(jié)果如表5 及圖3 右側(cè)所示。
表4 不同μmax 值求解函數(shù)的最優(yōu)值(μmin=0.5)Tab.4 The best value for different μmax(μmin=0.5)
表5 不同μmin 值求解函數(shù)的最優(yōu)值(μmax=0.7)Tab.5 The best value for different μmin(μmax=0.7)
圖3 函數(shù)適應(yīng)度隨μmax 和μmin 變化的曲線Fig.3 Curve of fitness as a function of μmax and μmin
觀察表4 數(shù)據(jù),本文算法對(duì)μmax的取值不敏感并且不同的μmax取值都提供了較為滿(mǎn)意的結(jié)果,因此可以得出結(jié)論,本文算法對(duì)于變化的μmax具有健壯性。根據(jù)表4 以及圖3 左側(cè)的結(jié)果,建議μmax取值范圍[0.6,0.7]。觀察表5 數(shù)據(jù),算法對(duì)μmin取值有一定的敏感性,當(dāng)μmin取過(guò)小時(shí),算法的優(yōu)化效果變差,從圖3 各子圖的右側(cè)圖,也可得到驗(yàn)證。因此,應(yīng)避免μmin取0.1 和0.2 值。觀察表5 和圖3 左側(cè),μmin取值范圍應(yīng)該在[0.5,0.6]之間最佳。綜上所述,VLPSOID 對(duì)于變化的μmax具有魯棒性,而對(duì)μmin值具有敏感性。本文建議在[0.6,0.7] 內(nèi)選擇μmax,在[0.5,0.6]內(nèi)選擇μmin。
本小節(jié)將式(6)的迭代策略s(t)式去除,稱(chēng)算法為VLPSOD,并與VLPSOID 的性能比較分析。實(shí)驗(yàn)對(duì)28 個(gè)基準(zhǔn)函數(shù)優(yōu)化計(jì)算,兩個(gè)算法分別獨(dú)立運(yùn)行10次,比較兩個(gè)算法求解函數(shù)的平均最優(yōu)適應(yīng)度。實(shí)驗(yàn)設(shè)置種群粒子數(shù)為30 個(gè),函數(shù)維度為30 維,算法迭代次數(shù)為10 000 次。實(shí)驗(yàn)結(jié)果如表6 所示。
表6 VLPSOD 算法與VLPSOID 實(shí)驗(yàn)對(duì)比Tab.6 Comparison between VLPSOD and VLPSOID
根據(jù)表6,與VLPSOID 算法相比,去除迭代策略的VLPSOD 算法性能出現(xiàn)降低。28 個(gè)測(cè)試函數(shù),VLPSOD 在18 個(gè)函數(shù)中的表現(xiàn)要差于VLPSOID 算法(全部的5 個(gè)單峰函數(shù),15 個(gè)多峰函數(shù)的9 個(gè),8 個(gè)復(fù)合函數(shù)的4 個(gè)),表明VLPSOID 要優(yōu)于VLPSOD。這說(shuō)明迭代策略能使算法在前期增強(qiáng)全局搜索能力,后期增強(qiáng)局部搜索能力,促進(jìn)算法尋優(yōu)能力。因此,迭代策略能提高算法優(yōu)化效果和性能。
針對(duì)維度策略影響VLPSOID 算法性能分析,本節(jié)將式(6)的維度策略h(D)去除,稱(chēng)算法為VLPSOI,并與VLPSOID 的性能比較分析。實(shí)驗(yàn)選擇的優(yōu)化函數(shù)是f3,f8,f13,f18,f23,f286 種函數(shù), 兩個(gè)算法分別獨(dú)立運(yùn)行10 次,比較兩個(gè)算法在求解不同維度的函數(shù)的平均最優(yōu)適應(yīng)度。實(shí)驗(yàn)設(shè)置種群粒子數(shù)30 個(gè),函數(shù)維度分別設(shè)置為30,60,90 維,算法迭代次數(shù)為50 000 次。實(shí)驗(yàn)結(jié)果如表7 所示。
表7 VLPSOID 算法與VLPSOI 實(shí)驗(yàn)對(duì)比Tab.7 Comparison between VLPSOID and VLPSOI
觀察表7 可知,與完整VLPSOID 算法相比,去除維度策略的VLPSOI 性能出現(xiàn)下降的趨勢(shì)。能夠明顯地看出VLPSOI 在這6 個(gè)測(cè)試函數(shù)的表現(xiàn)中差于VLPSOID,這說(shuō)明,去除了維度策略,算法在高維空間尋優(yōu)能力變差,導(dǎo)致性能降低。維度策略能提高算法的優(yōu)化效果和性能。
針對(duì)分析本文提出的VLPSOID 算法性能,將其與表2 列出的4 種算法在28 個(gè)測(cè)試函數(shù)上實(shí)驗(yàn)比較,每個(gè)測(cè)試函數(shù)獨(dú)立運(yùn)行50 次,得到其平均最優(yōu)適應(yīng)度值(Mean)及其標(biāo)準(zhǔn)方差(standard deviation, Std.)。實(shí)驗(yàn)參數(shù)設(shè)置如表8 所示,實(shí)驗(yàn)結(jié)果如表9 所示。
表8 實(shí)驗(yàn)的參數(shù)設(shè)置Tab.8 Experimental parameters
表9 基準(zhǔn)測(cè)試函數(shù)的實(shí)驗(yàn)結(jié)果Tab.9 Experimental results of function tests
根據(jù)表9,相比其他算法,VLPSOID 在28 個(gè)函數(shù)中有14 個(gè)函數(shù)均值和方差表現(xiàn)為最好,其中5個(gè)單峰函數(shù)有4 個(gè),15 個(gè)多峰函數(shù)中有6 個(gè),8 個(gè)復(fù)合函數(shù)中有4 個(gè);其他算法表現(xiàn)最好的HCPSO也只在28 個(gè)函數(shù)中有7 個(gè);因此,在相比較的算法中,VLPSOID 的性能為最佳的算法。
雖然在28 個(gè)測(cè)試函數(shù)中,只有14 個(gè)函數(shù)效果優(yōu)于其他算法,采用弗里德曼檢測(cè)方法可知,VLPSOID 算法無(wú)論是在單峰函數(shù)、多峰函數(shù)和復(fù)合函數(shù)的檢驗(yàn)值,還是在綜合的檢驗(yàn)值,在比較的算法中排名最好,說(shuō)明其綜合性能最佳。
為了更好地驗(yàn)證VLPSOID 算法性能有效性,針對(duì)表9 的實(shí)驗(yàn)數(shù)據(jù),做t 檢驗(yàn)方法驗(yàn)證。t 檢驗(yàn)自由度和顯著性水平設(shè)置分別為49 和0.05,最終結(jié)果如表10 所示。其中,粗體表示本文算法好于對(duì)比算法,灰體表示本文算法表現(xiàn)較差。
從表中可以看出,與PSOSAVL 算法相比,算法性能只有在f14,f16,f21,f22,f25,f26這6 個(gè)函數(shù)上處于劣勢(shì),其余函數(shù)則明顯處于優(yōu)勢(shì);而對(duì)比HPSO算法,可以看出VLPSOID 算法效果顯著;與HCPSO 算法相比,本文算法在7 個(gè)函數(shù)上效果差于對(duì)比算法。最后,與PSO 算法對(duì)比可以看出,本文算法只有在f8,f15,f16函數(shù)上處于劣勢(shì)??傮w結(jié)果是,在28 個(gè)函數(shù)的對(duì)比中,本文算法好于PSOSAVL、HPSO、HCPSO 和PSO 的函數(shù)個(gè)數(shù)分別為22、28、21、25。綜上所述,本文算法在對(duì)比算法中有一定的競(jìng)爭(zhēng)能力。
為分析算法的收斂狀態(tài),采用VLPSOID 與其他幾個(gè)算法優(yōu)化6 個(gè)基準(zhǔn)測(cè)試函數(shù),演示了每個(gè)算法計(jì)算測(cè)試函數(shù)的適應(yīng)度隨迭代變化的曲線,結(jié)果如圖4。其中,6 個(gè)函數(shù)分別是,單峰函數(shù)選取一個(gè)函數(shù),多峰函數(shù)選取3 個(gè)函數(shù)以及復(fù)合函數(shù)選取兩個(gè)函數(shù)。實(shí)驗(yàn)參數(shù)設(shè)置種群維度為30 維,種群大小為30 個(gè),迭代次數(shù)為150 000 次。
圖4 不同算法的函數(shù)適應(yīng)度隨迭代變化圖Fig.4 Convergence curves of six test functions
由圖4(a)可知,VLPSOID 在單峰函數(shù)中與其他算法中表現(xiàn)相當(dāng)。由圖4(b)、圖4(c)和圖4(d)中可知,VLPSOID 算法在多峰函數(shù)中表現(xiàn)良好,大約迭代到一萬(wàn)代時(shí),就能找到較好的解,收斂速度快且精度較高。從圖4(e)和圖4(f)能明顯得出,對(duì)于復(fù)合函數(shù),VLPSOID 算法在前期下降速度相對(duì)于其他算法快,且在后期其精度也能得到保證。綜上所述,VLPSOID 不管在單峰函數(shù)還是多峰函數(shù),其收斂速度較快且精度較高。
為了進(jìn)一步驗(yàn)證VLPSOID 在尋優(yōu)速度上的優(yōu)勢(shì),在相同環(huán)境下,將各算法在CEC2013 測(cè)試集28個(gè)函數(shù)中分別獨(dú)立運(yùn)行10 次,記錄達(dá)到指定精度時(shí)算法的平均運(yùn)行時(shí)間,并規(guī)定,如果迭代次數(shù)超過(guò)200 000 次后仍未達(dá)到指定精度,則用空白表示。最終結(jié)果如表11 所示。
表11 算法達(dá)到指定精度的運(yùn)算時(shí)間Tab.11 Running time of algorithm to achieve specified accuracys
由表11 看出,相較于對(duì)比算法,VLPSOID 的在5 個(gè)單峰函數(shù)和復(fù)合函數(shù)中表現(xiàn)稍差,而在多峰函數(shù)中,VLPSOID 的總體排名較為靠前。在本文中,由于VLPSOID 在每一代都需要對(duì)粒子的距離進(jìn)行計(jì)算,從而計(jì)算算法種群的狀態(tài)評(píng)估值,因此在此階段需要額外的計(jì)算時(shí)間,會(huì)導(dǎo)致算法在部分測(cè)試函數(shù)中沒(méi)有表現(xiàn)出其尋優(yōu)速度的優(yōu)勢(shì)。但從表10 結(jié)果中可以看出,VLPSOID 在收斂精度有著出色的表現(xiàn),因此一些時(shí)間上的損耗是可以接受的。
1)VLPSOID 算法在前期具有較好的全局搜索能力,在后期具有較強(qiáng)的局部搜索能力,算法對(duì)問(wèn)題維度具有擴(kuò)展性。
2)在CEC2013 測(cè)試函數(shù)上,算法無(wú)論在單峰函數(shù)、多峰函數(shù),還是復(fù)雜函數(shù)上,具有更好性能,更具有適用性,并具有解決不同維度問(wèn)題的能力。