遺傳演算法原理及應用

2023-01-16 20:12:05 字數 2203 閱讀 8512

07計本張雷 070701010116

遺傳演算法是由美國的j. holland教授於2023年在他的專著《自然界和人工系統的適應性》中首先提出的,它是一類借鑑生物界自然選擇和自然遺傳機制的隨機化搜尋演算法 。

遺傳演算法模擬自然選擇和自然遺傳過程中發生的繁殖、交叉和基因突變現象,在每次迭代中都保留一組候選解,並按某種指標從解群中選取較優的個體,利用遺傳運算元(選擇、交叉和變異)對這些個體進行組合,產生新一代的候選解群,重複此過程,直到滿足某種收斂指標為止。

遺傳演算法的特點

(1)群體搜尋,易於並行化處理;

(2)不是盲目窮舉,而是啟發式搜尋;

(3)適應度函式不受連續、可微等條件的約束,適用範圍很廣。

遺傳演算法原理:

1、 遺傳演算法的數學基礎 (1)模式定理模式定理:具有低階、短定義距以及平均適應度高於種群平均適應度的模式在子代中呈指數增長。模式定理保證了較優的模式(遺傳演算法的較優解)的數目呈指數增長,為解釋遺傳演算法機理提供了數學基礎。

從模式定理可看出,有高平均適應度、短定義距、低階的模式,在連續的後代裡獲得至少以指數增長的串數目,這主要是因為選擇使最好的模式有更多的複製,交叉運算元不容易破壞高頻率出現的、短定義長的模式,而一般突變概率又相當小,因而它對這些重要的模式幾乎沒有影響。 (2)積木塊假設積木塊假設:遺傳演算法通過短定義距、低階以及高平均適應度的模式(積木塊),在遺傳操作下相互結合,最終接近全域性最優解。

模式定理保證了較優模式的樣本數呈指數增長,從而使遺傳演算法找到全域性最優解的可能性存在;而積木塊假設則指出了在遺傳運算元的作用下,能生成全域性最優解。

2、 遺傳演算法的收斂性分析遺傳演算法要實現全域性收斂,首先要求任意初始種群經有限步都能到達全域性最優解,其次演算法必須由保優操作來防止最優解的遺失。與演算法收斂性有關的因素主要包括種群規模、選擇操作、交叉概率和變異概率。

3、遺傳演算法的改進遺傳欺騙問題:在遺傳演算法進化過程中,有時會產生一些超常的個體,這些個體因競爭力太突出而控制了選擇運算過程,從而影響演算法的全域性優化效能,導致演算法獲得某個區域性最優解。 遺傳演算法的改進途徑

(1)對編碼方式的改進

(2)對遺傳運算元的改進

(3)對控制引數的改進

(4)對執行策略的改進

遺傳演算法的本質:遺傳演算法本質上是對染色體模式所進行的一系列運算,即通過選擇運算元將當前種群中的優良模式遺傳到下一代種群中,利用交叉運算元進行模式重組,利用變異運算元進行模式突變。通過這些遺傳操作,模式逐步向較好的方向進化,最終得到問題的最優解。

遺傳演算法的應用領域

(1)組合優化 (2)函式優化

(3)自動控制 (4)生產排程

(5)影象處理 (6)機器學習

(7)人工生命 (8)資料探勘

遺傳演算法的應用示例

彈藥裝載問題(ammunition loading problem,簡稱alp),就是在滿足各類通用彈藥運輸規程和安全性的前提下,如何將一批通用彈藥箱裝入軍用運輸工具,使得通用彈藥的裝載效率達到最大值的問題。agsaa的基本原理:在彈藥裝載中,考慮到模擬退火演算法的基本思想是跳出區域性最優解,將模擬退火思想引入遺傳演算法,應用改進型遺傳演算法和模擬退火演算法相結合,構建自適應遺傳模擬退火演算法(agsaa),從而綜合了全域性優化和區域性搜尋的特點,為解決彈藥裝載這一組合優化問題提供了新的思路。

agsaa採用二進位制編碼方式,每乙個二進位制位對應乙個待裝彈藥箱,若為1,表示該彈藥箱裝入運輸工具,為0則不裝。

agsaa採用彈藥裝載的啟發式演算法來解碼,解碼後最終確定裝入運輸工具的彈藥箱。適應度函式主要考慮兩個方面,即載重率和積載率,對這兩個因素加權,來計算適應度函式值。(1)定位規則(locating rule)定位規則是指用來確定當前待裝彈藥箱在運輸工具剩餘裝載空間中擺放位置的規則。

(2)定序規則(ordering rule)定序規則是指用來確定彈藥箱放入運輸工具裝載空間先後順序的規則。agsaa的選擇運算元採用輪盤賭選擇運算元,並結合最優儲存策略;變異運算元採用基本位變異運算元;同時,在變異運算之後,增加退火運算元,以增強演算法的區域性搜尋能力;交叉概率和變異概率為自適應概率,以提高種群的進化效率。

由於agsaa是採用將彈藥箱的編號排列成串來進行編碼的,如果個體交叉採用傳統方式進行,就有可能使個體的編碼產生重複基因(即乙個彈藥箱編號在乙個個體**現兩次以上),從而產生不符合條件的個體,因此,agsaa採用的是部分對映交叉運算元。交叉前:

8 7 | 4 3 | 1 2 6 5

1 2 | 5 7 | 8 3 4 6

交叉後:

8 3 | 6 7 | 1 2 4 5

1 7 | 6 2 | 8 3 4 5

用C 實現遺傳演算法

本程式試用遺傳演算法來解決rosenbrock函式的全域性最大值計算問題 max f x1,x2 100 x1 2 x2 2 1 x1 2 2.048 xi 2.048i 1,2 include include include include using namespace std const in...

蟻群演算法 遺傳演算法 模擬退火演算法介紹

窮舉法列舉所有可能,然後乙個個去,得到最優的結果。如圖一,需要從a點一直走到g點,才能知道,f是最高的 最優解 這種演算法得到的最優解肯定是最好的,但也是效率最低的。窮舉法雖然能得到最好的最優解,但效率是極其低下的。為了能提高效率,可以不要列舉所有的結果,只列舉結果集中的一部分,如果某個解在這部分解...

遺傳演算法在自適應入侵檢測系統中的應用

摘要提出了一種基於智慧型體技術的自適應入侵檢測系統體系結構,將智慧型體技術和自適應模型生成技術應用於入侵檢測系統中。智慧型體技術的應用解決了傳統的集中式入侵檢測系統的弊病,將任務處理和資料分布到網路各個結點上,通過各種智慧型體來協作完成入侵檢測任務,充分利用網路和主機資源。而且智慧型體與自適應模型生...