轉載 遺傳算法的概念

是建立在自然選擇和自然遺傳學機理基礎上的迭代自適應概率性搜索算法,在1975年Holland教授提出。生物的進化是一個奇妙的優化過程,它通過選擇淘汰,突然變異,基因遺傳等規律產生適應環境變化的優良物種。遺傳算法是根據生物進化思想而啓發得出的一種全局優化算法。 遺傳算法的概念最早是由Bagley J.D在1967年提出的;而開始遺傳算法的理論和方法的系統性研究的是1975年,這一開創性工作是由Michigan大學的J.H.Holland所實行。當時,其主要目的是說明自然和人工系統的自適應過程。遺傳算法簡稱GA(Genetic Algorithm),在本質上是一種不依賴具體問題的直接搜索方法。遺傳算法在模式識別、神經網絡、圖像處理、機器學習、工業優化控制、自適應控制、生物科學、社會科學等方面都得到應用。在人工智能研究中,現在人們認爲“遺傳算法、自適應系統、細胞自動機、混沌理論與人工智能一樣,都是對今後十年的計算技術有重大影響的關鍵技術”。
3.2.1 遺傳算法
的基本概念遺傳算法的基本思想是基於Darwin進化論和Mendel的遺傳學說的。      Darwin進化論最重要的是適者生存原理。它認爲每一物種在發展中越來越適應環境。物種每個個體的基本特徵由後代所繼承,但後代又會產生一些異於父代的新變化。在環境變化時,只有那些熊適應環境的個體特徵方能保留下來。 Mendel遺傳學說最重要的是基因遺傳原理。它認爲遺傳以密碼方式存在細胞中,並以基因形式包含在染色體內。每個基因有特殊的位置並控制某種
特殊性質;所以,每個基因產生的個體對環境具有某種適應性。

因突變和基因雜交可產生更適應於環境的後代。經過存優去劣的自然淘汰,適應性高的基因結構得以保存下來。由於遺傳算法是由進化論和遺傳學機理而產生的直接搜索優化方法;故而在這個算法中要用到各種進化和遺傳學的概念。這些概念如下:
一、串(String) 它是
個體(Individual)的形式,在算法中爲二進制串,並且對應於遺傳學中的染色體(Chromosome)。
二、羣體(Population) 個體的集合稱爲羣體,串是羣體的元素三、羣體大小(Population Size) 在羣體中個體
的數量稱爲羣體的大小。
四、基因(Gene) 基因是串中的元素,
基因用於表示個體的特徵。例如有一個串S=1011,則其中的1,0,1,1這4個元素分別稱爲基因。它們的值稱爲等位基因(Alletes)。
五 、基因位置(Gene Position) 一個基因在串中的位置稱爲基因位置,有時也簡稱基因位。基因位置由串的左向右計算,例如在串S=1101中,0的基因位置是3。基因位置對應於遺傳學中的地點(Locus)。
六、基因特徵值(Gene Feature) 在用串表示整數時,
基因的特徵值與二進制數的權一致;例如在串S=1011中,基因位置3中的1,它的基因特徵值爲2;基因位置1中的1,它的基因特徵值爲8。
七、串結構空間SS 在串中,基因任意組合所構成的串的集合。基因操作是在結構空間中進行的。串結構空間對應於遺傳學中的基因型(Genotype)的集合。
八、參數空間SP 這是串空間在物理系統中的映射,它對應於遺傳學中的表現型(Phenotype)的集合。
九、非線性它對應遺傳學中的異位顯性(Epistasis)
十、適應度(Fitness) 表示某一個體對於環境的適應程度。遺傳算法還有一些其它的概念,這些概念在介紹遺傳算法的原理和執行過程時,再進行說明。
3.2.2遺傳算法的原理遺傳算法GA把問題的解表示成“染色體”,在算法中也即是以二進制編碼的串。並且,在執行遺傳算法之前,給出一羣“染色體”,也即是假設解。然後,把這些假設解置於問題的“環境”中,並按適者生存的原則,從中選擇出較適應環境的“染色體”進行復制,再通過交叉,變異過程產生更適應環境的新一代“染色體”羣。這樣,一代一代地進化,最後就會收斂到最適應環境的一個“染色體”上,它就是問題的最優解。
一、遺傳算法的目的典型的遺傳算法CGA(Canonical Genetic Algorithm)通常用於解決下面這一類的靜態最優化問題:考慮對於一羣長度爲L的二進制編碼bi,i=1,2,…,n;有 b i∈{0,1}L        (3-84) 給定目標函數f,有f(bi),並且 0i)<∞ 同時
f(bii+1) 求滿足下式 max{f(bi)|bi∈{0,1}L}            (3-85) 的bi。很明顯,遺傳算法是一種最優化方法,它通過進化和遺傳機理,從給出的原始解羣中,不斷進化產生新的解,最後收斂到一個特定的串bi處,即求出最優解。
二、遺傳算法的基本原理長度爲L的n個二進制串bi(i=1,2,…,n)組成了遺傳算法的初解羣,也稱爲初始羣體。在每個串中,每個二進制位就是個體染色體的基因。根據進化術語,對羣體執行的操作有三種:
1.選擇(Selection) 這是從羣體中選擇出較適應環境的個體。這些選中的個體用於繁殖下一代。故有時也稱這一操作爲再生(Reproduction)。由於在選擇用於繁殖下一代的個體時,是根據個體對環境的適應度而決定其繁殖量的,故而有時也稱爲非均勻再生(differential reproduction)。
2.交叉(Crossover) 這是在選中用於繁殖下一代的個體中,對兩個不同的個體的相同位置的基因進行交換,從而產生新的個體。
3.變異(Mutation) 這是在選中的個體中,對個體中的某些基因執行異向轉化。在串bi中,如果某位基因爲1,產生變異時就是把它變成0;反亦反之。遺傳算法的原理可以簡要給出如下: choose an intial population determine the fitness of each individual perform selection repeat     perform crossover     perform mutation     determine the fitness of each individual     perform selection until some stopping criterion applies 這裏所指的某種結束準則一般是指個體的適應度達到給定的閥值;或者個體的適應度的變化率爲零。三、遺傳算法的步驟和意義
1.初始化選擇一個羣體,即選擇一個串或個體的集合bi,i=1,2,...n。這個初始的羣體也就是問題假設解的集合。一般取n=30-160。通常以隨機方法產生串或個體的集合bi,i=1,2,...n。問題的最優解將通過這些初始假設解進化而求出。
2.選擇根據適者生存原則選擇下一代的個體。在選擇時,以適應度爲選擇原則。適應度準則體現了適者生存,不適應者淘汰的自然法則。給出目標函數f,則f(bi)稱爲個體bi的適應度。以 ...(3-86)
爲選中bi爲下一代個體的次數。 顯然.從式(3—86)可知: (1)適應度較高的個體,繁殖下一代的數目較多。 (2)適應度較小的個體,繁殖下一代的數目較少;甚至被淘汰。這樣,就產生了對環境適應能力較強的後代。對於問題求解角度來講,就是選擇出和最優解較接近的中間解。選擇的方法有:
  • 適應度比例法
  • 期望值法
  • 排位次法
  • 精華保存法

3.交叉
對於選中用於繁殖下一代的個體,隨機地選擇兩個個體的相同位置,按交叉概率P。在選中的位置實行交換。這個過程反映了隨機信息交換;目的在於產生新的基因組合,也即產生新的個體。交叉時,可實行單點交叉或多點交叉。例如有個體 S1=100101 S2=010111 選擇它們的左邊3位進行交叉操作,則有 S1=010101 S2=100111 一般而言,交叉幌宰P。取值爲0.25—0.75。
4.變異根據生物遺傳中基因變異的原理,以變異概率Pm對某些個體的某些位執行變異。在變異時,對執行變異的串的對應位求反,即把1變爲0,把0變爲1。變異概率Pm與生物變異極小的情況一致,所以,Pm的取值較小,一般取0.01-0.2。例如有個體S=101011。對其的第1,4位置的基因進行變異,則有 S'=001111 單靠變異不能在求解中得到好處。但是,它能保證算法過程不會產生無法進化的單一羣體。因爲在所有的個體一樣時,交叉是無法產生新的個體的,這時只能靠變異產生新的個體。也就是說,變異增加了全局優化的特質。
5.全局最優收斂(Convergence to the global optimum) 當最優個體的適應度達到給定的閥值,或者最優個體的適應度和羣體適應度不再上升時,則算法的迭代過程收斂、算法結束。否則,用經過選擇、交叉、變異所得到的新一代羣體取代上一代羣體,並返回到第2步即選擇操作處繼續循環執行。圖3—7中表示了遺傳算法的執行過程。
3.2.3遺傳算法的應用 遺傳算法在很多領域都得到應用;從神經網絡研究的角度上考慮,最關心的是遺傳算法在神經網絡的應用。在遺傳算法應用中,應先明確其特點和關鍵問題,才能對這種算法深入瞭解,靈活應用,以及進一步研究開發。
一、遺傳算法的特點
1.遺傳算法從問題解的中集開始嫂索,而不是從單個解開始。這是遺傳算法與傳統優化算法的極大區別。傳統優化算法是從單個初始值迭代求最優解的;容易誤入局部最優解。遺傳算法從串集開始搜索,覆蓋面大,利於全局擇優。
2.遺傳算法求解時使用特定問題的信息極少,容易形成通用算法程序。由於遺傳算法使用適應值這一信息進行搜索,並不需要問題導數等與問題直接相關的信息。遺傳算法只需適應值和串編碼等通用信息,故幾乎可處理任何問題。
3.遺傳算法有極強的容錯能力遺傳算法的初始串集本身就帶有大量與最優解甚遠的信息;通過選擇、交叉、變異操作能迅速排除與最優解相差極大的串;這是一個強烈的濾波過程;並且是一個並行濾波機制。故而,遺傳算法有很高的容錯能力。
4.遺傳算法中的選擇、交叉和變異都是隨機操作,而不是確定的精確規則。這說明遺傳算法是採用隨機方法進行最優解搜索,選擇體現了向最優解迫近,交叉體現了最優解的產生,變異體現了全局最優解的覆蓋。
5.遺傳算法具有隱含的並行性遺傳算法的基礎理論是圖式定理。它的有關內容如下:
(1)圖式(Schema)概念一個基因串用符號集{0,1,*}表示,則稱爲一個因式;其中*可以是0或1。例如:H=1x x 0 x x是一個圖式。
(2)圖式的階和長度圖式中0和1的個數稱爲圖式的階,並用0(H)表示。圖式中第1位數字和最後位數字間的距離稱爲圖式的長度,並用δ(H)表示。對於圖式H=1x x0x x,有0(H)=2,δ (H)=4。
(3)Holland圖式定理低階,短長度的圖式在羣體遺傳過程中將會按指數規律增加。當羣體的大小爲n時,每代處理的圖式數目爲0(n3)。遺傳算法這種處理能力稱爲隱含並行性(Implicit Parallelism)。它說明遺傳算法其內在具有並行處理的特質。二、遺傳算法的應用關鍵遺傳算法在應用中最關鍵的問題有如下3個
1.串的編碼方式這本質是問題編碼。一般把問題的各種參數用二進制編碼,構成子串;然後把子串拼接構成“染色體”串。串長度及編碼形式對算法收斂影響極大。
2.適應函數的確定適應函數(fitness function)也稱對象函數(object function),這是問題求解品質的測量函數;往往也稱爲問題的“環境”。一般可以把問題的模型函數作爲對象函數;但有時需要另行構造。
3.遺傳算法自身參數設定遺傳算法自身參數有3個,即羣體大小n、交叉概率Pc和變異概率Pm。羣體大小n太小時難以求出最優解,太大則增長收斂時間。一般n=30-160。交叉概率Pc太小時難以向前搜索,太大則容易破壞高適應值的結構。一般取Pc=0.25-0.75。變異概率Pm太小時難以產生新的基因結構,太大使遺傳算法成了單純的隨機搜索。一般取Pm=0.01—0.2。
三、遺傳算法在神經網絡中的應用遺傳算法在神經網絡中的應用主要反映在3個方面:網絡的學習,網絡的結構設計,網絡的分析。
1.遺傳算法在網絡學習中的應用 在神經網絡中,遺傳算法可用於網絡的學習。這時,它在兩個方面起作用
(1)學習規則的優化 用遺傳算法對神經網絡學習規則實現自動優化,從而提高學習速率。
(2)網絡權係數的優化 用遺傳算法的全局優化及隱含並行性的特點提高權係數優化速度。
2.遺傳算法在網絡設計中的應用 用遺傳算法設計一個優秀的神經網絡結構,首先是要解決網絡結構的編碼問題;然後才能以選擇、交叉、變異操作得出最優結構。編碼方法主要有下列3種:
(1)直接編碼法 這是把神經網絡結構直接用二進制串表示,在遺傳算法中,“染色體”實質上和神經網絡且恢鍾成涔叵怠Mü浴叭舊濉鋇撓嘔褪迪至碩醞緄撓嘔?
(2)參數化編碼法 參數化編碼採用的編碼較爲抽象,編碼包括網絡層數、每層神經元數、各層互連方式等信息。一般對進化後的優化“染色體”進行分析,然後產生網絡的結構。
(3)繁衍生長法 這種方法不是在“染色體”中直接編碼神經網絡的結構,而是把一些簡單的生長語法規則編碼入“染色體”中;然後,由遺傳算法對這些生長語法規則不斷進行改變,最後生成適合所解的問題的神經網絡。這種方法與自然界生物地生長進化相一致。
3.遺傳算法在網絡分析中的應用 遺傳算法可用於分析神經網絡。神經網絡由於有分佈存儲等特點,一般難以從其拓撲結構直接理解其功能。遺傳算法可對神經網絡進行功能分析,性質分析,狀態分析。 遺傳算法雖然可以在多種領域都有實際應用,並且也展示了它潛力和寬廣前景;但是,遺傳算法還有大量的問題需要研究,目前也還有各種不足。首先,在變量多,取值範圍大或無給定範圍時,收斂速度下降;其次,可找到最優解附近,但無法精確確定最擾解位置;最後,遺傳算法的參數選擇尚未有定量方法。對遺傳算法,還需要進一步研究其數學基礎理論;還需要在理論上證明它與其它優化技術的優劣及原因;還需研究硬件化的遺傳算法;以及遺傳算法的通用編程和形式等。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章