數(shù)學(xué)擺擺手,“很慚愧,只在遺傳算法上做了一點(diǎn)微小的工作”

本文最早發(fā)表在本人博客http://www.gotoli.us/?p=1514

遺傳算法是一個(gè)模擬生物進(jìn)化的算法,并不是從數(shù)學(xué)推導(dǎo)出來的。因此很多人直覺認(rèn)為,遺傳算法并不需要數(shù)學(xué)基礎(chǔ)。為什么還有人去探究遺傳算法的數(shù)學(xué)基礎(chǔ)呢?一是滿足我們的好奇心,二是遺傳算法數(shù)學(xué)基礎(chǔ)真的有些用的!!!在介紹遺傳算法數(shù)學(xué)基礎(chǔ)之前,先定義一些符號(hào):

因?yàn)橛懈鞣N各樣的編碼方式、變異操作、交叉操作和選擇操作,遺傳算法的形態(tài)呈現(xiàn)多樣性。這里只介紹針對(duì)典型遺傳算法的分析。那么什么是典型遺傳算法呢?典型遺傳算法:

  1. 編碼方式是二進(jìn)制編碼:基因的取值只能是0或者1。
  2. 變異操作將所有染色體所有基因位以pm的概率翻轉(zhuǎn)。
  3. 交叉操作選擇選擇相鄰的個(gè)體,以pc的概率決定是否需要交叉。如果需要交叉,隨機(jī)選擇一個(gè)基因位,并交換這個(gè)基因位以及之后的所有基因。
  4. 選擇操作有放回地采樣出原種群大小的新一代種群,個(gè)體I_i的采樣概率如下所示。這種選擇操作又被稱為輪盤賭選擇。

(1)

模式定理


模式定理是遺傳算法創(chuàng)始人 J.Holland 在其突破性著作《Adaptation in Natural and Artificial Systems》引入的,用于分析遺傳算法的工作原理。模式是指編碼空間中相似的模塊,比如[0,,,1]就是一個(gè)模式。染色體[0,1,0,1]和[0,0,0,1]都包含上述的模塊。為了引入模式定理,我們還得介紹一些符號(hào)。

有了這些符號(hào),我們就可以引入模式定理了。模式定理: 在典型的遺傳算法中,下面公式成立。

(2)

這個(gè)公式是怎么來的呢?我們先來看選擇操作對(duì)模式H出現(xiàn)概率的影響。根據(jù)選擇操作,我們很容易得到如下公式。

(3)

我們?cè)倏醋儺惒僮鲗?duì)模式出現(xiàn)概率的影響。變異操作將所有基因位以pm的概率翻轉(zhuǎn),因此模式H不被破壞的概率為下面第一個(gè)不等式。經(jīng)過變異操作,模式H的出現(xiàn)概率為下面第二個(gè)不等式。

(4)

最后我們來看交叉操作對(duì)模式出現(xiàn)概率的影響。交叉操作選擇選擇相鄰的個(gè)體,以pc的概率決定是否需要交叉。如果需要交叉,隨機(jī)選擇一個(gè)基因位,并交換這個(gè)基因位以及之后的所有基因。因此模式H不被破壞的概率為下面第一個(gè)公式。經(jīng)過交叉操作,模式H的出現(xiàn)概率為第二個(gè)公式。

(5)

模式定理的通俗說法是這樣的,低階、短長(zhǎng)以及平均適應(yīng)度高于種群平均適應(yīng)度的模式在子代中呈指數(shù)增長(zhǎng)。用公式表示便是下面的公式。

(6)

馬爾科夫鏈分析


模式定理簡(jiǎn)單易懂,能夠簡(jiǎn)要地回答人們的疑惑。可能有些偏數(shù)學(xué)的研究者可能覺得模式定理過于直白,沒有數(shù)學(xué)的“味道”。比如,模式定理沒有給出收斂性分析,包括是否收斂和收斂速度等。因此有研究者引入了“正統(tǒng)”的數(shù)學(xué)分析工具——馬爾科夫鏈,對(duì)遺傳算法進(jìn)行收斂性的研究。

馬爾科夫鏈的相關(guān)概念:st表示第t時(shí)刻的不同狀態(tài)的概率。P表示轉(zhuǎn)移概率矩陣,其中P_{i,j}表示從第i個(gè)狀態(tài)轉(zhuǎn)移到第j個(gè)狀態(tài)的概率。齊次馬爾科夫鏈的第t+1時(shí)刻的狀態(tài)只和第t時(shí)刻有關(guān),可以用公式s{t+1} = s{t}P表示。若存在一個(gè)自然數(shù)k,使得Pk中的所有元素大于0,則稱P為素矩陣。我們還需要引入兩個(gè)引理。

引理1: 讓C、M 和 S 是概率轉(zhuǎn)移矩陣, 其中 M 所有元素大于 0 和 S所有列必有一項(xiàng)大于0,則乘積 CMS 所有元素大于 0。

引理2: 讓概率轉(zhuǎn)移矩陣P是一個(gè)素矩陣。隨著k趨近于無窮,Pk收斂于P{\infty} = \pmb{1}{T}p{\infty}, 其中p^{\infty}是和初始狀態(tài)無關(guān)的唯一值,并且所有元素大于0。

我們把整個(gè)種群的狀態(tài)看成馬爾科夫鏈的一個(gè)狀態(tài)s,交叉、變異和選擇操作則構(gòu)建了一個(gè)概率轉(zhuǎn)移矩陣。我們來分析0<pm<1和1<=pc<=1時(shí)概率轉(zhuǎn)移矩陣的性質(zhì)。讓C,M,S分別表示交叉、變異和選擇操作帶來的概率轉(zhuǎn)移,整體概率轉(zhuǎn)移矩陣P=CMS。1) 經(jīng)過變異操作,種群狀態(tài)s_i轉(zhuǎn)化成種群狀態(tài)s_j的概率(pm){h}(1-pm){nL-h} > 0,其中h是兩個(gè)種群之間不同值的基因位數(shù)量。也就是說,M是素矩陣。2) 經(jīng)過選擇操作,種群狀態(tài)s_i保持不變的概率為


也就是說, S的所有列必定有一元素大于0。根據(jù)引理1,我們可以知道概率轉(zhuǎn)移矩陣P是素矩陣。

正統(tǒng)的優(yōu)化算法分析第一個(gè)要關(guān)心的問題是,優(yōu)化算法能不能收斂到全局最優(yōu)點(diǎn)。假設(shè)全局最優(yōu)點(diǎn)的適應(yīng)度值為maxf,收斂到全局最優(yōu)點(diǎn)的定義如下

(7)

典型遺傳算法其實(shí)并不收斂。具體的證明我就不列了(感興趣的同學(xué)可以之間看論文 [Rudolph and Günter,1994]),直接說下思路:根據(jù)引理2,我們可以知道典型遺傳算法會(huì)收斂到一個(gè)所有種群狀態(tài)概率都大于0的概率分布上;因此之后,不包含全局最優(yōu)解的種群一定會(huì)不停出現(xiàn),從而導(dǎo)致上面的公式不成立。實(shí)際上,幾乎所有遺傳算法代碼都會(huì)將保持已發(fā)現(xiàn)最優(yōu)解。加了這個(gè)變化之后的遺傳算法是收斂的。思路也是蠻簡(jiǎn)單的:根據(jù)引理2,我們可以知道典型遺傳算法會(huì)收斂到一個(gè)所有種群狀態(tài)概率都大于0的概率分布上;那么包含全局最優(yōu)解的種群一定會(huì)不停出現(xiàn),保持已發(fā)現(xiàn)最優(yōu)解的做法會(huì)使得上面的公式成立。

看到這部分,我笑出聲來。為什么呢?因?yàn)檫@段分析實(shí)際用處其實(shí)不大。大家想啊,如果我們不考慮之前種群并隨機(jī)生成新種群(也就是我們說的瞎蒙),構(gòu)造出來的概率轉(zhuǎn)移矩陣也是素矩陣(P中所有元素的值相等)。也就是說,瞎蒙也是可以收斂哦。因此上面的分析更多地是追求一種結(jié)構(gòu)的美感,對(duì)現(xiàn)實(shí)實(shí)踐并沒有什么卵用。

模式定理屬于腳踏實(shí)地型,注重解決人們對(duì)遺傳算法的疑惑,注重解決實(shí)際問題。馬爾科夫鏈屬于仰望星空型,注重將遺傳算法納入到一個(gè)更廣大的理論系統(tǒng)中。其實(shí)除了這種兩種分析思路之外,還有一種思路。這種思路考察父代和子代種群平均適應(yīng)度變化。但這種分析思路沒有產(chǎn)生太多后續(xù)工作,這邊就不再介紹了,有興趣的同學(xué)可以直接看論文 [Altenberg and Lee, 1995]。


理論分析的用處


遺傳算法理論分析可以指導(dǎo)實(shí)際問題。我們用一個(gè)分配問題做引子。兩位文秘a和b需要處理n件文書;由于兩位文秘熟悉領(lǐng)域不一樣,兩人處理同一件文書所需要的時(shí)間不同;怎么分配文書,使得總工作時(shí)間最短。遺傳算法可以解決這個(gè)問題,有兩種編碼方案:

方案一:我們使用二進(jìn)制編碼。第i位基因是0,則將第i件文書分配給a;第i位基因是1,則將第i件文書分配給b。比如n=3,[1,0,1]表示第1和第3件文書給a文秘,第2件文書給b文秘。

方案二:我們使用排序編碼。一個(gè)個(gè)體代表了文書的排序方案。第i位基因值是j,則將第j件文書排在第i位。兩位文秘同時(shí)處理文書,其中一位處理手頭的文書,則按排序順序取下一件文書處理。

哪一種編碼方式比較好呢?有興趣的同學(xué)可以析下哪種編碼方式比較好。先賣個(gè)關(guān)子,具體答案將在下一篇——遺傳算法的變種和多目標(biāo)遺傳算法中介紹。


參考文獻(xiàn)


Altenberg, Lee. "The schema theorem and Price’s theorem." Foundations of genetic algorithms 3 (1995): 23-49.
J. Holland, Adaptation in Natural and Artificial Systems, The MIT Press; Reprint edition 1992 (originally published in 1975).
Rudolph, Günter. "Convergence analysis of canonical genetic algorithms." Neural Networks, IEEE Transactions on 5.1 (1994): 96-101.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容