鄧志誠,孫 輝,3+,趙 嘉,3,王 暉,3
1.南昌工程學院 信息工程學院,南昌 330099
2.江西省水信息協同感知與智能處理重點實驗室,南昌 330099
3.鄱陽湖流域水工程安全與資源高效利用國家地方聯合工程實驗室,南昌 330099
為解決傳統優化算法無法解決的復雜優化問題,研究者們受螢火蟲閃爍吸引其他螢火蟲的行為啟發,提出螢火蟲算法(firefly algorithm,FA);受蜜蜂采蜜行為啟發,提出人工蜂群算法(artificial bee colony,ABC);受鳥群覓食行為啟發,提出粒子群優化算法(particle swarm optimization,PSO)。
粒子群優化算法是由Kennedy和Eberhart在1995年提出的群智能優化算法[1-2]。該算法具備計算快速和易實現等優點,作為群體智能算法的重要分支,得到了眾多學者廣泛深入的研究。且已應用于圖像處理[3-4]、工程設計[5]、無線傳感網絡[6-7]、經濟和模式識別等眾多領域。
粒子群優化算法具有高效、實現簡單等特點,已成功應用于許多現實優化任務[8],但存在多樣性差、易早熟收斂等問題,制約了粒子群優化算法的發展。為克服上述問題,眾多學者進行了大量研究。文獻[9]通過檢測粒子健康度,自適應過濾懶惰粒子,并引入引導因子過濾異常粒子。文獻[10]在分析粒子群算法進化方程的基礎上,通過在振蕩環節采用互不相同的參數值調節算法的勘探與開發能力。文獻[11]在粒子只受全局最優解影響的情況下,加入鎖定因子使粒子所受影響呈規律性,并與慣性權重配合,進一步提升算法性能。文獻[12]對種群粒子的運動軌跡進行分析,在標準PSO 速度更新公式上添加限制因子,確保種群收斂并提高收斂速度。文獻[13]按照當前全局最優更新的次數是否達到預設門限值,將種群分為正常和早熟兩種狀態,當種群在正常狀態,采用固定慣性權重的標準PSO公式進化;在早熟狀態則引入矢量高斯學習策略,為精英粒子增加服從高斯分布的隨機步長,且精英粒子進行矢量高斯學習的維度隨種群的進化而減少,以增強種群多樣性。文獻[14]中采用列維飛行作為隨機擾動步長,算法首先為種群各粒子預設一個閥值,當粒子未能自我更新的次數達到預設的閥值時,則使粒子繞當前全局最優做列維飛行,探索更多新區域;否則,按標準更新公式更新種群。
文獻[15]根據種群歷史最差和最好粒子的適應值,將當前每個粒子根據其適應值劃分不同等級,并分配對應的理想速度以更新粒子位置。算法給每個粒子分配專屬的慣性權重和加速因子,并把此三個參數作為問題的三個維度處理,將粒子當前位置到下一代位置的歐式距離絕對值定義為粒子的絕對速度,再根據粒子絕對速度和理想速度的關系更新三個參數。文獻[16]將標準PSO 位置更新公式中的速度項去除,以高斯變異項替代,并在種群中隨機選擇一定數量的粒子采用上述更新公式進化,以提高多樣性。文獻[17]結合隨機學習和列維飛行策略,在標準速度更新公式中增加一項,讓種群粒子以列維隨機步長向隨機選擇的粒子學習,在種群初始化后,當產生的隨機數小于預設閥值時,使用標準PSO 公式更新種群,否則使用改進的公式更新種群。文獻[18]在種群初始化階段,采用反向學習策略隨機初始化種群,取最優粒子作為初始種群,并對位置更新公式進行改進,在先前位置、速度項增加慣性權重,并讓粒子向當前全局最優學習,慣性權重、加速因子服從正余弦函數變化,以提高收斂速度。
上述算法采用整體維度更新策略,同時更新粒子每一維,可加快種群收斂速度。但是,在粒子的進化過程中,全局最優值與普通粒子每一維的進化方向不總是一致,可能出現整體適應度值改善而粒子某一維退化,或粒子某一維改善而整體適應度值變差等問題。
針對上面所述問題,本文提出具有動態子空間的隨機單維變異粒子群優化算法(stochastic single-dimensional mutated particle swarm optimization with dynamic subspace,SDMPSO)。為解決全局最優與普通粒子進化方向不一致問題,提出具有動態子空間的隨機單維變異策略:從粒子的自身維度中隨機不重復地挑選若干維度組成子空間,子空間隨迭代次數的增加而減小,每次只隨機選擇異于子空間的一維進行變異,待變異的維度等于子空間內各維度的平均值。同時,提出Pareto 速度分配策略:在算法設定的前20%迭代次數內,增強種群的勘探能力,探索更多的新解空間區域,為后期的平衡搜索做準備;后80%迭代次數內,保持種群的勘探能力與開發能力平衡,使種群進行有效的平衡搜索。
粒子群優化算法將所求解空間位置,類比鳥群運動時棲息地。鳥群抽象為粒子群,鳥群間信息傳遞類比各粒子相互學習和信息共享的過程。運動過程中的狀態信息對種群運動速度產生影響,實質為個體最優(pbest)和全局最優(gbest)控制粒子運動速度和方向,用數學形式實現該算法的過程如下。
設粒子數為N的種群,在維度為D的空間中搜索,粒子在解空間所處的位置可表示為xi=(xi1,xi2,…,xiD),i=1,2,…,N,代表第i個粒子的位置,每個xi都可由目標函數求得函數值f(xi)。vi=(vi1,vi2,…,viD),i=1,2,…,N,代表第i個粒子的速度。pbesti=(pbesti1,pbesti2,…,pbestiD),i=1,2,…,N,代表第i個粒子所經歷的歷史最優位置。gbest=(gbest1,gbest2,…,gbestD),代表整個種群的歷史最優位置。粒子速度和位置可按照以下公式更新:

式中,慣性權重w控制粒子先前速度,平衡粒子局部和全局搜索能力,當w較大時,粒子的全局搜索能力較強,反之粒子的局部搜索能力較強。公式中c1、c2為學習因子(也叫加速因子),可使粒子具有自我學習和向其他優秀粒子學習的能力,快速向最優解靠近。r1、r2為(0,1)內的隨機數為粒子i在第t次迭代時歷史最優位置的第j維為第t次迭代時整個種群歷史最優位置的第j維。
意大利經濟學家Pareto 認為,在任何一組事件中,最重要的占其中一小部分,約20%,其余80%盡管是多數,卻是次要的,這就是Pareto定律[19]。這種統計的不平衡性在社會、經濟及生活中無處不在。由Pareto定律可知,分析或處理問題時不平均用力,要把80%的資源或精力用于求解占問題約20%的重要部分。
勘探與開發是種群進化的兩個重要搜索能力。勘探能力強,種群能探索到更多解空間區域,提高尋得最優解的概率;開發能力強,種群可對最優解所在區域進行精細搜索,提高尋得最優解的精度。然而,當算法勘探能力強的階段持續時間過長,易導致種群收斂速度緩慢或錯過最優解;算法開發能力強的階段持續時間過長,則易導致種群早熟收斂而陷入局部最優。因此,保持算法勘探與開發能力相等的平衡搜索,是算法優化性能提升的關鍵。而且,算法在未經過充分勘探,未獲得更多新解空間區域的情況下,將降低平衡搜索的效率。
針對上述問題,根據Pareto定律指導算法在整個迭代過程的搜索狀態。Pareto 定律的關鍵是明確問題的主要任務。從種群的搜索狀態看,主要任務是保持勘探搜索與開發搜索的平衡。因此,依據Pareto定律,在算法設定的前20%迭代次數內,增強種群的勘探能力,探索更多的新解空間區域,為后期的平衡搜索做準備;后80%迭代次數內,保持種群的勘探能力與開發能力平衡,使種群進行有效的平衡搜索。上述過程可用如下公式實現:


式中,t表示當前迭代次數,Max_t表示最大迭代次數。c3=2+exp(-t/Max_t)+0.5,c4=0.5-exp(-t/Max_t)+2.0為加速因子。為收縮因子。c5=c6=2,χ2=0.6,r3、r4、r5、r6為(0,1)間的隨機數。
傳統PSO 算法具有一些不良的動力學特性,特別需要限制粒子的速度以控制它們的軌跡[20]。因此,式(3)、式(4)引入收縮因子限制粒子的速度。文獻[21]指出,自我認知項大于社會認知項,將導致搜索空間中的粒子過度徘徊。式(3)利用這一特性,使加速因子c3大于c4,增大自我認知項,使粒子能探索更廣的解空間區域。為使粒子保持自我認知項等于社會認知項的平衡搜索,設置式(4)中加速因子c5等于c6。
傳統PSO 算法采用整體維度更新策略,粒子每一維的值同時更新。但是,全局最優值的進化方向與普通粒子每一維的進化方向不總是一致,將出現整體適應度值改善而粒子某一維退化,或粒子某一維改善而整體適應度值變差等問題。
為不失一般性,仍以最小為最優,當D=5 時,該函數的最優解為(0,0,0,0,0)。當在解空間中存在某個粒子的位置為xt(1,0,2,4,3)時,f(xt)=30,根據PSO 算法公式更新后,若粒子維度變為xt+1(0,4,0,4,0),此時f(xt+1)=32。由于f(xt+1)>f(xt),xt+1(0,4,0,4,0)將不會作為最優解保留。相比xt的維度值,xt+1的第1、3 和5 維都有較大改善,但僅因第2 維退化而使整個粒子的適應值變差。
針對此問題,提出具有動態子空間的隨機單維變異策略:從粒子的自身維度中,隨機不重復地挑選若干維度組成子空間,子空間的大小隨迭代次數的增加而逐漸減小,每次只隨機選擇異于子空間的一維進行變異,其值等于子空間內各維度的平均值。具體可用下式表示:

式(5)中,int 表示取整函數,t表示算法當前迭代次數,Max_t表示最大迭代次數,d∈(1,2,…,D-1)為子空間內的總維度數。式(5)表示子空間內的總維度數d隨迭代次數的增加而減少。式(6)中,rand1_j∈D為維度D內隨機選擇的一維。rand2_ji為進行第i次隨機不重復的挑選時,從粒子維度D內挑選的第rand2_j維,rand1_j≠rand2_ji。式(6)表示只隨機選擇粒子異于子空間的一維進行變異,其值等于子空間內各維度的平均值。
通過單維變異的方式,使某一維的進化不影響其他維。同時,單維變異沒有破壞粒子群的整體結構,不影響粒子群正在進行的局部精細搜索。粒子進化到后期,只有某一維或某幾維未達到最優解,單維變異可針對某一較差維度進行變異,能有效地提升收斂速度并得到更高質量解。
種群粒子在進化過程中,追隨個體最優(pbest)和全局最優(gbest)運動,個體最優代表種群進化到當前代時最優的位置群體,全局最優從個體最優中產生。本文提出的具有動態子空間的隨機單維變異策略,從粒子自身維度中,隨機選取若干維度組成子空間,粒子擁有優質的維度值,對變異產生高質量解至關重要。
因此,為保證進行變異粒子的維度質量,本文選擇所有個體最優和全局最優粒子進行變異。具體可用下式表示:

在算法求得個體最優和全局最優后,分別對這兩類優質粒子進行變異,增強種群的多樣性。該策略隨機選擇pbest和gbest的某一維進行變異,“隨機”的不確定性,可能導致原優質維度值被舍棄,替換成變異后的低質量維度值。pbest和gbest變異后,直接通過自我認知項和社會認知項影響粒子速度。因此,本文的速度更新公式,選擇具有收縮因子的式(3)和式(4),作為新速度更新模型,收縮因子同時控制先前速度項、自我認知項和社會認知項。文獻[12]指出,當隨機性被引入具有收縮因子的完整模型時,隨機性帶來的有害影響將被控制。新算法運行步驟可用如下偽代碼表示。

算法依據Pareto定律,在算法設定的前20%的迭代次數內,增強種群的勘探能力,探索更多的新解空間區域,為后期的平衡搜索做準備;后80%的迭代次數內,保持種群的勘探能力與開發能力平衡,使種群進行有效的平衡搜索。
為驗證采用Pareto速度分配策略,能更有效地提高算法的優化性能,記該速度分配策略為2/8,將其與速度分配策略分別為1/9、3/7、4/6、5/5、9/1、8/2、7/3、6/4、1/0 和0/1 的策略進行比較,實驗選取12 個常用的測試函數Sphere(f1)、Schwefel's P2.22(f2)、Schwefel's P1.2(f3)、Schwefel's P2.21(f4)、Rosenbrock(f5)、Step(f6)、Quartic(f7)、Schwefel's P2.26(f8)、Rastrigin(f9)、Ackley(f10)、Griewank(f11)、Penalized1(f12),在維度D=30,評估次數為20萬次的條件下進行比較,算法獨立運行30 次,Mean 表示30 次運行的最優解平均值,Std表示標準差,所得結果見表1所示。
表1 中,本文采取的2/8 策略在5 個函數上取得最優解,在另兩個函數上取得的Mean比其他策略更優,將各策略最優解平均值進行Friedman檢驗,所得表2 中2/8 策略下秩均值最小(4.33),驗證了該策略能更有效提高算法的優化性能。
粒子進化前期,多數維度未到達最優解位置,存在少數離最優解較近的維度;在進化后期,若粒子陷入局部最優,其多數維度已到達最優解位置,只存在少數未到達最優解位置的維度。為證明此現象,對標準PSO 算法在10 維條件下,對Shifted and Rotated Schwefel’s Function 進行測試,迭代次數為2 500 代,可行域[-100,100]。選種群當前最優粒子(gbest)為研究對象,記錄其在100和2 400代的維度信息,繪制成圖1和圖2。
圖中橫坐標D_1~D_10 表示gbest的10 個維度,縱坐標表示各維度的維度值,柱狀圖為gbest所得各維度的具體數值,折線為函數在各維度的最優值(optimum)。由圖1和圖2可知,gbest在100代時,第1、4、5 和第7 維離最優解位置相對較近,其他維度相對較遠;gbest在2 400 代時,第1、2、3、4、5、7、8 和第10維離最優解位置相對較近。
因此,本文采取的策略中,子空間大小動態變化,在粒子進化前期選取多數維度組成子空間,增大變異維度的多樣性,使粒子探索更多新區域;后期選取少數維度組成子空間,使維度變異不過于激進,增強粒子精細搜索的能力。
為驗證動態子空間策略能更有效平衡勘探與開發能力,將其與子空間大小固定的策略進行比較,在維度D=10 的條件下,分別固定1,2,…,10 維作為子空間大小,與動態子空間策略在12 個常用測試函數上進行比較,評估次數設為10萬次。為方便書寫,記動態子空間策略為Dyn_D,子空間大小固定的策略分別記為D_1~D_10,各策略獨立運行30 次,結果見表3所示。

Table 1 Speed allocation strategy test results表1 各速度分配策略測試結果

Table 2 Friedman test result表2 Friedman 檢驗結果

Fig.1 Dimension value in 100 generations圖1 100代時維度值

Fig.2 Dimension value in 2400 generations圖2 2 400代時維度值
動態子空間策略與其他10種子空間大小固定的策略相比,在7 個函數上取得的最優解更優,將表4中所得平均值進行Friedman 檢驗,動態子空間策略所得秩均值最?。?.21),驗證了本文采用動態子空間策略的綜合優化性能更強。

Table 3 Comparison results between dynamic subspace and fixed subspace strategy表3 動態子空間與固定子空間策略比較結果

Table 4 Friedman test result表4 Friedman 檢驗結果
引入26 個基準函數進行仿真實驗,函數分為4類:f1、f2、f4、f15、f16、f17、f18、f19和f20為單模函數,f3在低維時為單模函數,高維時為多模函數;f5、f6、f7、f8、f9、f10、f21、f22、f23、f24、f25和f26為多模函數;f11、f12、f13和f14為旋轉函數。表5中列出了26個測試函數的基本信息。本文算法(SDMPSO)的參數設置如下:種群規模N設置為20,Max_t表示最大迭代次數,t表示當前迭代次數。在種群進化的前20%×Max_t的迭代次數內,加速因子c3=2+exp(-t/Max_t)+0.5,c4=0.5-exp(-t/Max_t)+2.0,收縮因子在后80%×Max_t的迭代次數內,加速因子c1=c2,收縮因子χ3=0.6。各對比算法的參數設置參照文獻[20]。
將SDMPSO 再與7 種知名PSO 改進算法分別在維度D=30,50,100 的條件下對比,這7 種算法分別為LFPSO(particle swarm optimization algorithm with Levy flight)[14]、RPSOLF(particle swarm optimization algorithm with random learning mechanism and Levy flight)[17]、H-PSO-SCAC(hybrid particle swarm optimizer with sine cosine acceleration coefficients)[18]、HPSO-TVAC(self- organizing hierarchical particle swarm optimizer with time-varying acceleration coefficients)[21]、CLPSO(comprehensive learning particle swarm optimizer)[22]、DMS-PSO(dynamic multi-swarm particle swarm opt-imizer)[23]、PSOLF(particle swarm optimization with Levy flight)[24]。各算法的參數都按照原文獻設置,當D=30 時,評估次數設為20 萬次;D=50 時,評估次數設為25 萬次;D=100 時,評估次數設為50 萬次。所有算法獨立運行30 次,最終結果取30 次的平均值,具體實驗數據見表6~表8所示,表中Mean表示平均最優適應值,標準差用Std 表示,最好值在表中用粗體標示。

Table 5 Benchmark function表5 測試函數

續表
表6~表8 中實驗數據來源如下:CLPSO、DMS-PSO 在維度為30、50、100 時,所測試函數f1、f2、f3、f4、f6、f7、f8、f9和f10的數據引自文獻[25];f5、f11、f12、f13和f14在30、50 維的數據引自文獻[17]和文獻[26]。HPSO-TVAC 在30 維的數據引自文獻[17]。LFPSO、PSOLF 在30、50 維的數據引自文獻[24];PSOLF 在100 維時,f1、f2、f3、f4、f6和f8的數據引自文獻[24]。RPSOLF 在30 維時數據引自文獻[17]。H-PSO-SCAC在30和50維時,f3、f4、f6、f7、f8的數據引自文獻[18]。表中剩余未提及的函數數據,原文獻未進行測試,為筆者按文獻的思路實現所得,并在表中用“*”在數據右上角標示。
分析表6~表8數據,得出以下結論:
(1)SDMPSO算法性能分析
在相同評估次數下,SDMPSO算法在D=30、50、100 維時,所測函數f1、f2、f6、f8、f12、f13和f14全部求得最優解,所測函數f9和f10同樣求得比其他算法更高質量的解,測試f3、f4和f5函數所得最優解相比其他算法優勢明顯。雖測試維度升高,算法仍能保持較好優化性能。
(2)其他算法優化性能分析
CLPSO 在測試函數f5時優勢明顯,測試其余函數時,在30 維能夠取得較好質量解,但在50、100 維時算法性能有待加強。CLPSO主要借助不同的個體最優(pbest)優勢信息產生最優解,但因其在搜索過程中種群常更新停滯,早熟收斂仍是CLPSO 需解決的問題。
HPSO-TVAC算法引入時變的加速因子控制“社會認知”和“自我認知項”,但當進化后期粒子聚集時,難以逃離局部最優。DMS-PSO 算法將種群中粒子分為多個子種群,通過各子種群的信息交流以平衡算法勘探與開發能力,但各子種群的協作能力仍有待提高。HPSO-TVAC 和DMS-PSO 在測試函數f9、f10時優勢明顯,測試其余函數時,上述算法在低維時能求得較好質量的解,在高維搜索時算法易陷入局部最優。

Table 6 30-dimensional test results表6 30維的測試結果

Table 7 50-dimensional test results表7 50維的測試結果

續表

Table 8 100-dimensional test results表8 100維的測試結果
LFPSO、PSOLF、RPSOLF都采用列維飛行策略,使種群增加隨機步長,其中LFPSO 使種群粒子繞著最優解做列維飛行,在算法后期種群易更新停滯,故LFPSO 在低維時測試單模和多模函數,搜索到最優解的質量較高,但在高維仍易陷入局部最優。PSOLF 和RPSOLF 則另增加了隨機選擇策略,在一定概率范圍內使用列維飛行策略,在測試函數f1、f2、f6、f8、f12、f13和f14時求得函數最優解,但在高維條件下測試f9、f10時算法仍陷入局部最優。
H-PSO-SCAC采用sin、cosine函數控制加速因子的變化,并在使用反向學習初始化種群后,采用改進的速度更新公式,其在優化函數f4時,能夠取得較高質量的解,在函數f1、f2、f6、f8、f12、f13、f14同樣求得函數最優解,但在測試函數f9和f10時,算法仍陷入局部最優。
(3)各算法性能統計分析
為進一步綜合評價SDMPSO 算法的性能,引入Friedman 檢驗分析所得測試數據,秩均值作為Friedman 檢驗的評價參數,該值越小,表明算法的性能更優。表9 給出各算法數據經Friedman 檢驗后的秩均值,并在小括號內給出其在所有算法中的排名。表中SDMPSO 算法在維度D=30、50 和100 維時,所得秩均值最小,故該算法性能更優。H-PSO-SCAC、RPSOLF、PSOLF 算法在維度逐漸增高時,其在多數函數上都能保持較好的優化性能,在少數復雜多模函數上,優化性能逐漸下降。CLPSO、HPSO-TVAC、DMS-PSO、LFPSO 算法在維度逐漸增高后,各算法在測試函數上的優化性能逐漸下降。

Table 9 Friedman test result表9 Friedman 檢驗結果
在Wilcoxon檢驗中,P-values小于0.05則表示兩對比算法存在顯著差異。表10 顯示,SDMPSO 在30、50 和100 維時,顯著優于CLPSO、HPSO-TVAC、DMS-PSO和LFPSO。

Table 10 Wilcoxon test result表10 Wilcoxon 檢驗結果
圖3(a)~圖3(n)中,在維度為30,評估次數20萬次的條件下,對SDMPSO 算法與CLPSO、HPSO-TVAC、DMS-PSO、LFPSO、PSOLF、RPSOLF 和H-PSO-SCAC算法,在函數f1~f14優化過程中的收斂性能進行分析,圖中橫坐標FEs 表示評估次數,Fitness 表示算法所得適應值。
在單模函數Sphere、Schwefel2.22 上,所有算法在Sphere 函數上都能夠求得較高精度解,但SDMPSO 算法求得最優解所用評估次數更少,收斂速度最快。在Schwefel2.22 上,DMS-PSO 算法未能求得最優解,其余算法能求得較高精度解,但消耗的評估次數比SDMPSO算法多。
在單模函數Rosenbrock、Quartic上,H-PSO-SCAC的優化性能突出,能求得比其他算法更高精度解。SDMPSO 算法相比其他算法,收斂到較有優勢的解且收斂速度較快。
在多模函數Schwefel2.26上,CLPSO的優化性能相比其他算法優勢明顯,所求解的精度最高,收斂速度最快。SDMPSO對此函數的優化能力相比其他函數較有優勢。
在多模函數Rastrigin、Ackley、Griewank 上,SDMPSO、PSOLF、RPSOLF 和H-PSO-SCAC 都能求得最優解,SDMPSO相比其他算法在收斂速度上,有較大優勢。其余算法收斂速度慢,且收斂精度低。

Fig.3 Graph of function convergence圖3 函數收斂曲線圖
在多模函數Penalized1、Penalized2 上,H-PSO-SCAC 和PSOLF 收斂精度較低,其他算法能夠收斂到較高精度的解,SDMPSO算法的收斂速度更快,精度更高。
在旋轉函數Rotated Schwefel2.26 上,PSOLF 的收斂精度最高,SDMPSO 相比其他算法收斂速度和精度有較大優勢。在旋轉函數Rotated Rastrigin、Rotated Ackley、Rotated Griewank 上,SDMPSO、PSOLF、RPSOLF 和H-PSO-SCAC 都能求得最優解,SDMPSO 在收斂速度上優勢明顯,其余算法未能求得最優解。
近年來,在智能計算領域,另提出了許多較有優勢的算法[27],且已成功應用于工程實踐。人工蜂群算法(ABC)是Karaboga受蜜蜂覓食啟發,于2005年提出的新智能算法,該算法具有較好的勘探能力,在解決高維和多模問題時優勢明顯。文獻[28-29]在多組不同特性的Benchmark函數上,將ABC算法與主流的智能算法遺傳算法(genetic algorithm,GA)、差分進化算法(differential evolution,DE)和PSO 等算法進行比較,結果表明ABC算法在處理復雜多模函數上性能更優。
ABC 算法每次只選擇父代的一維進行變異,本文算法同樣采用單維變異的策略得出新的粒子位置。因此,為進一步驗證算法的優化性能,選取新改進的人工蜂群算法:GABC(gbest-guided artificial bee colony algorithm)[30]、qABC(quick artificial bee colony algorithm)[31]、best-so-far ABC(best-so-far selection in artificial bee colony algorithm)[32]、dABC(directed artif-icial bee colony algorithm)[33]、MABC(modified artificial bee colony algorithm)[34]和MPGABC(modified Gbest-guided artificial bee colony algorithm)[35]算法在22 個基準測試函數上進行比較,測試維度為100 維,評估次數為500 000次。所有算法獨立運行25次,最終結果取25次的平均值,具體實驗數據見表11所示,表中Mean為平均最優適應值,標準差用Std 表示,最好值在表中用粗體標示。表中數據來源和參數設置參考文獻[35]。
分析表11數據,得出以下結論:
(1)SDMPSO算法性能分析
在D=100 維時,算法所測函數f1、f6、f8、f19、f21和f20全部求得最優解,在f2、f4、f9、f15、f16、f18、f20、f23、f24和f25函數上同樣求得高質量解,其余函數相比其他算法也有較大優勢。
(2)其他算法優化性能分析
在D=100 維時,GABC在函數f6、f19、f21、f25和f26上全部求得最優解,在f5和f20函數求得高質量解,其余函數上優化性能較好。qABC、best-so-far ABC 和dABC 在函數f19、f25和f26上全部求得最優解,在f20函數上求得解質量較高,對其余函數的優化性能有待加強。MABC 在函數f19、f6、f21、f24、f25和f26上取得最優解,在f7、f9、f10、f20和f23函數上取得高質量解,其余函數上求得解優勢較大。MPGABC 在函數f6、f19、f21、f25和f26上求得最優解,在f3、f9、f10、f17、f20和f23函數上求得解質量較高,其余函數上求得解優勢明顯。
(3)各算法性能統計分析
對表11 中所得數據進行Friedman 檢驗分析,表12 列出各算法數據經Friedman 檢驗后的秩均值,并在小括號內給出所有算法的排名。表中,SDMPSO算法在維度D=100 維時,所得秩均值最小,故該算法綜合優化性能更強。在Wilcoxon檢驗中,P-values小于0.05則表示兩對比算法存在顯著差異。表12中顯示SDMPSO在100維時,顯著優于qABC和dABC算法。
群智能算法經過近幾年的大量研究,絕大多數改進算法對較早版本的基準測試函數有較好優化效果。因此,本文采用新近提出的測試函數CEC 2015[36]進一步驗證算法的優化性能,其包含的15 個測試函數中,所有函數在各個維度的最優解都不相同。將SDMPSO分別與新近提出的改進螢火蟲算法VSSFA(variable step size firefly algorithm)[37]、WSSFA(wise step strategy for firefly algorithm)[38]、螢火蟲與粒子群混合優化算法(hybrid firefly and particle swarm optim-ization algorithm,FFPSO)[39]比較,維度D=30,評估次數為1 500。
表13為各算法在CEC 2015測試函數上,獨立運行30次后所得平均最優適應值。SDMPSO算法在所測15 個函數中,有6 個函數占較大優勢。表14 對各算法進行Friedman 檢驗,SDMPSO 算法所得秩均值最小,再次驗證SDMPSO 對新測試函數同樣具有較好優化效果。

Table 11 100-dimensional data表11 100維數據

Table 12 Result of Friedman and Wilcoxon test表12 Friedman和Wilcoxon檢驗結果

Table 13 Mean optimum of CEC 2015 experiment表13 CEC 2015 平均最優適應值

Table 14 Result of Friedman test表14 Friedman檢驗結果
針對粒子群算法采用整體維度更新策略,易存在某一維或某幾維未達到最優解而導致粒子整體適應值變差等問題。本文主要提出兩種改進策略:(1)提出Pareto 速度分配策略控制算法在整個迭代過程的搜索狀態,在前20%的迭代次數內,探索新解空間區域,為后80%迭代次數內進行平衡搜索做準備,提高搜索的效率。(2)提出具有動態子空間的隨機單維變異策略,每次只隨機選擇粒子的一維進行變異,其值等于子空間內各維度的平均值。通過子空間的動態調整,得到高質量的變異值,改善粒子的整體維度質量。
將本文算法在30、50 和100 維的條件下,與新近改進的高水平粒子群算法在單模、多模和旋轉函數上進行比較。數值實驗結果表明,本文算法在收斂精度和收斂速度上高于其他粒子群算法。同時與改進的人工蜂群算法和螢火蟲算法進行比較,實驗結果同樣表明本文算法優化性能更強。但是,算法在處理某些高維復雜函數時仍易陷入局部最優。因此,在下一步的研究工作中,將在挑選變異的維度方面,可提出新的策略替代隨機挑選的方式,進一步提高變異的效率。