十遺傳算法與優(yōu)化問題_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)十遺傳算法與優(yōu)化問題,數(shù)學(xué)實(shí)驗(yàn),本實(shí)驗(yàn)主要介紹遺傳算法的基本理論,然后通過求解幾個(gè)簡單的函數(shù)最值問題,來說明如何利用遺傳算法進(jìn)行初步的優(yōu)化計(jì)算 。,問題背景和實(shí)驗(yàn)?zāi)康?遺傳算法(Genetic Algorithm,簡稱 GA),是模擬達(dá)爾文的遺傳選擇和自然淘汰的生物進(jìn)化過程的計(jì)算機(jī)算法,它由美國 Holland 教授1975年提出。,遺傳算法作為一種新的全局優(yōu)化搜索算法,以其簡單通用、魯棒性強(qiáng)、適合并行處理及應(yīng)用范圍廣等顯著特點(diǎn),

2、奠定了它作為21世紀(jì)關(guān)鍵智能計(jì)算之一的地位。,基本思想:,遺傳算法基本原理,基于模仿生物界遺傳學(xué)的遺傳過程,把問題的參數(shù)用基因來表示,把問題的解用染色體來表示代表(在計(jì)算機(jī)里用二進(jìn)制碼表示),從而得到一個(gè)由具有不同染色體的個(gè)體組成的群體。 這個(gè)群體在問題特定的環(huán)境里生存競爭,適者有最好的機(jī)會(huì)生存和產(chǎn)生后代,后代隨機(jī)化地繼承父代的最好特征,并也在生存環(huán)境的控制支配下繼續(xù)這一過程。 群體的染色體都將逐漸適應(yīng)環(huán)境,不斷進(jìn)化,最后收斂到一族

3、最適應(yīng)環(huán)境的類似個(gè)體,即得到問題最優(yōu)解。,遺傳學(xué)相關(guān)概念,遺傳學(xué)相關(guān)概念,遺傳算法計(jì)算優(yōu)化的過程就如同生物學(xué)上生物遺傳進(jìn)化的過程,主要有三個(gè)基本操作(或算子):,遺傳算法的步驟,選擇(Selection) 交叉(Crossover) 變異(Mutation),遺傳算法的步驟,遺傳算法基本步驟:,把這些可行解置于問題的 “環(huán)境” 中,按適者生存的原則,選取較適應(yīng)環(huán)境的“染色體”進(jìn)行復(fù)制,并通過交叉、變異過程產(chǎn)生更適應(yīng)環(huán)境的新一代 “染

4、色體” 群,把問題的解表示成 “染色體”,在算法中就是以二進(jìn)制編碼的串,給出一群 “染色體”,也就是假設(shè)的可行解,經(jīng)過這樣的一代一代地進(jìn)化,最后就會(huì)收斂到最適應(yīng)環(huán)境的一個(gè) “染色體” 上,它就是問題的最優(yōu)解,遺傳算法有很多種具體的不同實(shí)現(xiàn)過程,這里僅介紹標(biāo)準(zhǔn)遺傳算法的主要步驟。,遺傳算法具體步驟,選擇編碼策略,把參數(shù)集合(可行解集合)轉(zhuǎn)換染色體結(jié)構(gòu)空間;定義適應(yīng)函數(shù),便于計(jì)算適應(yīng)值;確定遺傳策略,包括選擇群體大小,選擇、交叉、變異

5、方法以及確定交叉概率、變異概率等遺傳參數(shù);隨機(jī)產(chǎn)生初始化群體;計(jì)算群體中的個(gè)體或染色體解碼后的適應(yīng)值;按照遺傳策略,運(yùn)用選擇、交叉和變異算子作用于群體,形成下一代群體;判斷群體性能是否滿足某一指標(biāo),或者已完成預(yù)定的迭代次數(shù),不滿足則返回第五步,或者修改遺傳策略再返回第六步.,遺傳算法具體步驟,,是否滿足終止條件,得到結(jié)果,,是,結(jié)束程序,否,計(jì)算每個(gè)個(gè)體的適應(yīng)值,,以概率選擇遺傳算子,,選擇一個(gè)個(gè)體復(fù)制到新群體,,選擇兩個(gè)個(gè)體進(jìn)

6、行交叉插入到新群體,,選擇一個(gè)個(gè)體進(jìn)行變異插入到新群體,,,,得到新群體,,,,,,例 1. 設(shè) f(x) = -x2 + 2x + 0.5,求 max f(x), x?[-1, 2]。,遺傳算法的實(shí)際應(yīng)用,我們將通過這個(gè)簡單的求最值問題來詳細(xì)給出遺傳算法的整個(gè)過程。,(1)編碼和產(chǎn)生初始群體,首先需要確定編碼的策略,也就是說如何把 [-1, 2] 區(qū)間內(nèi)的數(shù)用計(jì)算機(jī)語言表示出來。編碼就是從表現(xiàn)型到基因型的映射,編碼時(shí)要注意以下三個(gè)原

7、則:,完備性:問題空間中所有點(diǎn)(潛在解)都能成為GA編碼空間中的點(diǎn)(染色體位串)的表現(xiàn)型; 健全性:GA編碼空間中的染色體位串必須對應(yīng)問題空間中的某一潛在解; 非冗余性:染色體和潛在解必須一一對應(yīng).,編碼,我們采用二進(jìn)制形式來解決編碼問題,即將某個(gè)變量值代表的個(gè)體表示為一個(gè){0, 1}二進(jìn)制串。串的長度取決于求解的精度,例如假設(shè)求解精度為保留六位小數(shù),由于區(qū)間 [-1, 2] 的長度為 3,則必須將該區(qū)間分為 3?106 等分。因?yàn)?/p>

8、 221<3?106<222,所以編碼所用的二進(jìn)制串至少需要22位。,二進(jìn)制串(b21b20b19…b1b0)與 [a, b] 內(nèi)實(shí)數(shù)的一一映射:,二進(jìn)制串,十進(jìn)制數(shù),[a, b] 內(nèi)實(shí)數(shù),,,b21b20b19…b1b0,,,編碼,轉(zhuǎn)化到 [-1, 2] 內(nèi)的實(shí)數(shù)為:,例.,二進(jìn)制串 a=,其對應(yīng)的十進(jìn)制數(shù)為:,產(chǎn)生初始群體,隨機(jī)的產(chǎn)生一個(gè)初始群體。,pop1={ , % a1 , % a2 , %

9、 a3 } % a4,這里假設(shè)初始群體的個(gè)體數(shù)為 4。,轉(zhuǎn)化成 [-1, 2] 之間的十進(jìn)制數(shù)即為:,下面就需要解決每個(gè)染色體個(gè)體的適應(yīng)值,pop1={ 1.523032,0.574022,-0.697235,0.247238},適應(yīng)函數(shù),(2)定義適應(yīng)函數(shù)和適應(yīng)值,由于目標(biāo)函數(shù) f(x) 在 [-1, 2] 內(nèi)的值有正有負(fù),所以必須通過建立適應(yīng)函數(shù)與目標(biāo)函數(shù)的映射關(guān)系,保證映射后的適應(yīng)值非負(fù),而且目標(biāo)函數(shù)的優(yōu)化方向應(yīng)對

10、應(yīng)于適應(yīng)值增大的方向,也為以后計(jì)算各個(gè)體的入選概率打下基礎(chǔ)。,定義適應(yīng)函數(shù) :,為了便于計(jì)算,這里的 Fmin 采用了一個(gè)特定的輸入值,例:如果取 Fmin=-1,則 f(x)=1 對應(yīng)的適應(yīng)值為 g(x)=2,適應(yīng)函數(shù)和適應(yīng)值,上述隨機(jī)產(chǎn)生的初始群體,取 Fmin=-1,則它們的目標(biāo)函數(shù)值和適應(yīng)值分別為:,f(pop1)={ 1.226437,1.318543,-1.380607,0.933350},g(pop1)={ 2.2

11、26437,2.318543, 0,1.933350},選擇標(biāo)準(zhǔn),(3)確定選擇標(biāo)準(zhǔn),用適應(yīng)值比例來作為入選概率。 設(shè)給定的規(guī)模為 n 的群體 pop={a1, a2, ..., an },個(gè)體 ai 的適應(yīng)值為 g(ai),則其入選概率為,上述隨機(jī)產(chǎn)生的初始群體,它們的入選概率分別為:,p(pop1)=g(pop1)/sum(g(pop1)) ={0.343675, 0.357892, 0, 0.2984

12、33},產(chǎn)生種群,(4)產(chǎn)生種群,將入選概率大的個(gè)體選入種群,淘汰概率小的個(gè)體,并用概率最大的個(gè)體補(bǔ)入種群,得到與原群體大小同樣的種群。,newpop1={ , % a1 , % a2 , % a2 } % a4,Matlab 程序參見附錄 11,在上述隨機(jī)產(chǎn)生的初始群體中,淘汰掉 a3,再加入 a2,得到新的種群:,交叉,(5)交叉,交叉也就是將一組染色體上對應(yīng)基因段的交換得到新的染色體,然后得到新的

13、染色體組,組成新的群體。,將前面得到的 newpop1 的四個(gè)個(gè)體兩兩配對,重復(fù)的不配對,進(jìn)行交叉(可以在任一位進(jìn)行交叉):,,新的群體 jchpop1,變異,(6)變異,變異就是通過一個(gè)小概率改變?nèi)旧w位串上的某個(gè)基因。,現(xiàn)把 jchpop1 中第 3 個(gè)個(gè)體中的第 9 位改變,就產(chǎn)生了變異,得到了新的群體 pop2 :,pop2={ , , , },然后重復(fù)上述的選擇、交叉、變異,直到滿足終止條件為止,終止條

14、件,(7)終止條件,遺傳算法的終止條件有兩類常見條件:,采用設(shè)定最大(遺傳)代數(shù)的方法,一般可設(shè)定為 50代,此時(shí)就可能得出最優(yōu)解.此種方法簡單易行,但可能不是很精確(Matlab程序參見附錄1) 根據(jù)個(gè)體的差異來判斷,通過計(jì)算種群中基因多樣性測度,即所有基因位相似程度來進(jìn)行控制,遺傳算法的收斂性,遺傳算法通過對這些操作的適當(dāng)設(shè)計(jì)和運(yùn)行,可以實(shí)現(xiàn)兼顧全局搜索和局部搜索的所謂均衡搜索,均衡搜索的具體實(shí)現(xiàn)圖示,遺傳算法的收斂性,遺傳算法雖

15、然可以實(shí)現(xiàn)均衡的搜索,并且在許多復(fù)雜問題的求解中往往能得到滿意的結(jié)果,但是該算法的全局優(yōu)化收斂性的理論分析尚待解決。目前普遍認(rèn)為,標(biāo)準(zhǔn)遺傳算法并不保證全局最優(yōu)收斂。但是,在一定的約束條件下,遺傳算法可以實(shí)現(xiàn)這一點(diǎn)。,定理 1 如果變異概率為 ,交叉概率為 ,同時(shí)采用比例選擇法 ( 按個(gè)體適應(yīng)度占群體適應(yīng)度的比例進(jìn)行復(fù)制),則標(biāo)準(zhǔn)遺傳算法的變換矩陣 P 是基本的。,遺傳算法的收

16、斂性,定理 2 標(biāo)準(zhǔn)遺傳算法(參數(shù)如定理1)不能收斂至全局最優(yōu)解。,標(biāo)準(zhǔn)遺傳算法是不能收斂至全局最最優(yōu)解,對標(biāo)準(zhǔn)遺傳算法作一些改進(jìn),就能夠保證其收斂性。,最佳個(gè)體保存方法(elitist model)的思想是把群體中適應(yīng)度最高的個(gè)體不進(jìn)行配對交叉而直接復(fù)制到下一代中。,設(shè)時(shí)刻 t ( 第 t 代 ) 時(shí),群體中 a*(t) 為最佳個(gè)體,并設(shè) A(t+1) 為新一代群體,若 A(t+1) 中不存在 a*(t),則把 a*(t) 作為 A

17、(t+1) 中的第 n+1 個(gè)個(gè)體 ( 其中,n 為群體大小 ),最佳個(gè)體保存方法,該方法的優(yōu)點(diǎn):確保進(jìn)化過程中某一代的最優(yōu)解不被交叉和變異操作所破壞。,使用策略:與其他選擇方法結(jié)合使用。,該方法的缺點(diǎn):局部最優(yōu)個(gè)體的遺傳基因會(huì)急速增加而使進(jìn)化有可能限于局部解,即該方法的全局搜索能力差,它更適合單峰性質(zhì)的搜索空間搜索,而不是多峰性質(zhì)的空間搜索。,最佳個(gè)體保存方法,定理 4具有定理 1 所示參數(shù),且在選擇前保留當(dāng)前最優(yōu)解的遺傳算法可收斂

18、于全局最優(yōu)解。,定理 3具有定理 1 所示參數(shù),且在選擇后保留當(dāng)前最優(yōu)值的遺傳算法最終能收斂到全局最優(yōu)解。,實(shí)驗(yàn)舉例,,例 1. 設(shè) f(x) = -x2 + 2x + 0.5,求 max f(x), x?[-1, 2]。,解:群體中包含六個(gè)染色體,每個(gè)染色體用 22 位碼表示,變異概率為 0.01,變量區(qū)間為 [-1,2],取 Fmin=-2,遺傳代數(shù)為 50 代,運(yùn)用第一種終止條件(指定遺傳代數(shù))的 Matlab 程序?yàn)?[Cou

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論