進化算法 遺傳算法與粒子羣算法之間的比較

轉自:   http://hanwangwang1989.blog.163.com/blog/static/168259017201431103649613/


      遺傳算法(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 算法已成爲學者的研究熱點,具有很大的發展空間.

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

Step1: 確定DE控制參數和所採用的具體策略,DE控制參數包括:種羣數量、變異算子、交叉算子、最大進化代數、終止條件等.

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

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

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

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

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

Step7: 進行選擇操作,得到新種羣.Step8: 進化代數 t = t+ 1,轉步驟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 合適值.

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

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

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

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

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

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

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

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