進化計算讀書筆記(二)
第二章 進化計算的基本原理
2.1 經典遺傳演算法
1.二進位制編碼
一個串長為m的二進位制數,其中或1,i=1,…,m,其表示的最小整數為0,最大整數為。共可以表示個整數,分別為0,1,…,。
假設變數x變化範圍為,解得精度為。將[a,b]的兩個等分為若干個小區間,只用二進位制數表示等分點和區間的端點。為達到精度要求,只要將[a,b]等分成(b-a)*個小區間。將等分點(包括端點)的最好點作為解得近似,則最優解和最好點的距離不超過精度。m應滿足,同時m-1應滿足:$2^{m-1}<(b-a) \times 10^\alpha+1 $,因此m應該滿足$2^{m-1}-1<(b-a) \times 10^\alpha\le 2^m-1 $
編碼方法:m位二進位制數中最小為0,最大為,共個整數,故當二進位制的位數為m時,用便可表示所有的整數。將m位的整數與[a,b]中的等分點一一對應。
解碼方法:設為任一個m位的二進位制數,則B對應的十進位制數為。用如下變換將對應於[a,b]中的等分點x,
2.初始群體
隨機產生N個m位的二進位制數。N稱為群體規模。
3.適應度函式
比偶較常見的取法:
對於,取,其中,是的下界。
對於,取,其中,是的上界。
一般要滿足:取正值,x越好,Fit(x)越大。
4.選擇運算元(賭輪選擇方法)
(1)準備
計算群體中每個個體被選擇的概率,即
注意
計算的累加概率,即
(2)選擇
根據概率將圓盤形的賭輪等分成N個扇形,在進行選擇時,可假象隨機轉動一下賭輪,若指標落入第r個扇形內,則選擇個體。這樣,重複N次,便可選出N個個體。
上述可用以下數學方法在計算機上實現。將[0,1]區間依次分成長度為的小區間,按均勻分佈在[0,1]中產生一個隨機數,這個數落在第幾個小區間,就選擇第幾個個體參加交叉。(例如,,則選擇,若則選擇參加遺傳)這樣,重複N次,便可選出N個個體。
這種選擇的特點是:個體適應度越大,他被選擇的機會越多。
5.遺傳運算元
(3)交叉
我們以單點交叉為例:假設是被選擇交叉的一對,他們的串長為l,隨機選取1,…,l-1位中的一位,如第k位(從左往右),交換第k位右端部分的二進位制串後得到兩個後代。
(4)變異
先取定變異概率(一般較小,),對交叉後代集中每個後代的每一位,產生一個隨機數,若,則將該位取反,否則該位不變。(或對每一個個體產生一個隨機數若該個體被選中,隨機選擇一位進行變異)
6.選擇下一代群體P(t+1)
在中按照某種法則選出N個個體,組成下一代群體P(t+1)。(比如選出最好的個體等等)
2.2 模式定理
模式定理證明群體中適應度高的個體,其生存的機會概率就可能高。
1.概念
(1)萬用字元(或無關符或任意符)。在一個{0,1,}中組成的字串中,叫做萬用字元,它既可以表示0,也可以表示1。因此它是不確定字元。
(2)模式(schema)。一個由{0,1,}中字元構成的字串稱為模式,它表示將字串中的每一個都用0和1替換後所得的所有可能的字串的集合。記作。
(3)模式階(schema order)。模式中確定字元(0和1)的個數稱為模式的H的階,記作。
(4)定義距(defining length)。模式中的第一個(最左邊)確定字元的位置到最後一個確定字元的位置間的距離,即最後一個確定字元(0或1)的位數(從左算起)減去第一個確定字元的位數,記作。
2.模式定理
定義:設表示第t代群體,Fit(x)為適應度函式,則稱
為模式的平均適應度。其中,表示$H\cap p(t) H$中元素的個數。
模式定理:設經典遺傳演算法的交叉和變異概率分別為