很好的理解遺傳演算法的範例

來源:互聯網
上載者:User

標籤:style   http   資料   art   問題   演算法   

遺傳演算法的手工類比計算示範範例

為更好地理解遺傳演算法的運算過程,以下用手工計算來簡單地類比遺傳演算法的各
    個主要運行步驟。
  
     例:求下述二元函數的最大值:

    (1) 個體編碼
           遺傳演算法的運算對象是表示個體的符號串,所以必須把變數 x1, x2 編碼為一種
       符號串。本題中,用無符號二進位整數來表示。
           因 x1, x2 為 0 ~ 7之間的整數,所以分別用3位無符號二進位整數來表示,將它
       們串連在一起所組成的6位無符號位元就形成了個體的基因型,表示一個可
       行解。
           比如,基因型 X=101110 所相應的表現型是:x=[ 5,6 ]。
           個體的表現型x和基因型X之間可通過編碼和解碼程式相互轉換。

(2) 初始群體的產生
          遺傳演算法是對群體進行的進化操作,須要給其淮備一些表示起始搜尋點的初始
      群體資料。
         本例中,群體規模的大小取為4,即群體由4個個體組成,每一個個體可通過隨機
     方法產生。
          如:011101,101011,011100,111001
         
 (3) 適應度汁算
          遺傳演算法中以個體適應度的大小來評定各個個體的優劣程度,從而決定其遺傳
       機會的大小。
          本例中,目標函數總取非負值,而且是以求函數最大值為最佳化目標,故可直接
       利用目標函數值作為個體的適應度。

 (4)  選擇運算
          選擇運算(或稱為複製運算)把當前群體中適應度較高的個體按某種規則或模型遺傳到下一代群體中。一般要求適應度較高的個體將有很多其它的機會遺傳到下一代
      群體中。                   
本例中,我們採用與適應度成正比的機率來確定各個個體拷貝到下一代群體中
     的數量。其詳細操作過程是:
         •  先計算出群體中所有個體的適應度的總和  ?fi  ( i=1.2,…,M );
         •  其次計算出每一個個體的相對適應度的大小 fi / ?fi ,它即為每一個個體被遺傳
             到下一代群體中的機率,
         •  每一個機率值組成一個地區,所有機率值之和為1;
         •  最後再產生一個0到1之間的隨機數,根據該隨機數出如今上述哪一個機率區
             域內來確定各個個體被選中的次數。

(5)  交叉運算
        交叉運算是遺傳演算法中產生新個體的主要操作過程,它以某一機率相互交換某
    兩個個體之間的部分染色體。
       本例採用單點交叉的方法,其詳細操作過程是:
       • 先對群體進行隨機配對;
       • 其次隨機設定交叉點位置;
       • 最後再相互交換配對染色體之間的部分基因。

(6)  變異運算
         變異運算是對個體的某一個或某一些基因座上的基因值按某一較小的機率進
     行改變,它也是產生新個體的一種操作方法。
        本例中,我們採用基本位變異的方法來進行變異運算,其詳細操作過程是:
        • 首先確定出各個個體的基因變異位置,下表所看到的為隨機產生的變異點位置,
          當中的數字表示變異點設定在該基因座處;
        • 然後按照某一機率將變異點的原有基因值取反。

對群體P(t)進行一輪選擇、交叉、變異運算之後可得到新一代的群體p(t+1)。

從上表中可以看出,群體經過一代進化之後,其適應度的最大值、平均值都得
    到了明顯的改進。其實,這裡已經找到了最佳個體“111111”。       
[注意]      
        須要說明的是,表中有些欄的資料是隨機產生的。這裡為了更好地說明問題,
   我們特意選擇了一些較好的數值以便可以得到較好的結果,而在實際運算過程中
   有可能須要一定的迴圈次數才幹達到這個最優結果。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.