智能算法是啟發(fā)式的求最優(yōu)化的算法。它是一門(mén)邊緣交叉學(xué)科湃交,是生物熟空、數(shù)學(xué)等多學(xué)科的完美融合。現(xiàn)在的智能算法很多搞莺,不同的智能算法之間也相互借鑒息罗,不斷融合。這里先介紹遺傳算法才沧。
在1975年迈喉,Michigan大學(xué)的教授J.Holland提出了遺傳算法概念。遺傳算法是模擬達(dá)爾文生物進(jìn)化論的自然選擇和孟德?tīng)栠z傳學(xué)機(jī)理的生物進(jìn)化過(guò)程的計(jì)算模型温圆,是通過(guò)模擬自然進(jìn)化過(guò)程搜索最優(yōu)解的算法挨摸。
用網(wǎng)上看到的一個(gè)“袋鼠跳”的方式解釋為:
有很多袋鼠,它們被降落到喜瑪拉雅山脈的任意地方捌木。這些袋鼠并不知道它們的任務(wù)是尋找珠穆朗瑪峰而在海拔低的地方有一種無(wú)色無(wú)味的毒氣油坝,海拔越高毒氣越稀薄嫉戚。這些袋鼠并不知道它們的任務(wù)是尋找珠穆朗瑪峰刨裆。而且可憐的袋鼠們對(duì)此全然不覺(jué),還是習(xí)慣于活蹦亂跳彬檀。于是帆啃,不斷有袋鼠死于海拔較低的地方,而越是在海拔高的袋鼠越是能活得更久窍帝,也越有機(jī)會(huì)生兒育女努潘。經(jīng)過(guò)許多年,這些袋鼠們竟然都不自覺(jué)地聚攏到了一個(gè)個(gè)的山峰上坤学,可是在所有的袋鼠中疯坤,只有聚攏到珠穆朗瑪峰的袋鼠被帶回了美麗的澳洲。
下面介紹基本的遺傳算法深浮。在遺傳算法過(guò)程中压怠,主要由編解碼、個(gè)體適應(yīng)度評(píng)估和遺傳運(yùn)算幾個(gè)部分組成飞苇,具體幾個(gè)步驟如下:
- 編碼:遺傳算法編碼包括浮點(diǎn)編碼和二進(jìn)制編碼菌瘫。一般采用二進(jìn)制編碼,因?yàn)槎M(jìn)制編碼更符合計(jì)算機(jī)處理信息的原理布卡,也能更好的對(duì)染色體進(jìn)行遺傳雨让、編譯和突變等操作。
- 解碼:解碼的目的是為了將不直觀的二進(jìn)制還原成十進(jìn)制忿等。如一個(gè)體二進(jìn)制為
栖忠,則對(duì)應(yīng)的解碼公式就為:
- 交配:單點(diǎn)或多點(diǎn)進(jìn)行交叉操作。首先用隨機(jī)數(shù)產(chǎn)生一個(gè)或多個(gè)交配點(diǎn)位置,然后兩個(gè)個(gè)體在交配點(diǎn)位置互換部分編碼庵寞,形成兩個(gè)子個(gè)體虚汛。(產(chǎn)生新值的方式1。)
- 突變:為了避免在算法迭代后期出現(xiàn)種群過(guò)早收斂皇帮,對(duì)于二進(jìn)制的基因碼組成的個(gè)體種群卷哩,實(shí)行基因碼的小幾率翻轉(zhuǎn),對(duì)于二進(jìn)制編碼即是0突變成1属拾,1突變成0将谊。(產(chǎn)生新值的方式2。)
- 倒位:出了上面兩種產(chǎn)生新值方法外渐白,對(duì)于復(fù)雜問(wèn)題可能還會(huì)用到“倒位操作”尊浓。即指一個(gè)染色體某區(qū)段正常排列順序發(fā)生180度的顛倒。
- 個(gè)體適應(yīng)度評(píng)估:自然界中有適者生存的生存機(jī)制纯衍。因?yàn)檫z傳算法是模擬自然界的栋齿,因此也有相應(yīng)的篩選機(jī)制。
- 復(fù)制
其偽代碼如下:
BEGIN
t = 0; %遺傳代數(shù)
初始化P(t); %P(t)為種群或染色體
計(jì)算P(t)的適應(yīng)度襟诸;
while(不滿足停止條件)do
t = t+1;
從P(t-1)中選擇P(t); %選擇
重組P(t); %交配與變異
計(jì)算P(t)的適應(yīng)度瓦堵;
END
另外,由于遺傳算法是啟發(fā)式算法歌亲,因此參數(shù)選擇那里并沒(méi)有什么標(biāo)準(zhǔn)或確定的值菇用。只能根據(jù)一些原則和經(jīng)驗(yàn)來(lái)選取。下面有一些參數(shù)設(shè)計(jì)的原則參考:
(1) 種群的規(guī)模
種群的規(guī)模小時(shí)陷揪,容易出現(xiàn)近親交配惋鸥,產(chǎn)生病態(tài)基因,造成有效等位基因先天缺乏悍缠,即使采用了較大概率的變異算子卦绣。種群規(guī)模太大時(shí),又難以收斂且浪費(fèi)資源飞蚓,穩(wěn)健性下降滤港。
(2) 變異概率
當(dāng)變異概率太小時(shí),種群多樣性下降太快玷坠,容易導(dǎo)致有效基因的迅速丟失且不容易修補(bǔ)蜗搔;當(dāng)變異概率太大時(shí),盡管多樣性得到保證八堡,但高階模式被破壞的概率也隨之變大樟凄。變異概率一般取0.001--0.2。
(3) 交配概率
與變異概率類(lèi)似兄渺,交配概率太大容易破壞已有的有利模式缝龄,隨機(jī)性增大,容易錯(cuò)失最優(yōu)個(gè)體;交配概率太小不能有效更新種群叔壤。交配概率一般取0.4--0.99瞎饲。
(4) 進(jìn)化代數(shù)
進(jìn)化代數(shù)太小,算法不容易收斂炼绘;進(jìn)化代數(shù)太大嗅战,會(huì)增加時(shí)間開(kāi)支和資源浪費(fèi)。一般取100--500俺亮。
(5) 種群初始化
初始種群的產(chǎn)生是隨機(jī)的驮捍。在初始種群的賦予之前,盡量進(jìn)行一個(gè)大概的區(qū)間估計(jì)脚曾,以免初始種群分布在遠(yuǎn)離全局最優(yōu)的編碼空間东且,導(dǎo)致遺傳算法的搜索范圍受到限制;同時(shí)為算法減輕負(fù)擔(dān)本讥。