何佳歡 王向東
【摘 要】本文提出了一種改進(jìn)的差分進(jìn)化算法,算法采用一種新的突變方式,同時(shí)在選擇操作之前引入擾動(dòng)機(jī)制以增強(qiáng)算法的全局搜索能力。之后對(duì)改進(jìn)算法進(jìn)行了Benchmark函數(shù)實(shí)驗(yàn),得到的仿真結(jié)果證明了算法的有效性。
【關(guān)鍵詞】差分進(jìn)化算法;Benchmark函數(shù);擾動(dòng)
【Abstract】The paper proposes a new modified Differential Evolution Algorithm, a new mutation operation is introduced in this algorithm, besides, a random disturbance mechanism is used before selection operation in order to enhance the global search ability. The modified algorithm is used to solve Benchmark functions, the effectiveness of the algorithm is demonstrated via the simulation results.
【Key words】Differential Evolution Algorithm; Benchmark Function; Disturbance
0 引言
差分進(jìn)化算法是1995年由Storn和Price提出來的一種基于種群的隨機(jī)性搜索算法,差分進(jìn)化算法在求解各式樣的優(yōu)化問題中表現(xiàn)出了良好的全局尋優(yōu)能力[1],同時(shí)其結(jié)構(gòu)簡(jiǎn)單、操作容易,具有很多優(yōu)點(diǎn),但不可避免的是其容易陷入局部最優(yōu)導(dǎo)致無法快速準(zhǔn)確的收斂到全局最優(yōu)值。不同學(xué)者也提出了很多對(duì)差分進(jìn)化算法的改進(jìn),主要有對(duì)控制參數(shù)的改進(jìn)以及對(duì)突異策略的改進(jìn)等[2-4]。
本文研究主要分為以下幾個(gè)部分,首先對(duì)差分進(jìn)化算法簡(jiǎn)要介紹,之后提出改進(jìn)的差分進(jìn)化算法,并對(duì)改進(jìn)算法進(jìn)行Benchmark函數(shù)實(shí)驗(yàn),最后給出結(jié)果及結(jié)論。
1 基本差分進(jìn)化算法
差分進(jìn)化算法是一種經(jīng)常用于解決優(yōu)化問題的隨機(jī)性搜索算法,它采用實(shí)數(shù)編碼方式。算法主要包括突變、交叉以及選擇操作[5],涉及到的參數(shù)主要包括種群大小Np,突變概率F(一般取值范圍0到1),交叉概率Cr(一般取值范圍0到1)。算法的流程主要分為以下幾部分:(以下i∈[1,Np],j∈[1,D],G迭代次數(shù))
1)種群初始化:算法采用隨機(jī)初始化方式產(chǎn)生一定大小的初始種群,具體生成方式如下:
2 改進(jìn)差分進(jìn)化算法
本文對(duì)差分進(jìn)化算法的改進(jìn)主要分為以下兩個(gè)方面:
2)增加擾動(dòng):隨著迭代次數(shù)增加,個(gè)體間差異越來越小容易陷入局部最優(yōu)。本文在選擇操作后加入擾動(dòng)機(jī)制,在迭代進(jìn)行一定次數(shù)后隨機(jī)選取種群中的z個(gè),進(jìn)行如下操作:
3 Benchmark函數(shù)測(cè)試及結(jié)果
為了驗(yàn)證本文提出的改進(jìn)差分算法的性能,本文主要選取了10組Benchmark函數(shù)來測(cè)試改進(jìn)算法的性能,分別是:Sphere Model、Schwefel 2.22和1.2、Rosenbrock、Step、Quartic、Rastrigin、(下轉(zhuǎn)第194頁)(上接第181頁)Ackley、Griwank、Penalized Function十個(gè)全局最小值為0的函數(shù)。分別針對(duì)了低維D=5以及高維D=30兩種情況進(jìn)行計(jì)算,每組用Matlab進(jìn)行仿真求解50次,求得最優(yōu)值、平均值及標(biāo)準(zhǔn)差與文獻(xiàn)[3]的其他算法結(jié)果進(jìn)行對(duì)比。具體的參數(shù)如下:低維和高維情況下Np分別取20和100,p=0.15,F(xiàn)0=0.5,fmax=1,F(xiàn)min=0.1,z=0.1,Cr0=0.5,Cr1=0.85。所得結(jié)果如表1所示。
4 結(jié)束語
通過上表中所得函數(shù)測(cè)試結(jié)果與文獻(xiàn)[3]中所給數(shù)據(jù)相比對(duì)(較優(yōu)結(jié)果黑體顯示)可以看出,改進(jìn)后的差分進(jìn)化算法能夠取得較基本差分進(jìn)化算法及其他改進(jìn)差分進(jìn)化算法更理想的結(jié)果,改進(jìn)后的算法有效并有一定的適用性。
【參考文獻(xiàn)】
[1]R. Storn, K. Price., “Differential evolution - a simple and efficient adaptive scheme for global optimization over continuous spaces”,Berkeley, CA, Technical Report[C]. TR-95-012, 1995.
[2]A.K. Qin and P.N.Suganthan, ”Self-adaptive differential evolution algorithm for numerical optimization”[C]. IEEE Congress on Evolutionary Computation, vol.2, pp. 1785-1791,2005.
[3]Jinqiao Zhang, Arthur C.Sanderson, ”JADE: Self-adaptive differential evolution with fast and reliable convergence performance”[C]. IEEE Congress on Evolutionary Computation, 1-4244-1340-0/07.
[4]劉明廣.差異演化算法及其改進(jìn)[J].系統(tǒng)工程,2005,23(2):108-111.
[5]趙斌.基于改進(jìn)差分進(jìn)化算法的火電廠負(fù)荷分配問題研究[D].武漢理工大,2013.
[6]郭鵬.差分進(jìn)化算法改進(jìn)研究[D].天津大學(xué),2011.
[責(zé)任編輯:楊玉潔]