遺傳演算法 (轉)

worldblog發表於2007-12-12
遺傳演算法 (轉)[@more@]

遺傳演算法(Gic Algorithm)是一類借鑑生物界的進化規律(適者生存,優勝劣汰遺傳機制)演化而來的隨機化搜尋方法。它是由美國的J.Holland教授1975年首先提出,其主要特點是直接對結構進行操作,不存在求導和連續性的限定;具有內在的隱並行性和更好的全域性尋優能力;採用機率化的尋優方法,能自動獲取和指導的搜尋空間,自適應地調整搜尋方向,不需要確定的規則。遺傳演算法的這些性質,已被人們廣泛地應用於組合最佳化、機器學習、訊號處理、自適應控制和人工生命等領域。它是現代有關智慧計算中的關鍵技術之一。

1.遺傳演算法與自然選擇

達爾文的自然選擇學說是一種被人們廣泛接受的生物進化學說。這種學說認為,生物要生存下去,就必須進行生存鬥爭。生存鬥爭包括種內鬥爭、種間鬥爭以及生物跟無機環境之間的鬥爭三個方面。在生存鬥爭中,具有有利變異的個體容易存活下來,並且有更多的機會將有利變異傳給後代;具有不利變異的個體就容易被淘汰,產生後代的機會也少的多。因此,凡是在生存鬥爭中獲勝的個體都是對環境適應性比較強的。達爾文把這種在生存鬥爭中適者生存,不適者淘汰的過程叫做自然選擇。它表明,遺傳和變異是決定生物進化的內在因素。自然界中的多種生物之所以能夠適應環境而得以生存進化,是和遺傳和變異生命現象分不開的。正是生物的這種遺傳特性,使生物界的物種能夠保持相對的穩定;而生物的變異特性,使生物個體產生新的性狀,以致於形成新的物種,推動了生物的進化和發展。

遺傳演算法是模擬達爾文的遺傳選擇和自然淘汰的生物進化過程的計算模型。它的思想源於生物遺傳學和適者生存的自然規律,是具有“生存+檢測”的迭代過程的搜尋演算法。遺傳演算法以一種群體中的所有個體為物件,並利用隨機化技術指導對一個被編碼的引數空間進行高效搜尋。其中,選擇、交叉和變異構成了遺傳演算法的遺傳操作;引數編碼、初始群體的設定、適應度函式的設計、遺傳操作設計、控制引數設定五個要素組成了遺傳演算法的核心內容。 作為一種新的全域性最佳化搜尋演算法,遺傳演算法以其簡單通用、魯棒性強、適於並行處理以及高效、實用等顯著特點,在各個領域得到了廣泛應用,取得了良好效果,並逐漸成為重要的智慧演算法之一。

2.遺傳演算法的基本步驟
 

我們習慣上把Holland1975年提出的GA稱為傳統的GA。它的主要步驟如下:

編碼:GA在進行搜尋之前先將解空間的解資料表示成遺傳空間的基因型串結構資料,這些串結構資料的不同組合便構成了不同的點。

初始群體的生成:隨機產生N個初始串結構資料,每個串結構資料稱為一個個體, N個個體構成了一個群體。GA以這N個串結構資料作為初始點開始迭代。

適應性值評估檢測:適應性函式表明個體或解的優劣性。不同的問題,適應性函式的定義方式也不同。

選擇:選擇的目的是為了從當前群體中選出優良的個體,使它們有機會作為父代為下一代繁殖子孫。遺傳演算法透過選擇過程體現這一思想,進行選擇的原則是適應性強的個體為下一代貢獻一個或多個後代的機率大。選擇實現了達爾文的適者生存原則。

:交換操作是遺傳演算法中最主要的遺傳操作。透過交換操作可以得到新一代個體,新個體組合了其父輩個體的特性。交換體現了資訊交換的思想。

變異:變異首先在群體中隨機選擇一個個體,對於選中的個體以一定的機率隨機地改變串結構資料中某個串的值。同生物界一樣,GA中變異發生的機率很低,通常取值在0.001~0.01之間。變異為新個體的產生提供了機會。

GA的計算過程為:

選擇編碼方式

產生初始群體

計算初始群體的適應性值

如果不滿足條件 {
  選擇
  交換
  變異
  計算新一代群體的適應性值
}


3.遺傳演算法的特點

遺傳演算法作為一種快捷、簡便、容錯性強的演算法,在各類結構物件的最佳化過程中顯示

出明顯的優勢。與傳統的搜尋方法相比,遺傳演算法具有如下特點:

搜尋過程不直接作用在變數上,而是在引數集進行了編碼的個體。此編碼操作,
使得遺傳演算法可直接對結構物件(集合、序列、矩陣、樹、圖、鏈和表)進行操作。

搜尋過程是從一組解迭代到另一組解,採用同時處理群體中多個個體的方法,降
低了陷入區域性最優解的可能性,並易於並行化。

採用機率的變遷規則來指導搜尋方向,而不採用確定性搜尋規則。
對搜尋空間沒有任何特殊要求(如連通性、凸性等),只利用適應性資訊,不需要
導數等其它輔助資訊,適應範圍更廣。

 

4.遺傳演算法的研究歷史與現狀

遺傳演算法研究的興起是在80年代末和90年代初期,但它的歷史起源可追溯至60年代

初期。早期的研究大多以對自然的模擬為主。如Fraser的模擬研究,他提出了和現在的遺傳演算法十分相似的概念和思想。Holland和DeJong的創造性研究成果改變了早期遺傳演算法研究的無目標性和理論指導的缺乏。其中,Holland於1975年出版的著名著作<>系統地闡述了遺傳演算法的基本理論和方法,並提出了對遺傳演算法的理論研究和發展極為重要的理論。這一理論首次確認了結構重組遺傳操作對於獲得隱並行性的重要性。

同年,DeJong的重要論文<>將Holland的模式理論與他的計算實驗結合起來,並提出了諸如代溝等新的遺傳操作技術。可以認為,DeJong所作的研究工作是遺傳演算法發展過程中的一個里程碑。

進入80年代,遺傳演算法迎來了興盛發展時期,無論是理論研究還是應用研究都成了十分熱門的課題。尤其是遺傳演算法的應用領域也不斷擴大。目前遺傳演算法所涉及的主要領域有自動控制、規劃設計、組合最佳化、圖象處理、訊號處理、人工生命等。可見,遺傳演算法的應用研究已從初期的組合最佳化求解擴充到了許多。更工程化的應用方面。

 


 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991969/,如需轉載,請註明出處,否則將追究法律責任。

相關文章