2

我已經習慣了在遺傳算法(氣)的每個參數可以被表示爲可在指定的時間間隔進行編碼,以一個真實值的二進制串的方法。參數區間

我目前編碼一個差分進化(DE)代碼,我還沒有讀到被控制就像他們在GA參數區間任何東西,所以我有點困惑這個過程...這裏是我的問題:

1)是否有任何東西控制DE中的參數間隔?我意識到,任何人都可以修改DE的目的,但我很好奇它是如何傳統使用的。

2)我看你怎麼可以對初始隨機人羣指定的時間間隔,但有什麼限制在變異和交叉作業的間隔?

3)如果沒有對參數的任何界限,則是變異和交叉操作自由探索所有的空間?

謝謝你的時間。

回答

3

差分進化濾波器通過將兩個羣體成員之間的加權差異向量添加到第三個成員來生成新的參數向量。如果得到的向量產生比預定總體成員更低的目標函數值,則新產生的向量替換與其進行比較的向量;否則,保留舊的矢量。信息here

1)有什麼控制的參數DE間隔?我意識到,任何人都可以修改DE的目的,但我很好奇它是如何傳統使用的。

在DE你有什麼他們所謂的戰略。有很多種:

1 --> DE/best/1/exp   6 --> DE/best/1/bin 
2 --> DE/rand/1/exp   7 --> DE/rand/1/bin 
3 --> DE/rand-to-best/1/exp 8 --> DE/rand-to-best/1/bin 
4 --> DE/best/2/exp   9 --> DE/best/2/bin 
5 --> DE/rand/2/exp   else DE/rand/2/bin 

你可以在Matlab here找到代碼。

2)我看你如何指定初始隨機人羣的區間,但是有什麼限制突變和交叉操作中的區間?

突變和交叉受限於您選擇的策略。

3)如果參數沒有任何界限,那麼是否可以通過變異和交叉操作來自由探索所有的空間?

理論上,如果您在所有解決方案空間內啓動限制,DE會找到全局最優。但是,根據我的經驗,我注意到解決方案空間中的初始參數和限制對於獲得快速響應非常重要。簡而言之,如果您對解決方案的位置有一定的瞭解,那麼如果您在這些值內劃定參數,則DE會表現得更好。

相關問題