遺傳算法 差分進化算法 粒子羣優化算法區別

一 遺傳算法

 遺傳算法(GA)作爲一種經典的進化算法,自 Holland提出之後在國際上已經形成了一個比較活躍的研究領域. 人們對 GA 進行了大量的研究,提出了各種改進算法用於提高算法的收斂速度和精確性. 遺傳算法採用選擇,交叉,變異操作,在問題空間搜索最優解.經典遺傳算法首先對參數進行編碼,生成一定數目的個體,形成初始種羣其中每個個體可以是一維或多維矢量,以二進制數串表示,稱爲染色體.染色體的每一位二進制數稱爲基因.根據自然界生物優勝劣汰的選擇思想,算法中設計適應度函數作爲評判每個個體性能優劣的標準,性能好的個體以一定概率被選擇出來作爲父代個體參加以後的遺傳操作以生成新一代種羣.算法中基本的遺傳算子爲染色體選擇,染色體上基因雜交和基因變異.生成新一代種羣後算法循環進行適應度評價、遺傳操作等步驟,逐代優化,直至滿足結束條件.

標準遺傳算法的流程如下:

        Stepl:初始化羣體.

        Step2:計算羣體上每個個體的適應度值.

        Step3:按由個體適應度值所決定的某個規則選擇將進入下一代的個體.

        Step4:按概率cp 進行雜交操作.

        Step5:按概率mp 進行變異操作.

        Step6:若滿足某種停止條件,則執行 Step7,否則執行 Step2.

        Step7:輸出種羣中適應度值最優的染色體作爲問題的滿意解.

       

      一般情況下,算法的終止條件包括:1、完成了預先給定的進化代數;2、種羣中的最優個體在連續若干代沒有改進或平均適應度在連續若干代基本沒有改進;3、所求問題最優值小於給定的閾值.

 

        粒子羣(PSO)算法是近幾年來最爲流行的進化算法,最早是由Kenned和Eberhart於1995年提出.PSO 算法和其他進化算法類似,也採用“羣體”和“進化”的概念,通過個體間的協作與競爭,實現複雜空間中最優解的搜索.PSO 先生成初始種羣,即在可行解空間中隨機初始化一羣粒子,每個粒子都爲優化問題的一個可行解,並由目標函數爲之確定一個適應值(fitness value).PSO 不像其他進化算法那樣對於個體使用進化算子,而是將每個個體看作是在n 維搜索空間中的一個沒有體積和重量的粒子,每個粒子將在解空間中運動,並由一個速度決定其方向和距離.通常粒子將追隨當前的最優粒子而運動,並經逐代搜索最後得到最優解.在每一代中,粒子將跟蹤兩個極值,一爲粒子本身迄今找到的最優解 pbest ,另一爲全種羣迄今找到的最優解 gbest.由於認識到 PSO 在函數優化等領域所蘊含的廣闊的應用前景,在 Kenned 和 Eberhart 之後很多學者都進行了這方面的研究.目前已提出了多種 PSO改進算法,並廣泛應用到許多領域.

 

二、差分進化算法

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

 

DE算法的基本原理:

        DE 算法主要用於求解連續變量的全局優化問題,其主要工作步驟與其他進化算法基本一致,主要包括變異(Mutation)、交叉(Crossover)、選擇(Selection)三種操作。算法的基本思想是從某一隨機產生的初始羣體開始,利用從種羣中隨機選取的兩個個體的差向量作爲第三個個體的隨機變化源,將差向量加權後按照一定的規則與第三個個體求和而產生變異個體,該操作稱爲變異。然後,變異個體與某個預先決定的目標個體進行參數混合,生成試驗個體,這一過程稱之爲交叉。如果試驗個體的適應度值優於目標個體的適應度值,則在下一代中試驗個體取代目標個體,否則目標個體仍保存下來,該操作稱爲選擇。在每一代的進化過程中,每一個體矢量作爲目標個體一次,算法通過不斷地迭代計算,保留優良個體,淘汰劣質個體,引導搜索過程向全局最優解逼近。

DE算法的求解步驟:

(1)基本參數的設置,包括NP, F, CR
(2)初始化種羣
(3)計算種羣適應度值
(4)終止條件不滿足時,進行循環,依次執行變異、交叉、選擇運算,直到終止運算。

 

                                                  

                                                                 圖2.1給出了算法的具體流程:

 

 

控制參數對一個全局優化算法的影響是很大的,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 合適值。

 

參數設置:

        種羣規模NP:多樣性,NP大,增加搜索到最優解的概率,但是計算量加大。

        縮放因子F:對基向量擾動程度,F大,擾動大,能夠在更大範圍尋找解。0.4~1

        交叉概率CR:種羣多樣性,CR大,更多個體改變,利於尋找最優解。0.6~1

區別

        不同之處在於遺傳算法是根據適應度值來控制父代雜交,變異後產生的子代被選擇的概率值,在最大化問題中適應值大的個體被選擇的概率相應也會大一些。而差分進化算法變異向量是由父代差分向量生成,並與父代個體向量交叉生成新個體向量,直接與其父代個體進行選擇。顯然差分進化算法相對遺傳算法的逼近效果更加顯著。

遺傳算法,粒子羣算法,差分進化算法都屬於進化算法的分枝,很多學者對這些算法進行了研究,通過不斷的改進,提高了算法的性能,擴大了應用領域因此很有必要討論這些算法的特點,針對不同應用領域和算法的適應能力,推薦不同的算法供使用將是十分有意義的工作.在文獻中,作者針對廣泛使用的 34 個基準函數分別對 DE,EA,PSO 進行了系列實驗分析,對各種算法求解最優解問題進行了討論.通過實驗分析,DE 算法獲得了最優性能,而且算法比較穩定,反覆運算都能收斂到同一個解;PSO 算法收斂速度次之,但是算法不穩定,最終收斂結果容易受參數大小和初始種羣的影響;EA 算法收斂速度相對比較慢,但在處理噪聲問題方面,EA 能夠很好的解決而 DE 算法很難處理這種噪聲問題.

 

通過實驗和文獻分析,我們對遺傳算法、粒子羣算法、差分進化算法的一些指標分別進行分析現歸納如下:

(1)編碼標準     GA 採用二進制編碼,PSO、DE 都採用浮點實數編碼,近年來許多學者通過整數編碼將GA 算法、PSO 算法應用與求解離散型問題,特別是 0-1 非線性優化爲題,整數規劃問題、混合整數規劃問題,而離散的 DE 算法則研究的比較少,而採用混合編碼技術的 DE 算法則研究更少.

(2)參數設置問題    DE 算法主要有三個參數(種羣大小NP、縮放因子F、交叉概率CR)要調整,而且參數設置對結果影響不太明顯,因此更容易使用.相對於 GA 和 PSO 算法的參數過多,不同的參數設置對最終結果影響也比較大,因此在實際使用中,要不斷調整,加大了算法的使用難度.高維問題在實際問題中,由於轉化爲個體的向量維數非常高,因此算法對高維問題的處理,將是很重要的.只有很好的處理高維問題,算法才能很好的應用於實際問題.

(3)高維問題     GA 對高維問題收斂速度很慢甚至很難收斂,但是 PSO 和 DE 則能很好解決.尤其是DE 算法,收斂速度很快而且結果很精確.

(4)收斂性能      對於優化問題,相對 GA,DE 和 PSO 算法收斂速度比較快,但是 PSO 容易陷入局部最優解,而且算法不穩定.

(5)應用廣泛性       由於 GA 算法發明比較早,因此應用領域比較廣泛,PSO 算法自從發明以來,已成爲研究熱點問題,這方面應用也比較多,而 DE 算法近幾年才引起人們的關注而且算法性能好,因此應用領域將會增多.

DE缺點:

1、搜索停滯:種羣個體較少,且生成新一代個體的適應值比原種羣個體適應值差,導致個體難以更新,沒有收斂到極值點。

2、早熟收斂:參數設置不當,收斂過快,局部最優問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章