何佳歡 王向東

【摘 要】本文提出了一種改進的差分進化算法,算法采用一種新的突變方式,同時在選擇操作之前引入擾動機制以增強算法的全局搜索能力。之后對改進算法進行了Benchmark函數實驗,得到的仿真結果證明了算法的有效性。
【關鍵詞】差分進化算法;Benchmark函數;擾動
【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 引言
差分進化算法是1995年由Storn和Price提出來的一種基于種群的隨機性搜索算法,差分進化算法在求解各式樣的優化問題中表現出了良好的全局尋優能力[1],同時其結構簡單、操作容易,具有很多優點,但不可避免的是其容易陷入局部最優導致無法快速準確的收斂到全局最優值。不同學者也提出了很多對差分進化算法的改進,主要有對控制參數的改進以及對突異策略的改進等[2-4]。
本文研究主要分為以下幾個部分,首先對差分進化算法簡要介紹,之后提出改進的差分進化算法,并對改進算法進行Benchmark函數實驗,最后給出結果及結論。
1 基本差分進化算法
差分進化算法是一種經常用于解決優化問題的隨機性搜索算法,它采用實數編碼方式。算法主要包括突變、交叉以及選擇操作[5],涉及到的參數主要包括種群大小Np,突變概率F(一般取值范圍0到1),交叉概率Cr(一般取值范圍0到1)。算法的流程主要分為以下幾部分:(以下i∈[1,Np],j∈[1,D],G迭代次數)
1)種群初始化:算法采用隨機初始化方式產生一定大小的初始種群,具體生成方式如下:
2 改進差分進化算法
本文對差分進化算法的改進主要分為以下兩個方面:
2)增加擾動:隨著迭代次數增加,個體間差異越來越小容易陷入局部最優。本文在選擇操作后加入擾動機制,在迭代進行一定次數后隨機選取種群中的z個,進行如下操作:
3 Benchmark函數測試及結果
為了驗證本文提出的改進差分算法的性能,本文主要選取了10組Benchmark函數來測試改進算法的性能,分別是:Sphere Model、Schwefel 2.22和1.2、Rosenbrock、Step、Quartic、Rastrigin、(下轉第194頁)(上接第181頁)Ackley、Griwank、Penalized Function十個全局最小值為0的函數。分別針對了低維D=5以及高維D=30兩種情況進行計算,每組用Matlab進行仿真求解50次,求得最優值、平均值及標準差與文獻[3]的其他算法結果進行對比。具體的參數如下:低維和高維情況下Np分別取20和100,p=0.15,F0=0.5,fmax=1,Fmin=0.1,z=0.1,Cr0=0.5,Cr1=0.85。所得結果如表1所示。
4 結束語
通過上表中所得函數測試結果與文獻[3]中所給數據相比對(較優結果黑體顯示)可以看出,改進后的差分進化算法能夠取得較基本差分進化算法及其他改進差分進化算法更理想的結果,改進后的算法有效并有一定的適用性。
【參考文獻】
[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].系統工程,2005,23(2):108-111.
[5]趙斌.基于改進差分進化算法的火電廠負荷分配問題研究[D].武漢理工大,2013.
[6]郭鵬.差分進化算法改進研究[D].天津大學,2011.
[責任編輯:楊玉潔]