遺傳算法

   

本文主要包括:

u   基本知識

u   應用實例

u   自適應遺傳算法(算法改進)

注:本文內容全部源於互聯網,由本人蒐集整理而來。

一、遺傳算法基本知識

遺傳算法定義

遺傳算法(Genetic Algorithm是模擬達爾文的遺傳選擇和自然淘汰的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優解的方法,它是有美國Michigan大學J.Holland教授於1975年首先提出來的,並出版了頗有影響的專著《Adaptation in Natural and Artificial Systems》,GA這個名稱才逐漸爲人所知,J.Holland教授所提出的GA通常爲簡單遺傳算法(SGA)。

遺傳算法是從代表問題可能潛在的解集的一個種羣(population)開始的,而一個種羣則由經過基因(gene)編碼的一定數目的個體(individual)組成。每個個體實際上是染色體(chromosome)帶有特徵的實體。染色體作爲遺傳物質的主要載體,即多個基因的集合,其內部表現(即基因型)是某種基因組合,它決定了個體的形狀的外部表現,如黑頭髮的特徵是由染色體中控制這一特徵的某種基因組合決定的。因此,在一開始需要實現從表現型到基因型的映射即編碼工作。由於仿照基因編碼的工作很複雜,我們往往進行簡化,如二進制編碼,初代種羣產生之後,按照適者生存和優勝劣汰的原理,逐代(generation)演化產生出越來越好的近似解,在每一代,根據問題域中個體的適應度(fitness)大小選擇(selection)個體,並藉助於自然遺傳學的遺傳算子(genetic operators)進行組合交叉(crossover)和變異(mutation),產生出代表新的解集的種羣。這個過程將導致種羣像自然進化一樣的後生代種羣比前代更加適應於環境,末代種羣中的最優個體經過解碼(decoding),可以作爲問題近似最優解。

遺傳算法特點 

遺傳算法是一類可用於複雜系統優化的具有魯棒性的搜索算法,與傳統的優化算法相比,主要有以下特點:

1 遺傳算法以決策變量的編碼作爲運算對象。傳統的優化算法往往直接決策變量的實際植本身,而遺傳算法處理決策變量的某種編碼形式,使得我們可以借鑑生物學中的染色體和基因的概念,可以模仿自然界生物的遺傳和進化機理,也使得我們能夠方便的應用遺傳操作算子。

2 遺傳算法直接以適應度作爲搜索信息,無需導數等其它輔助信息。

3 遺傳算法使用多個點的搜索信息,具有隱含並行性。

4 遺傳算法使用概率搜索技術,而非確定性規則。

遺傳算法的應用

由於遺傳算法的整體搜索策略和優化搜索方法在計算是不依賴於梯度信息或其它輔助知識,而只需要影響搜索方向的目標函數和相應的適應度函數,所以遺傳算法提供了一種求解複雜系統問題的通用框架,它不依賴於問題的具體領域,對問題的種類有很強的魯棒性,所以廣泛應用於許多科學,下面我們將介紹遺傳算法的一些主要應用領域:

1 函數優化。

  函數優化是遺傳算法的經典應用領域,也是遺傳算法進行性能評價的常用算例,許多人構造出了各種各樣複雜形式的測試函數:連續函數和離散函數、凸函數和凹函數、低維函數和高維函數、單峯函數和多峯函數等。對於一些非線性、多模型、多目標的函數優化問題,用其它優化方法較難求解,而遺傳算法可以方便的得到較好的結果。

2 組合優化

  隨着問題規模的增大,組合優化問題的搜索空間也急劇增大,有時在目前的計算上用枚舉法很難求出最優解。對這類複雜的問題,人們已經意識到應把主要精力放在尋求滿意解上,而遺傳算法是尋求這種滿意解的最佳工具之一。實踐證明,遺傳算法對於組合優化中的NP問題非常有效。例如遺傳算法已經在求解旅行商問題、 揹包問題、裝箱問題、圖形劃分問題等方面得到成功的應用。

此外,GA也在生產調度問題、自動控制、機器人學、圖象處理、人工生命、遺傳編碼和機器學習等方面獲得了廣泛的運用

二、學習實例

u    遺傳算法的完整實現,有一個小案例,通俗易懂,向初學者推薦之:

http://www.codeproject.com/KB/recipes/btl_ga.aspx

u    對遺傳算法庫做了封裝,是一個通用的算法庫

http://www.codeproject.com/KB/recipes/geneticlibrary.aspx

u    遺傳算法解決旅行商問題

http://www.codeproject.com/KB/cs/TSP_Solved_using_GA.aspx

http://hi.baidu.com/eborder/blog/item/47716df383fd8f52352acc8b.html

三、算法改進:

u       一種基於小種羣規模的改進遺傳算法

http://www.zhuoda.org/periodical/85442.html

u      基於父個體更新的自適應遺傳算法

http://www.gotoread.com/mag/3639/contribution33018.html

u       自適應遺傳算法
http://hi.baidu.com/opthome/blog/item/c3bf5fd0bda5818aa1ec9c20.html

 

 

作者彭立雲

出處http://www.cnblogs.com/hanchan

本文版權歸作者所有,歡迎轉載,但必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


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