1.概念
遺傳算法( Genetic Algorithm )是受生物進化學說和遺傳學說的啓發發展起來的。生物在進化的過程中:不斷繁殖、生存競爭、適者生存、遺傳和變異。
1)涉及
遺傳算法涉及生物進化學說和遺傳學說中最重要的幾個概念:基因重組、基因突變、染色體變異
2)研究對象
研究各種非線性(哪怕是沒有明確的函數關係的系統)、多變量、多目標、複雜的自適應系統問題。
3)基本特徵
●漸進式搜索
●能得到全局最優解(交換和突變操作產生新個體)
●根據問題特性確定輸入輸出,不關心輸入與輸出之間的聯繫(所以可以求解沒有明確函數關係的問題)
4)改進方向
●編碼技術和程序表達技術的改進。
●複製、交換、突變等遺傳操作的改進。
●適應度的表達和計算的改進。
●尋求其它有效遺傳算子,防止近緣雜交、過早收斂。
2.基本運算過程
1)編碼與解碼
要便於計算機處理
十進制碼 | 二進制碼 | |
---|---|---|
優點 | 無需解碼 | 變異時取反(唯一) |
缺點 | 突變的可能性太多(9種) | 需要解碼,加大運算量 |
適用 | 變量多、數字大、粗選階段 | 變量少、取值少、精選階段 |
其他編碼方法 | 格雷碼 | 浮點數編碼 | 符號編碼 | 多參數級聯編碼 | 多參數交叉編碼 |
---|---|---|---|---|---|
定義 | 對連續函數進行局部空間搜索 | 使用決策變量的真實值 | 編碼值取自無數值含義、只有代碼含義的符號集 | 多個變量分別編碼,按順序連接在一起 | 多個變量分別編碼,將起主要作用的碼集中在一起,然後按順序連接 |
適用 | 相比於2進制碼快,相比於10進制碼精確 | 多維、高精度要求的連續函數優化 | 旅行商、營銷商、機器人設計問題 | 多變量尋優時,讓每個變量都有交叉的可能 |
二進制碼又分爲直接二進制碼(有符號位和小數點)、間接二進制碼(沒有符號位和小數點)
2)適應度函數與評估
通過適應度函數可以評價個體的優劣,並確定是否輸出目前最優解,或者繼續循環。
適應度函數確定方法:對個體編碼串解碼後,可得到個體值;由個體真值可求出個體的目標函數值;由最優化問題的類型,由目標函數值按一定的轉換規則可求出個體的適應度。
3)複製
選取哪些個體進行復制可以用等差、等比、輪盤賭的方法來決定。
4)交叉
個體基因發生“交叉”的概率爲50%~80%,可以上下浮動。
交叉中有三個隨機:個體隨機、概率可調、編碼位置隨機。
5)變異
個體基因發生“變異”的概率爲0.1%~1%,可以上下浮動
變異中有三個隨機:個體隨機、哪位變異隨機、變異幾位隨機。
6)終止條件
遺傳算法的終止條件有以下三種:
- 循環次數
- 當目標函數有最優目標值時,可採用控制偏差的方式實現終止。
- 檢查適應度的變化。如,最後兩次迭代,種羣適應度沒有太大變化,即可停止。
3.遺傳算子
遺傳算法中涉及的算子有:選擇算子、交叉算子、複製算子、變異算子、重排序算子(選擇之前按適應度進行排序)。