1. 程式人生 > >遺傳演算法初步

遺傳演算法初步

遺傳演算法基本原理

  遺傳演算法是從代表問題可能潛在解集的一個種群開始的,而一個種群則由經過基因編碼的一定數量的個體組成。每個個體實際上是染色體帶有特徵的實體。作為多個基因的集合,單個染色體是遺傳物質的主要載體,其在種群中的命運由其基因組合決定。初始種群產生以後按照優勝劣汰、適者生存的原理,逐代演化產生出越來越好的近似解。在每一代,根據問題域中個體的適應度大小挑選個體,並藉助代表於自然遺傳學的遺傳運算元進行交叉和變異,產生出代表新的解集的種群。這個過程導致種群像自然進化一樣,後代種群比前代更加適應於環境,末代種群中最優個體經過解碼,可以作為問題的近似最優解

  遺傳演算法採納了自然進化模型,如選擇、交叉、遷移、局域與鄰域等。與傳統搜尋演算法不同,遺傳演算法是從一組隨機產生的初始解開始搜尋過程

。種群中的每個個體是問題的一個解,稱為“染色體”,染色體是一串符號,比如二進位制01串。這些染色體在後續迭代中不斷進化,稱為遺傳。在每一代中用適應度來測量染色體的好壞。生成的下一代染色體稱為後代。後代是由前一代染色體通過交叉或者變異運算形成的。新一代形成中,根據適應度的大小選擇部分後代,淘汰部分後代,從而保持種群大小的穩定性適應度高的染色體被選中的概率高,這樣經過若干代之後,演算法收斂於最好的染色體,它很可能就是問題的最優解或次優解

生物遺傳與遺傳演算法概念比對

遺傳演算法的基本步驟

  1. 確定參變數及其各種約束條件,即確定個體的表現形式和問題的解空間
  2. 建立優化模型,即確定出求解問題的目標函式和數學描述形式及量化方法
  3. 確定染色體的編碼方法,即確定個體的基因形式
  4. 確定編碼方法,即確定出個體的基因形式到個體的表現形式的對應關係和轉化方式
  5. 確定個體適應度的量化評價方法,即確定出目標函式值同個體適應度的轉化規則
  6. 設計遺傳運算元,即確定出選擇運算元,交叉運算元和變異運算元的具體操作方法
  7. 確定遺傳演算法的有關執行引數,即確定出遺傳演算法

遺傳演算法流程圖

遺傳演算法的特點

  傳統的優化方法主要有三種:列舉法、啟發式演算法和搜尋演算法。隨著問題種類的不同以及問題規模的擴大,需要尋求一種能以有限的代價來解決搜尋和優化的通用方法,遺傳演算法正是為我們提供了一個有效的途徑,它不同於傳統的搜尋和優化方法。主要區別在於:

1.自組織、自適應和自學習性

2.遺傳演算法的本質並行性

3.遺傳演算法不需要求導或其他的輔助知識,而只需要影響搜尋方向的目標函式和相應的適應度函式

4.遺傳演算法強調概率轉換規,而不是確定的轉換規則

5.遺傳演算法可以更加直接的應用

6.遺傳演算法對給定的問題,可以產生許多的潛在解,最終可以由使用者確定

遺傳演算法的應用

  遺傳演算法提供了一種求解複雜系統問題的通用框架,它不依賴於問題的具體領域,對問題的種類有很強的魯棒性,所以廣泛應用於很多科學。

1.函式優化

2.組合優化

3.自動控制

4.人工生命