差分進化演算法

2021-08-10 19:16:17 字數 1287 閱讀 3792

差分進化演算法在 1997 年日本召開的第一屆國際進化優化計算競賽(iceo)]表現突出,已成為進化演算法(ea)的乙個重要分支,很多學者開始研究 de 演算法,並取得了大量成果.2023年 cec 國際會議將其作為專題討論,由此可見 de 演算法已成為學者的研究熱點,具有很大的發展空間.

每個個體的優劣程度根據已定義好的適應度函式來評價,這與被解決的問題有關.基本的差分進化演算法實現過程如下:

step1: 確定de控制引數和所採用的具體策略,de控制引數包括:種群數量、變異運算元、交叉運算元、最大進化代數、終止條件等.

step2: 隨機產生初始種群,進化代數 t = 1.

step3: 對初始種群進行評價,即計算初始種群中每個個體的適應度值.

step4: 判斷是否達到終止條件或進化代數達到最大.若是,則進化終止,將此時的最佳個體作為解輸出;若否,繼續.

step5:進行變異和交叉操作,對邊界條件進行處理,得到臨時種群.

step6: 對臨時種群進行評價,計算臨時種群中每個個體的適應度值.

step7: 進行選擇操作,得到新種群.step8: 進化代數 t = t+ 1,轉步驟4.

控制引數對乙個全域性優化演算法的影響是很大的,de的控制變數選擇也有一些經驗規則.

(1)種群數量.根據經驗,種群數量 np 的合理選擇在5 d   10d之間,必須滿足 np ≥4以確保de具有足夠的不同的變異向量.

(2)變異運算元.變異運算元 f ∈ [0,2]是乙個實常數因數,它決定偏差向量的放大比例.迄今為止的研究表明,小於0.4和大於1的 f 值僅偶爾有效, f = 0.5通常是乙個較好的初始選擇.若種群過早收斂,那麼 f 或 np 應該增加.

(3)交叉運算元.交叉運算元cr 是乙個範圍在[0,1]的實數,它是控制乙個試驗向量來自隨機選擇的變異向量而不是原來向量的概率的引數.cr 的乙個較好的選擇是0.1,但較大的cr 通常加速收斂,為了看是否可能獲得乙個快速解,可以首先嘗試 cr = 0.9或 cr = 1.0.

(4)最大進化代數.它表示de演算法執行到指定的進化代數之後就停止執行,並將當前群體中的最佳個體作為所求問題的最優解輸出.一般取值範圍為100-200,當然根據問題的需要,可以增大最大進化代數以提高演算法的求解精度,不過這樣往往使得演算法的執行時間過長.

(5)終止條件.除最大進化代數可作為de的終止條件,還需要其它判定準則.一般當適應度值小於閥值時程式終止,閥值常選為610 .

上述引數中,f ,cr 與 np 一樣,在搜尋過程中是常數,一般 f 和cr 影響搜尋過程的收斂速度和魯棒性,它們的優化值不僅依賴於目標函式的特性,還與 np 有關.通常可通過在對不同值做一些試驗之後利用試驗和結果誤差找到 f ,cr 和 np 合適值.

差分進化演算法

最近在學習演化演算法 evolutionary algorithm 粒子群演算法和遺傳演算法已經很熟悉了,而差分進化演算法我還沒認真研究過,趁著暑期實訓的機會打算把差分進化演算法做個總結,最後再將這三種演算法做個比較。差分進化演算法是演化演算法的一種,它的思想和遺傳演算法比較像,演算法分為以下幾個流...

差分進化演算法

差分進化演算法是一種全域性最優化的演算法,隨機搜尋,通過引數向量集的隨機擾動實現平行計算,本身輸入遺傳類演算法,借用了一種n m的演算法有點,損失函式有d個引數,他用d 1個頂點的多面體定義目前的搜尋空間,每個頂點 由乙個d維引數向量表示,計算損失函式,區域性最優方法,引入退火的概念,從向量集中獲取...

差分進化演算法

是一種基於差分變異模式的進化演算法,在每一代的演算法迭代過程中,對於當前群體的每乙個個體,首先選擇兩個互不相同的個體,相減計算差分向量,差分向量乘以乙個縮放因子f,再隨機選擇第三個個體相加等到變異個體,變異個體經過與目標個體的交叉和選擇操作生成乙個新的進入下一代。圖1 de演算法 公式一 xi表示種...