當前位置:編程學習大全網 - 編程語言 - 遺傳算法解決TSP問題

遺傳算法解決TSP問題

遺傳算法在很多領域都得到應用;從神經網絡研究的角度上考慮,最關心的是遺傳算法在神經網絡的應用。在遺傳算法應用中,應先明確其特點和關鍵問題,才能對這種算法深入了解,靈活應用,以及進壹步研究開發。

壹、遺傳算法的特點

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)直接編碼法

這是把神經網絡結構直接用二進制串表示,在遺傳算法中,“染色體”實質上和神經網絡是壹種映射關系。通過對“染色體”的優化就實現了對網絡的優化。

(2)參數化編碼法

參數化編碼采用的編碼較為抽象,編碼包括網絡層數、每層神經元數、各層互連方式等信息。壹般對進化後的優化“染色體”進行分析,然後產生網絡的結構。

(3)繁衍生長法

這種方法不是在“染色體”中直接編碼神經網絡的結構,而是把壹些簡單的生長語法規則編碼入“染色體”中;然後,由遺傳算法對這些生長語法規則不斷進行改變,最後生成適合所解的問題的神經網絡。這種方法與自然界生物地生長進化相壹致。

3.遺傳算法在網絡分析中的應用

遺傳算法可用於分析神經網絡。神經網絡由於有分布存儲等特點,壹般難以從其拓撲結構直接理解其功能。遺傳算法可對神經網絡進行功能分析,性質分析,狀態分析。

遺傳算法雖然可以在多種領域都有實際應用,並且也展示了它潛力和寬廣前景;但是,遺傳算法還有大量的問題需要研究,目前也還有各種不足。首先,在變量多,取值範圍大或無給定範圍時,收斂速度下降;其次,可找到最優解附近,但無法精確確定最擾解位置;最後,遺傳算法的參數選擇尚未有定量方法。對遺傳算法,還需要進壹步研究其數學基礎理論;還需要在理論上證明它與其它優化技術的優劣及原因;還需研究硬件化的遺傳算法;以及遺傳算法的通用編程和形式等。

  • 上一篇:戰士 所有的宏
  • 下一篇:孔子在 孔孟論學 中對 文 的闡釋
  • copyright 2024編程學習大全網