1.概念理解
遺傳算法是模擬達(dá)爾文生物進(jìn)化論的自然選擇和孟德爾遺傳學(xué)機理的生物進(jìn)化過程的計算模型。是一種通過模擬自然進(jìn)化過程搜索最優(yōu)解的方法。最早由J.Holland教授于1975年提出役纹,屬于簡單遺傳算法(simple genetic algorithm,SGA)
SGA由三部分組成:編解碼、個體適應(yīng)度評估稽鞭、遺傳算法
遺傳算法包括:交配避除、突變、倒位翘盖、染色體復(fù)制
2.算法
①編碼
有浮點編碼和二進(jìn)制編碼兩種桂塞。這里以二進(jìn)制編碼為例。
設(shè)某一參數(shù)的取值范圍為(L,U)馍驯,使用長度為k的二進(jìn)制編碼表示該參數(shù)阁危。
②解碼
解碼的目的是為了將不直觀的二進(jìn)制數(shù)據(jù)還原成十進(jìn)制,設(shè)某一二進(jìn)制編碼為:
③交配
首先用隨機數(shù)產(chǎn)生一個或多個交配點位置汰瘫,然后兩個個體在交配點位置互換部分基因碼欲芹,形成兩個個體。
例如吟吝,有兩條染色體S1=01001011菱父,S2=10010101交換其后4位基因,形成子染色體S1'=01000101剑逃,S2'=10011011浙宜。
④突變
“突變運算”是使用基本位進(jìn)行基因突變。例如染色體S=11001101蛹磺,第3位上的0變?yōu)?粟瞬,即S'=11101101,S'可看成原染色體S的子染色體萤捆。
⑤倒位
倒位是指一個染色體某區(qū)段正常排列順序發(fā)生180度的顛倒裙品。
⑥個體適應(yīng)度評估
自然界中能夠適應(yīng)環(huán)境的生物有更多的機會存活下來俗批,個人適應(yīng)度大的個體更容易被遺傳到下一代。通常市怎,對于求目標(biāo)函數(shù)最大值的問題岁忘,可以直接使用目標(biāo)函數(shù)作為檢測個體適應(yīng)度大小的函數(shù)。
⑦復(fù)制
復(fù)制運算是根據(jù)個體適應(yīng)度大小決定其下代遺傳的可能性区匠。
當(dāng)個體復(fù)制的幾率決定后干像,再產(chǎn)生[0,1]區(qū)間的均勻隨機數(shù)來決定哪個個體參加復(fù)制。
3.例子
(1)編碼
編碼就是將變量轉(zhuǎn)換成二進(jìn)制數(shù)串驰弄。數(shù)串的長度取決于所要求的精度麻汰。例如,變量x的區(qū)間是(L,U)戚篙,要求的精度是小數(shù)點后4位五鲫,可根據(jù)下面的式子計算:
(2)評價個體適應(yīng)度
(3)新種群復(fù)制
計算種群每條染色體的適應(yīng)度、被復(fù)制概率和被復(fù)制的累積概率
利用計算機模擬輪盤選擇法岔擂,假設(shè)計算機產(chǎn)生10個[0,1]區(qū)間的隨機數(shù)列如下:
依照輪盤選擇法位喂,新種群的染色體組成如下:
U1 = [100110110100101101 000000010111001] (U4)
染色體的適應(yīng)度大意味著[Qk,Qk+1]區(qū)間跨度就大,隨機產(chǎn)生的數(shù)就會有更大概率落在[Qk,Qk+1]區(qū)間里智亮,這樣具有較大Pk值的染色體就更有機會被復(fù)制到下一代忆某。
(4)新種群交配
(5)基因突變
假設(shè)突變幾率為0.01,即種群內(nèi)的所有基因都由0.01的概率進(jìn)行突變阔蛉。本例共有10x33=330個基因弃舒,產(chǎn)生330個介于0~1之間的隨機數(shù)(需編號),選出小于0.01的([0,1]的隨機數(shù)落在[0,0.01]的概率為0.01)状原,假設(shè)這些數(shù)如下圖:
相應(yīng)的實際值為[x1,x2] = [11.631407,5.724824]聋呢,適應(yīng)度值為eval(U)=38.818208
4.遺傳算法的拓展
協(xié)同進(jìn)化遺傳算法
遺傳算法是建立在生物進(jìn)化論和染色體遺傳變異基礎(chǔ)之上的,該理論遵循優(yōu)勝劣汰的自然選擇機制颠区,但實際上削锰,生物在進(jìn)化過程中,除了競爭關(guān)系毕莱,還有協(xié)作器贩、寄生等關(guān)系。