李小艷 陳紹平
(武漢理工大學(xué)理學(xué)院 武漢 湖北 430000)
隨著計(jì)算機(jī)運(yùn)行速度的提高和逆向工程的快速發(fā)展,從20世紀(jì)90年代中期起,B樣條曲線曲面擬合一直是CAGD領(lǐng)域的研究熱點(diǎn),也是CAGD領(lǐng)域的經(jīng)典問題之一[1]。B樣條具有幾何變換不變性、局部支撐性、凸包性、變差縮減性等諸多優(yōu)良性質(zhì),這使得它成為形狀數(shù)學(xué)描述的主流方法,并廣泛應(yīng)用于數(shù)據(jù)可視化與逼近、醫(yī)學(xué)圖像輪廓重構(gòu)和幾何建模等領(lǐng)域[2]。
解決B樣條曲線曲面擬合問題的關(guān)鍵在于B樣條節(jié)點(diǎn)矢量和控制頂點(diǎn)的選取,合適的節(jié)點(diǎn)矢量與控制頂點(diǎn)能保證擬合曲線的光滑度和擬合效果。把節(jié)點(diǎn)矢量和控制頂點(diǎn)均視為變量時,擬合問題就變?yōu)橐粋€多維多變量高度非線性的最優(yōu)化問題。解決該問題的方法大致可以被分為三類:傳統(tǒng)的節(jié)點(diǎn)插入和節(jié)點(diǎn)刪除方法、支配點(diǎn)和特征點(diǎn)方法以及人工智能算法。傳統(tǒng)的方法一般是將節(jié)點(diǎn)向量進(jìn)行固定,得到一個關(guān)于控制頂點(diǎn)的線性系統(tǒng),但是這些方法并不能處理帶有不連續(xù)點(diǎn)、尖點(diǎn)和拐點(diǎn)的復(fù)雜型曲線。支配點(diǎn)和特征點(diǎn)方法是通過提取數(shù)據(jù)點(diǎn)的形狀信息(包括拐點(diǎn)、折痕點(diǎn)和曲率極值點(diǎn)等)用于節(jié)點(diǎn)的選擇,但是這些方法往往僅限于連續(xù)曲線。近年來,利用人工智能算法求解并優(yōu)化B樣條擬合問題受到諸多學(xué)者的關(guān)注。如Yoshimoto等[3]提出了一種實(shí)數(shù)編碼的遺傳算法對平面曲線進(jìn)行擬合,該方法能自動的確定節(jié)點(diǎn)的數(shù)量和位置,不僅可以處理光滑的數(shù)據(jù)擬合問題,也可以處理帶尖點(diǎn)和不連續(xù)點(diǎn)的數(shù)據(jù)擬合問題;周明華等[4]采用遺傳算法同時對數(shù)據(jù)點(diǎn)的參數(shù)化和節(jié)點(diǎn)矢量進(jìn)行優(yōu)化,與傳統(tǒng)方法相比取得了較高的擬合效果;穆國旺等[5]提出一種改進(jìn)的遺傳算法,將誤差精度考慮在內(nèi),實(shí)現(xiàn)了在給定誤差下能使用最少的控制頂點(diǎn)進(jìn)行B樣條曲線擬合,但是該方法的運(yùn)算時間較長;Adi等[6]采用粒子群優(yōu)化(PSO)方法進(jìn)行NURBS曲線擬合,該方法將控制頂點(diǎn)作為待求解的變量,但是誤差比較大;Galvez等[7]利用PSO通過固定節(jié)點(diǎn)個數(shù)自適應(yīng)的確定節(jié)點(diǎn)的位置優(yōu)化擬合曲線;Ulker等[8]提出將人工免疫算法(AIS)應(yīng)用于求解B樣條曲線擬合問題上,得到較好的結(jié)果;Zhao等[9]在B樣條曲線逼近問題中采用了一種新穎的隨機(jī)優(yōu)化方法,利用高斯混合模型和聚類技術(shù)來實(shí)現(xiàn)自適應(yīng)節(jié)點(diǎn)配置,但該方法僅對封閉曲線進(jìn)行了擬合實(shí)驗(yàn)。何兵朋等[10]對差分進(jìn)化算法的變異操作進(jìn)行改進(jìn),設(shè)計(jì)出一種新的B樣條曲線擬合方法。近幾年,許多學(xué)者也不斷的對這些智能算法進(jìn)行改進(jìn)來改善B樣條擬合效果。如Trejo-Caballero G 等[11]設(shè)計(jì)出一種分層編碼方法,將節(jié)點(diǎn)與控制頂點(diǎn)分別進(jìn)行二進(jìn)制編碼和實(shí)數(shù)編碼,利用遺傳算法進(jìn)行擬合,得到了較好的擬合效果。
在文獻(xiàn)[13]中,他們對DE、PSO和EA在處理數(shù)值優(yōu)化問題時的表現(xiàn)進(jìn)行了評估,與其他方法相比,DE展示出了較高的優(yōu)越性。因此本文在諸多學(xué)者研究的基礎(chǔ)上,將一種改進(jìn)的自適應(yīng)差分進(jìn)化算法應(yīng)用于解決B樣條曲線曲面最小二乘擬合問題。此方法采用了DE/current-to-best/的變異策略和帶有隨機(jī)游走(Random Walk)的交叉操作,利用隨機(jī)游走的隨機(jī)機(jī)制彌補(bǔ)DE/current-to-best/容易早熟收斂的缺陷。同時為了跳出局部最優(yōu)解,利用混沌系統(tǒng)的隨機(jī)性與遍歷性設(shè)計(jì)出一個針對當(dāng)前種群最優(yōu)解的局部搜索操作,有效地平衡了DE的開發(fā)能力和探索能力。新的差分進(jìn)化算法在進(jìn)行B樣條曲線曲面擬合時能夠根據(jù)數(shù)據(jù)點(diǎn)分布特征配置內(nèi)節(jié)點(diǎn)的位置,并在需要時產(chǎn)生多重節(jié)點(diǎn)。試驗(yàn)結(jié)果表示,與標(biāo)準(zhǔn)的差分進(jìn)化算法相比,用本文的方法得到的B樣條曲線曲面逼近精度更高。
(1)
式中:j=0,1,…,M-1;xj=[a,b],f(x)為采樣函數(shù)(對于散亂數(shù)據(jù)來說,f(x)是未知的),ε為噪聲誤差,N為采樣數(shù)量,n為內(nèi)節(jié)點(diǎn)個數(shù),[a,b]為擬合區(qū)間。k次B樣條目標(biāo)曲線為:
(2)
(3)
式中:pi(i=0,1,…,n+k)為控制頂點(diǎn),Ni,k(x)(i=0,1,…,n+k)為由de-Boor遞推公式定義的k次B樣條基函數(shù)(本文選擇三次B樣條曲線):
‖·‖是歐氏距離。端節(jié)點(diǎn)設(shè)置為k+1重節(jié)點(diǎn):u0=u1=…=uk,un+k+1=un+k+2=…=un+2k+1對于一組固定的內(nèi)節(jié)點(diǎn),采用標(biāo)準(zhǔn)的最小二乘技術(shù),欲使式(3)中的Q達(dá)到最小,應(yīng)使它關(guān)于n+k-1個控制頂點(diǎn)的導(dǎo)數(shù)為0,于是就得到了n+k-1個以pi(i=1,2,…,n+k-1)為未知量的線性方程組:
(NTN)P=NTR
(4)
這里N是(M-2)×(n+k-1)的標(biāo)量矩陣:
差分進(jìn)化算法DE(Differential Evolution)與其他遺傳類型算法相似,以迭代的方式對種群中個體進(jìn)行變異、交叉和選擇操作直到根據(jù)適應(yīng)度函數(shù)找出最佳個體。標(biāo)準(zhǔn)的DE算法描述如下:
變異就是指從當(dāng)前種群中隨機(jī)選擇幾個個體得到差分矢量乘上變異系數(shù)作用于目標(biāo)個體對其產(chǎn)生擾動,生成變異個體。五種最常用的差分變異策略如下:
DE/current-to-best/:
(5)
式中:CR∈[0,1],rand1(0,1)為均勻分布的隨機(jī)數(shù),jrand為介于1到D的隨機(jī)整數(shù)下標(biāo)索引,可以確保試驗(yàn)個體中至少有一個基因是由變異個體貢獻(xiàn)的。
DE根據(jù)個體的適應(yīng)度函數(shù)值對目標(biāo)個體和試驗(yàn)個體進(jìn)行貪婪選擇,以最小化問題為例,具體操作如下:
(6)
(1) 差分變異操作。選擇式(5) DE/current-to-best/的變異策略,該策略具有局部搜索能力強(qiáng),收斂速度快的優(yōu)點(diǎn),但全局搜索能力較弱,容易陷入局部最優(yōu)??s放因子F由下式?jīng)Q定:
(2) 交叉操作。算法早熟收斂是因?yàn)殡S著DE的進(jìn)化,種群中個體漸漸聚集,差異減小。為了避免局部最優(yōu),本文借鑒文獻(xiàn)[19]中的帶有隨機(jī)游走的交叉操作,隨機(jī)游走是一個可以向任何方向前進(jìn)的、到達(dá)任何位置的無規(guī)則運(yùn)動,這種隨機(jī)性機(jī)制在用于DE搜索過程時可以增加種群的多樣性,有效避免早熟現(xiàn)象。交叉操作的表達(dá)式如下:
(7)
交叉概率CR和參數(shù)RW的表達(dá)式如下:
在DE中差分矢量縮放因子F和交叉概率CR對優(yōu)化性能有著重要的影響。Storn等[15]建議過參數(shù)的選取范圍應(yīng)為:F∈[0.5,1]、CR∈[0.8,1],本文對參數(shù)的設(shè)置符合這個條件。
(3) 混沌局部搜索操作。設(shè)計(jì)出一種混沌局部搜索操作,在當(dāng)前最優(yōu)個體的鄰域范圍內(nèi)搜索更優(yōu)解,以跳出局部最優(yōu)。通過一維Logistic映射生成混沌序列,迭代公式如下:
Zi+1=μZi(1-Zi)i=0,1,2,…
(8)
(9)
式中:λ為局部搜索系數(shù),針對不同的實(shí)例λ取不同的值。若在搜索結(jié)果中找到了優(yōu)于當(dāng)前代最優(yōu)個體的內(nèi)節(jié)點(diǎn)向量,則對其進(jìn)行取代。
(4) 適應(yīng)度函數(shù)。使用統(tǒng)計(jì)學(xué)中貝葉斯信息準(zhǔn)則BIC[23]作為適應(yīng)度函數(shù),表達(dá)式為:
BIC=M×(lnQ)+(lnM)×(2n+k+1)
(10)
式中:M為數(shù)據(jù)點(diǎn)數(shù)量,Q為由式(3)計(jì)算所得的殘差平方和,n+k+1代表控制頂點(diǎn)個數(shù),n代表內(nèi)節(jié)點(diǎn)個數(shù)。適應(yīng)度函數(shù)值越小,代表找到的節(jié)點(diǎn)矢量越優(yōu),擬合誤差越小。
在B樣條曲線擬合問題中,節(jié)點(diǎn)數(shù)量是變化的,控制頂點(diǎn)的個數(shù)也會隨之改變,如果控制頂點(diǎn)太少,無法還原出原數(shù)據(jù)點(diǎn)分布特征,擬合誤差就會增大;控制頂點(diǎn)太多,擬合曲線的光滑度會降低。因此如果只以殘差平方和Q為目標(biāo)函數(shù),就會忽略模型復(fù)雜度和控制頂點(diǎn)個數(shù)對曲線幾何形狀的影響。選取BIC為適應(yīng)度函數(shù),它的第一項(xiàng)能夠保證模型函數(shù)的精度,第二項(xiàng)添加了對模型函數(shù)自由參數(shù)個數(shù)的懲罰,通過精度與計(jì)算復(fù)雜度之間的平衡,獲得最優(yōu)的逼近模型。BIC的另一個優(yōu)勢在于它避免了使用主觀參數(shù)(如誤差界限和平滑因子)來判斷擬合模型。
基于該算法的三次B樣條曲線擬合流程如下:
輸出:最佳內(nèi)節(jié)點(diǎn)。
Step2利用式(8)求出種群中每個內(nèi)節(jié)點(diǎn)個體的適應(yīng)度值,獲得最優(yōu)個體及其對應(yīng)的適應(yīng)度值。
Step3判斷迭代是否達(dá)到Tmax,若是,退出,否則執(zhí)行下一步。
Step4對種群中個體根據(jù)式(5)和式(7)進(jìn)行變異和交叉操作。
Step5按照式(6)進(jìn)行選擇操作,生成新一代個體,令t=t+1。
Step6判斷種群是否陷入局部最優(yōu),若是,則根據(jù)式(8)和式(9)進(jìn)行混沌局部搜索,更新種群中最優(yōu)個體。若否,返回Step2。
為了驗(yàn)證本文算法在解決B樣條曲線曲面最小二乘擬合問題上的有效性,選擇5個測試函數(shù)進(jìn)行試驗(yàn)分析。
所有曲線擬合的試驗(yàn)中,采樣數(shù)據(jù)點(diǎn)均由測試函數(shù)根據(jù)式(1)得到,噪聲誤差εj取均值為0,方差為1的標(biāo)準(zhǔn)正太分布隨機(jī)數(shù)。差分進(jìn)化算法的參數(shù)均設(shè)置為種群規(guī)模NP=100,最大迭代次數(shù)Tmax=200,由于本文實(shí)驗(yàn)擬合區(qū)間均為[0,1],局部搜索系數(shù)我們?nèi)≥^小的值λ=0.025。對于每一個測試函數(shù)我們都在取值范圍內(nèi)選取M=201個數(shù)據(jù)點(diǎn),試驗(yàn)在同等條件下重復(fù)30次。
該函數(shù)是多峰值的分段函數(shù),x=0.6是它的不連續(xù)點(diǎn)。
圖1(a)、圖2(a)、圖3(a)分別為本文算法對取自函數(shù)f1(x)、f2(x)、f3(x)的數(shù)據(jù)點(diǎn)進(jìn)行試驗(yàn)得到的BIC值與內(nèi)節(jié)點(diǎn)數(shù)之間的關(guān)系,從圖中可以得到f1(x)、f2(x)、f3(x)對應(yīng)的最佳擬合內(nèi)節(jié)點(diǎn)個數(shù)分別為4、8、5。圖1-圖3中的(b)顯示了BIC值與殘差平方和Q的變化情況,實(shí)線表示適應(yīng)度BIC,虛線表示殘差平方和Q;圖1-圖3中的(c)分別繪出了例1-例3由最佳內(nèi)節(jié)點(diǎn)得到的最佳擬合效果圖,三角形標(biāo)出了最佳內(nèi)節(jié)點(diǎn)的位置,×是擬合數(shù)據(jù)點(diǎn),實(shí)線是B樣條擬合曲線。
圖1 例1函數(shù)擬合結(jié)果
圖2 例2函數(shù)擬合結(jié)果
圖3 例3函數(shù)擬合結(jié)果
圖1(b)、圖2(b)、圖3(b)為本文算法對例1-例3進(jìn)行擬合過程中隨著迭代次數(shù)的增加,最佳個體的適應(yīng)度值和殘差平方和的變化曲線。從圖中可以看出,對于每一個測試函數(shù),適應(yīng)度值基本都在在100代左右收斂,說明我們的算法收斂速度快且結(jié)果穩(wěn)定。圖1-圖3中(c)對應(yīng)例1-例3的擬合效果圖與文獻(xiàn)[3,10,12]中的擬合結(jié)果一致,并且擬合效果較好。必須說明的是對于三次B樣條曲線,如果某個內(nèi)節(jié)點(diǎn)的重復(fù)度為4,就說明該三次B樣條曲線在該點(diǎn)處是不連續(xù)的,函數(shù)f2(x)的擬合結(jié)果就說明了這種情況。這表示本文的算法能夠根據(jù)數(shù)據(jù)點(diǎn)的分布特征來自動分配節(jié)點(diǎn)位置,使擬合結(jié)果與數(shù)據(jù)點(diǎn)的分布特征一致。三個擬合效果圖可以說明本文算法不僅能夠較好地擬合如例1這種在某點(diǎn)處發(fā)生突變的光滑曲線,也能夠處理例2、例3這種帶有間斷和尖點(diǎn)的情況。例2的函數(shù)圖像在x=0.6處發(fā)生間斷,我們的方法相應(yīng)的在該點(diǎn)處產(chǎn)生了四重節(jié)點(diǎn),根據(jù)B樣條曲線的性質(zhì),擬合曲線在x=0.6處也發(fā)生了間斷。
將傳統(tǒng)的帶五種不同變異操作的差分進(jìn)化算法分別與本文方法進(jìn)行比較。進(jìn)行30次試驗(yàn),表1、表2給出的是在相同節(jié)點(diǎn)數(shù)量的情況下對應(yīng)于例1-例3的試驗(yàn)結(jié)果,總結(jié)的是30次試驗(yàn)的最小、最大以及平均的適應(yīng)度值(BIC)和殘差平方和(Q)。從表1、表2中可以看出,由本文方法找到的最佳節(jié)點(diǎn)矢量對應(yīng)的適應(yīng)度值(BIC)和殘差平方和(Q)都比傳統(tǒng)的差分進(jìn)化算法更小。這說明我們的方法在處理B樣條曲線最小二乘擬合時,擬合效果更好、擬合精度更高。
表1 傳統(tǒng)差分進(jìn)化算法與本文算法的比較
表2 傳統(tǒng)差分進(jìn)化算法與本文算法的比較
將本文的算法延伸到曲面擬合問題上,以例4、例5為測試函數(shù)選取雙三次B樣條曲面進(jìn)行擬合數(shù)值試驗(yàn)。試驗(yàn)均將擬合區(qū)域0≤x≤1、0≤y≤1分別32等分,進(jìn)行數(shù)據(jù)點(diǎn)的直接采樣(無噪聲);算法參數(shù)均設(shè)置為NP=50、Tmax=200。取平均平方誤差MSE為適應(yīng)度函數(shù),定義如下:
式中:S(x,y)為擬合曲面,f(x,y)為采樣函數(shù)。
式中:x,y∈[0,1]。該函數(shù)為帶尖點(diǎn)的曲面。
圖4-圖7分別為根據(jù)例4和例5函數(shù)解析式直接用Matlab繪制的圖形和用本文算法繪制擬合曲面圖形的對比圖。由圖可知,使用本文算法得到的雙三次B樣條擬合曲面幾乎能準(zhǔn)確構(gòu)造出采樣數(shù)據(jù)的原始圖像。多次試驗(yàn)的數(shù)據(jù)顯示,對于測試函數(shù)4,大約迭代到第10~20次,平均平方誤差就已達(dá)到10-6,最終收斂到10-8,最佳內(nèi)節(jié)點(diǎn)個數(shù)為8×8。對于測試函數(shù)5,迭代到第10代左右,平均平方誤差達(dá)到10-9,最終收斂到10-12,最佳內(nèi)節(jié)點(diǎn)個數(shù)為5×5。這說明本文的算法收斂速度快,擬合精度高。
圖4 例4的根據(jù)函數(shù)解析式繪制的原圖
圖5 例4的本文算法的擬合效果圖
圖6 例5的根據(jù)函數(shù)解析式繪制的原圖
圖7 例5的本文算法的擬合效果圖
本文基于差分進(jìn)化算法在處理數(shù)值優(yōu)化問題時所表現(xiàn)出的收斂速度快、求解精度高的優(yōu)勢,將差分進(jìn)化算法進(jìn)行改進(jìn),應(yīng)用于B樣條曲線曲面的最小二乘擬合問題。該方法選擇帶有隨機(jī)游走的交叉操作來克服DE/current-to-best易早熟收斂的缺點(diǎn);并且設(shè)計(jì)出一種帶有混沌系統(tǒng)的局部搜索操作來跳出局部最優(yōu)解。將該方法與傳統(tǒng)的差分進(jìn)化算法進(jìn)行比較,試驗(yàn)數(shù)據(jù)以及效果圖顯示,該方法在處理帶間斷和尖點(diǎn)的數(shù)據(jù)時能夠自適應(yīng)地確定節(jié)點(diǎn)的位置,并且與傳統(tǒng)的差分進(jìn)化算法相比在擬合誤差精度上也有顯著的提高。其不足之處有兩點(diǎn):首先,本文方法并沒有完全自適應(yīng)地同時確定節(jié)點(diǎn)的數(shù)量與位置,這主要是受限于差分進(jìn)化算法的變異操作不允許我們將節(jié)點(diǎn)矢量設(shè)置為變長度的個體。其次,由于B樣條曲線和曲面不能精確地表示除拋物線外的二次曲線圓弧、和除拋物線面外的二次曲面,出于工業(yè)實(shí)際(特別是飛機(jī)外形的設(shè)計(jì))精確表示二次曲線弧和二次曲面的需要,因此需要我們進(jìn)一步研究有理B樣條的曲線曲面擬合問題。鑒于此,作者將進(jìn)一步研究差分進(jìn)化算法的改進(jìn),解決B樣條曲線曲面最小二乘擬合問題,實(shí)現(xiàn)節(jié)點(diǎn)數(shù)量和位置對不同實(shí)例的自適應(yīng)調(diào)整,并研究有理B樣條的曲線曲面擬合問題。
[1] 施法中. 計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理B樣條[M].北京:高等教育出版社, 2013:301-336.
[2] Piegl L, Tiller W. The NURBS Book[M]. Berlin: Springer-Verlag, 1995.
[3] Yoshimoto F, Harada T, Yoshimoto Y. Data fitting with a spline using a real-coded genetic algorithm[J]. Computer-Aided Design, 2003, 35(8):751-760.
[4] 周明華,汪國昭. 基于遺傳算法的B樣條曲線和Bezier曲線的最小二乘擬合[J]. 計(jì)算機(jī)研究與發(fā)展, 2005, 42(1):135-143.
[5] 穆國旺, 臧婷, 趙罡. 用改進(jìn)遺傳算法確定B樣條曲線的節(jié)點(diǎn)矢量 [J]. 計(jì)算機(jī)工程與應(yīng)用, 2006,42(1):88-90.
[6] Adi D I S, Shamsuddin S M, Ali A. Particle Swarm Optimization for NURBS Curve Fitting[C]// Sixth International Conference on Computer Graphics, Imaging and Visualization. IEEE Computer Society, 2009:259-263.
[7] Gálvez A, Iglesias A. Efficient particle swarm optimization approach for datafitting with free knot B-splines[J]. Computer-Aided Design, 2011, 43(12):1683-1692.
[8] ülker E, Arslan A. Automatic knot adjustment using an artificial immune system for B-spline curve approximation [J]. Information Sciences, 2009, 179:1483-1494.
[9] Zhao X, Zhang C, Yang B, et al. Adaptive knot placement using a GMM-based continuous optimization algorithm in B-spline curve approximation [J]. Computer-Aided Design, 2011, 43:598-604.
[10] 何兵朋, 馮仁忠, 余勝蛟. 基于差分進(jìn)化算法的B樣條曲線曲面擬合[J]. 圖學(xué)學(xué)報, 2016, 37(2):178-183.
[11] Trejo-Caballero G, Rostro H, Garcia-Capulin C H, et al. Automatic Curve Fitting Based on Radial Basis Functions and a Hierarchical Genetic Algorithm[J]. Mathematical Problems in Engineering, 2015, 2015(731207).
[12] Han X, Quan L, Xiong X, et al. Diversity enhanced and local search accelerated gravitational search algorithm for data fitting with B-splines[J]. Engineering with Computers, 2015, 31(2):215-236.
[13] Vesterstrom J, Thomsen R. A comparative study of differential evolution, particle swarm optimization, and evolutionary algorithms on numerical benchmark problems[C]// Evolutionary Computation, 2004. CEC2004. Congress on. IEEE, 2004:1980-1987.
[14] Storn R, Price K. Differential evolution: a simple and efficient heuristic for global optimization over continuous spaces[J]. Kluwer Academic Publishers, 1997, 11(4):341-359.
[15] Storn R, Price K. Differential evolution: a fast and simple numerical optimizer[C]//1996 Biennial Conference of the North American Fuzzy Information Processing Society. New York, 1996:524-527.
[16] Tanabe R, Fukunaga A. Success-history based parameter adaptation for differential evolution[C]// IEEE Congress on Evolutionary Computation, 2013:71-78.
[17] Das S, Abraham A, Chakraborty U K, et al. Differential evolution using a neighborhood-based mutation operator[J]. IEEE Transactions on Evolutionary Computation, 2009, 13(3):526-553.
[18] Cui L, Li G, Lin Q, et al. Adaptive Differential Evolution Algorithm with Novel Mutation Strategies in Multiple Sub-populations[J]. Computers & Operations Research, 2015, 67:155-173.
[19] Zhan Z H, Zhang J. Enhance Differential Evolution with Random Walk [C]// Conference Companion on Genetic & Evolutionary Computation, 2012:1513-1514.
[20] Li G H, Lin Q Z, Cui L Z, et al. A novel hybrid differential evolution algorithm with modified CoDE and JADE[J]. Applied Soft Computing, 2016, 47:577-599.
[21] Liu G, Xiong C Q, Guo Z L. Enhanced differential evolution using random-based sampling and neighborhood mutation[J]. Soft Computing, 2015, 19:2173-2192.
[22] Cai Y, Zhao M, Liao J. Neighborhood guided differential evolution[J]. Soft Computing, 2016:1-44.
[23] Schwarz G E. Estimating the dimension of a model[J]. Annals of Statistics, 1978, 6(2):461-464.