王彬,任露,王曉帆,曹雅娟
(1.西安理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,陜西 西安 710048;2.西安理工大學(xué)陜西省網(wǎng)絡(luò)計(jì)算與安全技術(shù)重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710048)
隨著現(xiàn)代科技的不斷發(fā)展,為了得到最佳的解決方案,需要對(duì)工程問題進(jìn)行數(shù)學(xué)建模求解,但是許多大規(guī)模優(yōu)化問題在建模之后目標(biāo)函數(shù)不可導(dǎo),導(dǎo)致傳統(tǒng)的優(yōu)化算法難以求解。為了更好地求解大規(guī)模優(yōu)化問題,研究者不斷探索并設(shè)計(jì)出更加高效的進(jìn)化算法[1-10]。求解大規(guī)模優(yōu)化問題有2 種主流進(jìn)化方法,具體介紹如下。
1) 基于非分解的方法
文獻(xiàn)[11]提出了多軌道搜索算法,該算法有3 個(gè)全局搜索能力和局部搜索能力不同的搜索算子,在進(jìn)化過程中,使用這3 個(gè)搜索算子對(duì)目標(biāo)空間進(jìn)行搜索,3 個(gè)搜索算子在種群進(jìn)化過程中相輔相成,使全局搜索和局部搜索能夠得到均衡。文獻(xiàn)[12]提出了多后代采樣算法,具體是在種群進(jìn)化的開始為每種算法分配相同的計(jì)算資源,在之后的進(jìn)化過程中,根據(jù)種群中個(gè)體的適應(yīng)度值對(duì)每種算法進(jìn)行評(píng)價(jià),然后計(jì)算出2 種算法在進(jìn)化過程中的參與率,根據(jù)參與率計(jì)算出下一輪優(yōu)化過程中每種算法被分配的計(jì)算資源,不斷進(jìn)化直到計(jì)算資源用盡。與其他算法相比,其性能較好,但是多后代采樣算法對(duì)優(yōu)化算子的選擇比較敏銳,不同優(yōu)化算子會(huì)影響算法的性能。
2) 基于分解的方法
比較典型的是合作協(xié)同進(jìn)化(CC,cooperative coevolution)算法,即對(duì)優(yōu)化問題進(jìn)行分解,將高維優(yōu)化問題分解為多個(gè)低維優(yōu)化問題,然后對(duì)每個(gè)子組件進(jìn)行優(yōu)化。合作協(xié)同進(jìn)化算法的性能取決于分解策略,目前研究者已經(jīng)提出了多種分解策略。文獻(xiàn)[13]為了提高遺傳算法的性能,首次提出將問題進(jìn)行分解,使用的分解策略是單維分解和折半分解。單維分解是將M維問題分解成M個(gè)一維問題;折半分解是將整個(gè)優(yōu)化問題一分為二。在30 維測試函數(shù)上進(jìn)行測試,對(duì)于可分的問題,該算法的性能比遺傳算法好;對(duì)于不可分的問題,由于在分解過程中2 種策略并沒有考慮變量之間的相關(guān)性,因此算法性能不如遺傳算法好,并且隨著優(yōu)化問題維度的增加,這2 種分解策略會(huì)失效。文獻(xiàn)[14]將CC框架應(yīng)用到粒子群優(yōu)化算法,使用的分解策略是固定分組策略,它將一個(gè)M維的優(yōu)化問題分解成S個(gè)k維的問題,即M=Sk,但是這種固定分組策略只對(duì)低于30 維的優(yōu)化問題有效。以上幾種分解策略都需要預(yù)先設(shè)置問題分解的數(shù)目,且對(duì)高維問題效果不佳。文獻(xiàn)[15]提出了隨機(jī)分組策略,可以對(duì)變量進(jìn)行隨機(jī)分組,這種分組方法增大了將有關(guān)聯(lián)性的變量分到同一子組件的概率,但是隨著有關(guān)聯(lián)性變量的數(shù)目增加,隨機(jī)分組的性能就會(huì)下降。文獻(xiàn)[16]提出了多層次的協(xié)同進(jìn)化算法用來解決上述問題,設(shè)置了一個(gè)分解器池,里面不同的分解器代表不同的分組數(shù)目,記錄每個(gè)分解器的性能,在進(jìn)化過程中根據(jù)記錄的歷史數(shù)據(jù)自適應(yīng)地選擇合適的分解器,根據(jù)分解器中的分組數(shù)目,將目標(biāo)向量分解成設(shè)定的子組件。雖然多層次的協(xié)同進(jìn)化克服了隨機(jī)分組手動(dòng)設(shè)置分組大小的缺點(diǎn),但是在實(shí)際應(yīng)用中并不廣泛。文獻(xiàn)[17]提出了差分分組(DG,differential grouping)策略,能夠檢測變量之間的關(guān)聯(lián)性。DG與其他的分組策略相比具有良好的性能,但它只能檢測變量之間的直接相關(guān)性,并不會(huì)檢測間接相關(guān)性,在一些測試集上的效果并不理想。文獻(xiàn)[18]提出了擴(kuò)展的差分分組(XDG,extended differential grouping)策略來解決DG 的缺陷。
總之,合作協(xié)同進(jìn)化算法利用分組策略將大規(guī)模優(yōu)化問題進(jìn)行分解,加快了進(jìn)化過程的收斂速度,但當(dāng)決策變量部分可分離或完全不可分時(shí),協(xié)同進(jìn)化的優(yōu)化效果并不理想,因?yàn)楹献鲄f(xié)同進(jìn)化只是根據(jù)變量之間的相關(guān)性將變量進(jìn)行一個(gè)大的分類,并沒有考慮分類之后每個(gè)子組件中變量之間的相互作用是否影響進(jìn)化過程?;谏鲜龇治觯疚奶岢隽艘环N基于協(xié)方差分析的合作協(xié)同進(jìn)化差分進(jìn)化算法,簡稱CC-COV-DE 算法。
本文的主要研究工作如下。
1) 在協(xié)同進(jìn)化利用分組策略對(duì)決策變量進(jìn)行分組之后,針對(duì)子組件中變量之間的相關(guān)性對(duì)種群進(jìn)化過程的影響進(jìn)行了分析。
2) 在種群進(jìn)化開始時(shí)對(duì)問題進(jìn)行傳統(tǒng)分解,在優(yōu)化每個(gè)子組件時(shí)利用協(xié)方差分析子組件中變量的數(shù)據(jù)特征,構(gòu)造協(xié)方差矩陣,根據(jù)特征向量旋轉(zhuǎn)原始坐標(biāo)系,目的是消除組內(nèi)變量之間的相關(guān)性,提高算法的性能。
3) 提出了一種基于協(xié)方差分析的合作協(xié)同差分進(jìn)化算法,并在CEC 2014 測試集上與最新的差分進(jìn)化算法進(jìn)行了仿真實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果證實(shí)了所提算法的有效性、高效性以及可競爭性。
進(jìn)化算法作為元啟發(fā)式的算法,其思想類似于達(dá)爾文進(jìn)化論,簡單易懂,操作容易,可被廣泛應(yīng)用于求解優(yōu)化問題。差分進(jìn)化(DE,differential evolution)是經(jīng)典的進(jìn)化算法[19]。
差分進(jìn)化的操作包括突變、交叉和選擇,使用一組實(shí)參向量xi=(xi1,…,xiD),i=1,2,…,N表示,其中,D是問題的維度,N是種群規(guī)模。在種群開始進(jìn)化之前,隨機(jī)初始化種群中的個(gè)體;在進(jìn)化過程中,通過突變操作產(chǎn)生突變向量,根據(jù)交叉操作產(chǎn)生實(shí)驗(yàn)向量,最后通過選擇操作為下一代選擇適應(yīng)度值較好的個(gè)體。差分進(jìn)化的操作過程如下。
1) 突變
在進(jìn)化過程中,通過目標(biāo)向量xi,G來產(chǎn)生突變向量vi,G。突變計(jì)算式為
其中,r1,r2,r3是從[1,N]中隨機(jī)選擇的不同于i的下標(biāo),F(xiàn)是比例因子。
2) 交叉
根據(jù)目標(biāo)向量xi,G和突變向量vi,G,生成實(shí)驗(yàn)向量ui,G。二項(xiàng)式交叉操作為
其中,rand(0,1)是0 和1 之間的隨機(jī)數(shù),jrand是從[1,D]中隨機(jī)選擇的決策變量的下標(biāo),CR 是交叉率。
3) 選擇
使用貪婪選擇,在目標(biāo)向量xi,G和實(shí)驗(yàn)向量ui,G之間根據(jù)目標(biāo)函數(shù)的適應(yīng)度值選擇較好的個(gè)體進(jìn)入下一代,選擇計(jì)算式為
由DE 的操作過程可以看出,當(dāng)控制參數(shù)較少時(shí),操作相對(duì)簡單,可以在低維優(yōu)化問題中快速找到最優(yōu)解。
合作協(xié)同進(jìn)化框架最早在1994 年被提出來解決大規(guī)模優(yōu)化問題,首先將高維問題分解成多個(gè)低維問題,然后對(duì)子組件進(jìn)行循環(huán)優(yōu)化。合作協(xié)同進(jìn)化算法的偽代碼如算法1 所示。
算法1合作協(xié)同進(jìn)化算法
1) 初始化種群
2) 使用分組策略將原始問題分解為m個(gè)低維度子組件
3) seti=1 開始一個(gè)新循環(huán)
4) 使用特定的進(jìn)化算法來優(yōu)化第i個(gè)子組件并分配固定數(shù)量的評(píng)估時(shí)間
5) ifi<mtheni++,轉(zhuǎn)至步驟3)
6) end if
7) if 滿足停止條件do
8) 停止循環(huán)
9) else
10) 轉(zhuǎn)至步驟2)進(jìn)行下一個(gè)循環(huán)
11) end if
協(xié)同進(jìn)化求解大規(guī)模優(yōu)化問題的核心是如何對(duì)問題進(jìn)行分解,即選擇什么樣的分解策略。
實(shí)際工程領(lǐng)域中的優(yōu)化問題較復(fù)雜,擴(kuò)展的差分分組策略彌補(bǔ)了差分分組在識(shí)別相互關(guān)系上的缺陷,XDG 可以識(shí)別變量之間的2 種交互類型,如圖1 所示。類型Ⅰ表示變量之間的直接交互關(guān)系,如x1和x2、x2和x3;類型Ⅱ表示變量之間的間接交互關(guān)系,如x1和x3。
圖1 變量之間的2 種交互類型
變量之間的相關(guān)性定義如下。
定義1f(x)是部分可分函數(shù),對(duì)于 ?a,b1≠b2,δ∈R,δ≠ 0,如果滿足
則xp和xq不可分離,存在相關(guān)性,其中,
定義2在目標(biāo)函數(shù)f(x)中,如果xi和xj是直接相關(guān)的,則存在候選解x*滿足式(6),直接相關(guān)定義為xi?xj。
如果xi和xj是間接相關(guān)的,則所有的候選解滿足式(7)。
XDG 根據(jù)決策變量之間的相互關(guān)系將原問題進(jìn)行分解。在對(duì)問題進(jìn)行分解時(shí),其可分成3 個(gè)階段。第一階段是確定變量之間的直接交互,根據(jù)定義1 以成對(duì)的方式檢測變量之間的交互關(guān)系。第二階段是為了確定變量之間的間接交互關(guān)系,搜索第一階段中子組件中的重疊部分,合并公共變量的子組件。第三階段是將所有可分離變量分配到同一子組件中,XDG 分組之后每個(gè)子組件之間是可分離的,但是子組件中的變量是相互關(guān)聯(lián)的。
1) 高維問題中子組件變量相關(guān)增加
求解大規(guī)模優(yōu)化問題最常見的方法是將高維問題分解成低維問題,即根據(jù)決策變量的相關(guān)性對(duì)所求解的優(yōu)化問題,將有相互依賴關(guān)系的變量分配到同一個(gè)子組件中,然后對(duì)所有的子組件循環(huán)進(jìn)行優(yōu)化。在問題完全可分的情況下,利用這種方法求解優(yōu)化問題可以很大程度地提高算法的性能,加快種群的收斂。
如果在沒有端元光譜庫的情況下,利用該模型進(jìn)行混合像元分解,通常的做法是先估計(jì)出端元的個(gè)數(shù),然后提取端元光譜,再結(jié)合高光譜遙感圖像,進(jìn)行基于最小二乘或其他方法的豐度估計(jì)[14]。然而,基于這種解混方法的思路,如果端元數(shù)目估計(jì)不準(zhǔn)確,會(huì)給解混結(jié)果造成一定的影響。另外,由于同類地物端元存在光譜變異性,如果每種地物僅用一條標(biāo)準(zhǔn)的光譜定義也會(huì)造成結(jié)果不精確。為了解決上述問題,需要擺脫傳統(tǒng)解混方法思路的束縛,尋找新的解混框架和模型,獲取更精確的解混結(jié)果。隨著端元光譜庫的普及以及稀疏表示理論的發(fā)展,可以借助端元光譜庫對(duì)高光譜遙感圖像進(jìn)行稀疏解混,具體介紹如下。
如圖2 所示,低維優(yōu)化問題中,由于維度較低,部分子組件內(nèi)部變量關(guān)聯(lián)性較低的概率較大,其中,子組件1、子組件2 和子組件4 中的變量有相互依賴關(guān)系,子組件3 中的變量在進(jìn)化過程中不依賴其他任何變量,因而在進(jìn)化過程中子組件3 的進(jìn)化速度要比其他組件的進(jìn)化速度快。
圖2 低維優(yōu)化問題的變量相關(guān)
如圖3 所示,高維優(yōu)化問題中,隨著維度的增加,子組件中被分配到的變量數(shù)目增加,相較于圖2中的低維問題,分組之后,每個(gè)子組件中變量之間的關(guān)聯(lián)概率增加。
圖3 高維優(yōu)化問題的變量相關(guān)
2) 子組件的變量相關(guān)性影響協(xié)同進(jìn)化
協(xié)同進(jìn)化在種群的進(jìn)化過程中并沒有考慮子組件中相互作用的變量對(duì)進(jìn)化的影響,利用差分算法對(duì)子組件進(jìn)行優(yōu)化的過程中,變量之間的相互性會(huì)影響子組件的優(yōu)化。
相關(guān)變量對(duì)DE 搜索過程的影響如圖4 所示。理想情況下,根據(jù)DE 的突變計(jì)算式在目標(biāo)空間中產(chǎn)生的突變向量是vi,G,但是向量與向量是相關(guān)的,向量的變化會(huì)影響向量。在進(jìn)化過程中,會(huì)受的影響,從而產(chǎn)生突變向量vi,G,vi,G相較于vi,G偏離了全局最優(yōu)向量。
圖4 相關(guān)變量對(duì)DE 搜索過程的影響
3) 采用協(xié)方差分析的坐標(biāo)旋轉(zhuǎn)消除變量相關(guān)
基于種群個(gè)體分布特征向量的坐標(biāo)旋轉(zhuǎn)如圖5所示。優(yōu)秀個(gè)體往往分布在最優(yōu)解周圍,在假設(shè)高斯分布的基礎(chǔ)上,利用優(yōu)秀個(gè)體的位置,計(jì)算種群的協(xié)方差矩陣,估計(jì)分布的特征向量和特征值;利用計(jì)算出來的特征向量,對(duì)原坐標(biāo)系(X,Y)進(jìn)行旋轉(zhuǎn),并重新計(jì)算個(gè)體在新坐標(biāo)系(X′,Y′)下的坐標(biāo);在新坐標(biāo)系下,個(gè)體的變量相關(guān)性降低,進(jìn)化效率得到提高;將在新坐標(biāo)系下進(jìn)化得到的個(gè)體映射回原坐標(biāo)系,計(jì)算適用度。
圖5 基于種群個(gè)體分布特征向量的坐標(biāo)旋轉(zhuǎn)
在進(jìn)化過程中,根據(jù)變量之間的相關(guān)性對(duì)變量進(jìn)行分組,當(dāng)子組件中相互依賴的變量數(shù)目有很多時(shí),會(huì)受變量之間的相互依賴牽引,種群在進(jìn)化過程中很容易陷入局部最優(yōu)。因此,為了提高算法的性能,提出了基于協(xié)方差分析的合作協(xié)同進(jìn)化差分進(jìn)化算法,在使用分組策略對(duì)決策變量進(jìn)行分組之后,使用協(xié)方差分析每個(gè)子組件中變量的特征,根據(jù)特征向量對(duì)坐標(biāo)進(jìn)行旋轉(zhuǎn),消除變量之間的相關(guān)性。
CC-COV-DE 算法的流程如圖6 所示。
圖6 CC-COV-DE 算法的流程
1) 利用XDG 策略根據(jù)變量之間的相關(guān)性對(duì)問題進(jìn)行分解。
2) 在子組件優(yōu)化過程中,使用協(xié)方差對(duì)子組件中的變量進(jìn)行特征分析,構(gòu)造協(xié)方差矩陣,對(duì)原始坐標(biāo)系進(jìn)行旋轉(zhuǎn),使子組件中變量之間的關(guān)聯(lián)性可以消除,從而避免在進(jìn)化過程中陷入局部最優(yōu),導(dǎo)致種群進(jìn)化過程停滯。
在差分進(jìn)化優(yōu)化器中,對(duì)于子組件中的M個(gè)個(gè)體,計(jì)算協(xié)方差矩陣
其中,cov(i,j)是子組件中M個(gè)個(gè)體的第i和第j維度的協(xié)方差,計(jì)算式為
其中,R表示D×D正交矩陣特征坐標(biāo)系,R的每一行都是協(xié)方差矩陣R′表示從特征坐標(biāo)系到原始坐標(biāo)系的變換,∧表示由特征值組成的對(duì)角矩陣。
在目標(biāo)空間中,子組件中的個(gè)體xi在特征坐標(biāo)系中可表示為
子組件中的個(gè)體使用DE 搜索方程在特征坐標(biāo)系下生成候選解
其中,r1,r2,r3是從[1,M]中隨機(jī)選擇的。將特征坐標(biāo)系中的候選解轉(zhuǎn)換到原始坐標(biāo)系中,有
3) 根據(jù)目標(biāo)函數(shù)的適應(yīng)度值,選出最優(yōu)的個(gè)體進(jìn)入下一代。
CC-COV-DE 算法如算法2 所示,其中步驟21)~步驟29)是協(xié)方差分析的過程。
算法2CC-COV-DE 算法
輸入種群規(guī)模N,決策變量的維數(shù)D,當(dāng)前種群的更新代數(shù)gen,比例因子F,交叉率CR,函數(shù)的最大評(píng)價(jià)次數(shù)FESmax
輸出評(píng)價(jià)次數(shù)FES,最優(yōu)值Best
為了評(píng)估CC-COV-DE 的性能,本文在CEC 2014 基準(zhǔn)測試函數(shù)集進(jìn)行了仿真實(shí)驗(yàn)。對(duì)比實(shí)驗(yàn)表明CC-COV-DE 在解決大規(guī)模優(yōu)化問題的算法性能。
為了證明CC-COV-DE 算法的有效性,本文引入了其他7 個(gè)對(duì)比算法,分別是基于合作協(xié)同進(jìn)化的差分(CCDE)算法[20]、基于協(xié)方差分析的差分進(jìn)化(COVDE)算法[21]、差分進(jìn)化(DE)算法[19]、基于自適應(yīng)維度水平調(diào)整框架的差分進(jìn)化(ADLADE)算法[3]、基于全局?jǐn)?shù)值優(yōu)化組合策略的自適應(yīng)差分進(jìn)化(CSDE)算法[22]、基于時(shí)變策略的差分進(jìn)化(TVDE)算法[23]、基于合作協(xié)同進(jìn)化和協(xié)方差的自適應(yīng)差分進(jìn)化(A-CC/COV-DE)算法[24]。
CC-COV-DE 在CEC 2014 上進(jìn)行數(shù)值實(shí)驗(yàn),為了確保實(shí)驗(yàn)結(jié)果的準(zhǔn)確性,每個(gè)算法在測試函數(shù)上獨(dú)立運(yùn)行50 次,CEC 2014 的測試函數(shù)可以分為4 類。F1~F3:單峰函數(shù),不可分函數(shù);F4~F16:簡單多峰函數(shù),F(xiàn)8 和F10 為可分函數(shù),其余為不可分函數(shù);F17~F22:混合函數(shù),不可分函數(shù);F23~F30:復(fù)合函數(shù),不可分函數(shù)。
所有的仿真實(shí)驗(yàn)都是在配置3.40 GHz CPU和8 GB RAM、Microsoft Windows 7 操作系統(tǒng)、Intel(R)Core? i7-3770M 的計(jì)算機(jī)端進(jìn)行的,測試軟件是Microsoft Windows 7 操作系統(tǒng)下的MATLAB 2016a。其中,對(duì)比算法中公共參數(shù)設(shè)置如下。
1) 種群規(guī)模:N=2D。
3) 停止準(zhǔn)則:為了使算法能夠正常停止運(yùn)行,對(duì)于CEC 2014 測試函數(shù)集,函數(shù)的最大評(píng)價(jià)次數(shù)(FESmax)設(shè)置為10 000D。
4) 獨(dú)立運(yùn)行次數(shù):在本文實(shí)驗(yàn)中,設(shè)置最大獨(dú)立運(yùn)行次數(shù)(runmax)為50 次。
本節(jié)對(duì)8 個(gè)算法進(jìn)行了對(duì)比實(shí)驗(yàn),利用收斂速度和數(shù)值分析對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行了比較,體現(xiàn)了各個(gè)算法的差異。
1) 收斂速度。將8 個(gè)算法在不同測試函數(shù)上的收斂情況用曲線繪制出來,能夠很直觀地看出各個(gè)算法求解出的最優(yōu)解在收斂過程中的誤差值。
2) 數(shù)值分析。為了更加客觀地評(píng)價(jià)基于協(xié)方差分析的合作協(xié)同差分進(jìn)化算法與對(duì)比算法之間的性能,本文使用Wilcoxon 秩和檢驗(yàn)(0.05 顯著水平)對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行統(tǒng)計(jì)分析,如果得到的p>0.05,則認(rèn)為比較的2 個(gè)算法沒有顯著的差異,否則就是有顯著的差異。根據(jù) Wilcoxon 秩和檢驗(yàn)結(jié)果將CC-COV-DE 與其他對(duì)比算法之間的實(shí)驗(yàn)結(jié)果標(biāo)記為“+/–/~”,即CC-COV-DE 與其他算法的結(jié)果相比較好、較差或相近。表1 記錄了8 個(gè)算法在50維CEC2014 上的統(tǒng)計(jì)結(jié)果(運(yùn)行50 次)。
從表1 中可以看出,CC-COV-DE 的實(shí)驗(yàn)效果比CCDE 好,說明在使用XDG 根據(jù)決策變量之間的相關(guān)性對(duì)問題進(jìn)行分解之后,子組件中變量的相關(guān)性影響種群的進(jìn)化過程,利用協(xié)方差分析子組件中變量的數(shù)據(jù)特征,根據(jù)坐標(biāo)旋轉(zhuǎn)可以消除變量之間的關(guān)聯(lián)性,提高了算法的性能。從CC-COV-DE 與其他對(duì)比算法的實(shí)驗(yàn)結(jié)果可以看出,CC-COV-DE 的算法性能整體較好,尤其是在優(yōu)化混合函數(shù)和復(fù)合函數(shù)的效果方面,說明CC-COV-DE算法在優(yōu)化復(fù)雜函數(shù)時(shí)的性能良好,穩(wěn)健性強(qiáng),與最新的算法相比具有可競爭性。
表1 8 個(gè)算法在50 維CEC2014 上的統(tǒng)計(jì)結(jié)果(運(yùn)行50 次)
為了能夠更加清楚地比較CC-COV-DE 與對(duì)比算法的收斂速度,圖7 和圖8 分別給出了8 個(gè)算法在30 維和50 維的測試集上的平均收斂效果。從圖7和圖8 可以看出,CC-COV-DE 的整體收斂效果優(yōu)于其他對(duì)比算法。
圖7 8 個(gè)算法在30 維的測試集上的部分收斂效果
圖8 8 個(gè)算法在50 維的測試集上的平均收斂效果
通過計(jì)算CC-COV-DE 與其他7 個(gè)算法在30 維的CEC2014 測試函數(shù)集上的運(yùn)行時(shí)間,并且比較其運(yùn)行時(shí)間的比率,分析CC-COV-DE 的計(jì)算效率,實(shí)驗(yàn)結(jié)果對(duì)比如圖9 所示,橫線代表運(yùn)行時(shí)間的平均值。在30 個(gè)測試函數(shù)中,CC-COV-DE 的平均運(yùn)行時(shí)間分別是CCDE、COVDE、DE、ADLADE、CSDE、TVDE、A-CC/COV-DE 的0.211 2、1、1.271 5、1.414 6、0.888 6、1.503 0、0.516 7 倍。通過分析可得,CC-COV-DE的計(jì)算成本高的原因是在優(yōu)化子組件的過程中需要計(jì)算協(xié)方差矩陣,計(jì)算的時(shí)間成本比其他算法稍大。
圖9 CC-COV-DE 與其他7 個(gè)算法在30 維的CEC2014 測試函數(shù)集上的運(yùn)行時(shí)間比
協(xié)同進(jìn)化算法在解決可分離問題時(shí)性能較好,然而隨著優(yōu)化問題維度的增加,子組件中有關(guān)聯(lián)性的變量相互作用關(guān)系更加復(fù)雜,若不消除子組件中變量之間的相關(guān)性,則會(huì)降低種群的進(jìn)化速度。
本文提出的基于協(xié)方差分析的合作協(xié)同差分進(jìn)化算法使用分組策略對(duì)優(yōu)化問題進(jìn)行分解之后,在對(duì)子組件進(jìn)行優(yōu)化的過程中利用協(xié)方差分析變量的數(shù)據(jù)特征,利用子組件中的變量構(gòu)造協(xié)方差矩陣,根據(jù)特征向量對(duì)原始坐標(biāo)進(jìn)行旋轉(zhuǎn),消除子組件中變量之間的相關(guān)性,避免進(jìn)化陷入局部最優(yōu),加快種群的收斂速度。
與已有方法對(duì)比,本文使用協(xié)方差分析的方法消除子組件內(nèi)部變量之間的相關(guān)性,通過提高子組件內(nèi)部的進(jìn)化效率,為子組件之間的協(xié)同進(jìn)化提供更好的條件。協(xié)方差計(jì)算會(huì)增加一些時(shí)間開銷,但總體的綜合進(jìn)化效率得到提升。在CEC 2014 測試函數(shù)集上進(jìn)行仿真實(shí)驗(yàn),驗(yàn)證了所提算法的有效性。