一.算法思想算法
模擬達爾文進化論的天然選擇和遺傳學的生物進化過程造成的計算模型,是一種經過模擬天然進化過程搜索最優解的方法。框架
應用: 函數優化、組合優化(NP問題、TSP問題)自動控制、機器人智能控制、組合圖像處理和模式識別,人工生命、遺傳程序設計。函數
2、算法核心優化
遺傳算法從表明問題可能解的一個種羣開始,種羣由染色體編碼表示,產生初始種羣以後,按照適者生存和優勝劣汰的原則,逐代演化產生愈來愈好的解,在每一代的進化過程當中,按照個體的適應度選擇個體,藉助遺傳算子進行交叉變異產生新的種羣,最終產生進化過程當中的最優解。編碼
遺傳算法中用到的基本概念: 染色體 種羣 個體 適應度 選擇 交叉 變異 編碼 解碼spa
3、算法框架設計
a)初始化:設置進化代數計數器t=0,設置最大進化代數T,隨機生成M個個體做爲初始羣體P(0)。指針
b)個體評價:計算羣體P(t)中各個個體的適應度。it
c)選擇運算 :將選擇算子做用於羣體。選擇的目的是把優化的個體直接遺傳到下一代或經過配對交叉產生新的個體再遺傳到下一代。選擇操做是創建在羣體中個體的適應度評估基礎上的。 圖像處理
經常使用的選擇算子有適應度比例方法,隨機遍歷抽樣法、局部選擇法,最經常使用的是輪盤賭的選擇方法
d)交叉運算:將交叉算子做用於羣體。遺傳算法中起核心做用的就是交叉算子。
根據編碼的不一樣,交叉算子有實值交叉和二進制交叉,二進制交叉又分爲單點交叉和多點交叉和均勻交叉等。
e)變異運算:將變異算子做用於羣體。便是對羣體中的個體串的某些基因座上的基因值做變更。
根據編碼的不一樣,變異算子有實值變異和二進制變異,通常變異機率小,大多爲染色體單點變異。
羣體P(t)通過選擇、交叉、變異運算以後獲得下一代羣體P(t+1)。
f)終止條件判斷:若t=T,則以進化過程當中所獲得的具備最大適應度個體做爲最優解輸出,終止計算。
補充:
輪盤賭選擇算子
天然界中,越適應的個體就越有可能繁殖後代。可是也不能說適應度越高的就確定後代越多,只能是從機率上來講更多。假設種羣數目,某個個體其適應度爲,則其被選中的機率爲:
好比咱們有5條染色體,他們所對應的適應度評分分別爲:5,7,10,13,15。
因此累計總適應度爲:
因此各個個體被選中的機率分別爲:
這個輪盤是按照各個個體的適應度比例進行分塊的。你能夠想象一下,咱們轉動輪盤,輪盤停下來的時候,指針會隨機地指向某一個個體所表明的區域,那麼很是幸運地,這個個體被選中了。(很明顯,適應度評分越高的個體被選中的機率越大。)