差分進化演算法

2021-10-01 05:14:34 字數 1254 閱讀 2643

差分進化演算法是一種全域性最優化的演算法,隨機搜尋,通過引數向量集的隨機擾動實現平行計算,本身輸入遺傳類演算法,

借用了一種n&m的演算法有點,損失函式有d個引數,他用d+1個頂點的多面體定義目前的搜尋空間,每個頂點 由乙個d維引數向量表示,計算損失函式,區域性最優方法,引入退火的概念,從向量集中獲取資訊並更新搜尋空間,

具體方法如下:

差異演化給兩個引數向量不同的權重得到第三個引數向量,稱之為變異,變異後的向量與已有向量進行混合得到新的向量,嘗試向量的損失函式更小,則在下一次更新中用嘗試向量代替目標向量,最後選擇,向量集中所有的向量都要與目標向量比較,

de是一種基於群體進化的演算法,具有記憶個體最優解和種群內資訊共享的特點,即為通過種群內個體間的合作和競爭來實現對優化問題的求解,其本質是一種 基於實數編碼的具有保優思想的貪婪遺傳演算法。

演算法首先在問題的可行解空間隨機初始化種群 x0=x0110, x0220, …, x0npνρ0, np是種群規模,個體x0i用於表徵問題解,d是優化問題的維數,基本思想是:對當前的種群進行變異以及交叉操作,產生乙個新的種群,然後基於貪婪思想的選擇操作對兩個種群進行一對一的選擇,產生最終的新一代族群,

具體而言是,首先是變異操作:xit是某一時刻的個體,vit+1是對應的變異個體,xr1t為父代基向量;xr2t-xr3t為父代差分向量,k為縮放比例因子,

之後是交叉操作,生成試驗個體uit+1,即為:

其中,rand(j)是[0,1]之間的均勻分布隨機數,cr為範圍在[0,1]之間的交叉概率;rnbr(i)為之間的隨機量,利用式3對試驗個體uit+1和xit的目標函式進行比較,對於最小化問題,選擇新種群的個體xit+1,即為

其中f為目標函式.上述過程是標準版本的de, 表示為de/rand/1/bin.文獻[4]中提供了其餘有關de的變種.

de演算法的搜尋效能取決於演算法全域性探索和區域性開發能力的平衡, 而這在很大程度上依賴於演算法的控制引數的選取,包括種群規模、縮放比例因子和交叉概率等,相對其他的進化演算法而言,de所需調節的引數較少:

歸納:演算法通用,不依賴於問題資訊

演算法原理簡單,易於實現

群體搜尋,具有記憶個體最優解的能力

協同搜尋,具有利用個體區域性資訊和群體全域性資訊指導演算法進一步搜尋的能力;

易於與其他演算法混合,構造出具有更優效能的演算法

差分進化演算法

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

差分進化演算法

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

差分進化演算法

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