差分進化算法

差分進化算法(Differential Evolution Algorithm,DE)是一種高效的全局優化算法。是一種模擬生物進化的隨機模型,通過反覆迭代,使得那些適應環境的個體被保存了下來。它的進化流程則與遺傳算法非常類似,都包括變異、雜交和選擇操作,但這些操作的具體定義與遺傳算法有所不同。

差分進化算法

DE的基本原理

基本思想是從某一組隨機產生的初始種群開始,隨機選擇兩個不同的個體向量相減產生差分向量,將差分向量賦予權值後與第三個隨機選擇的個體向量相加,產生變異向量。然後將變異向量與預先確定的父代個體向量按一定的規則交叉產生試驗向量。

差分進化算法

若試驗向量的適應度值優於父代個體的向量的適應度值,則選用試驗的向量進入下一代,否則保留父代個體向量。通過不斷的進化,保留優勝的個體,引導搜索過程向最優解逼近。

差分進化算法

DE的算法流程

1、基本參數的設置,包括種群規模(NP), 縮放因子(F), 交叉概率(CR)。

2、初始化種群。

3、計算種群適應度值。

4、終止條件不滿足時,依次執行變異、交叉、選擇運算進行循環,直到終止運算。

差分進化算法

DE的特點

進化計算是一種具有魯棒性的方法,能適應不同的環境不同的問題,而且在大多數情況下都能得到比較滿意的有效解。他對問題的整個參數空間給出一種編碼方案,而不是直接對問題的具體參數進行處理,不是從某個單一的初始點開始搜索,而是從一組初始點搜索。因而進化算法具有廣泛的應用性,高度的非線性,易修改性和可並行性。

差分進化算法

DE代碼實現

差分進化算法

DE的經驗規則

控制參數對一個全局優化算法的影響是很大的,DE的控制變量選擇也有一些經驗規則。

1、種群數量。根據經驗,種群數量必須滿足NP≥4以確保DE具有足夠的不同的變異向量。

2、

變異算子。變異算子決定偏差向量的放大比例。F = 0.5通常是一個較好的初始選擇。若種群過早收斂,那麼 F 或 NP 應該增加。

差分進化算法

3、交叉算子。交叉算子是控制一個試驗向量來自隨機選擇的變異向量,而不是原來向量的概率的參數,CR 的一個較好的選擇是0.1,但較大的CR 通常加速收斂。

4、最大進化代數

。DE算法運行到指定的進化代數之後就停止運行,並將當前群體中的最佳個體作為所求問題的最優解輸出。

5、終止條件。除最大進化代數可作為DE的終止條件,還需要其它判定準則。

差分進化算法

DE的優缺點

DE算法最新穎的特徵是它的變異操作。算法迭代初期,種群中個體差異大,變異操作會使算法具有較強全局搜索能力;到迭代後期,當趨於收斂,使得算法具有較強局部搜索能力。這種新穎特徵優點有:待定參數少、不易陷入局部最優、收斂速度快。

差分進化算法

但是DE也有不足之處:當種群個體較少,且生成新一代個體的適應值比原種群個體適應值差,導致個體難以更新,沒有收斂到極值點。如果求解的參數設置不當,收斂過快,產生局部最優問題。

差分進化算法

"


分享到:


相關文章: