遺傳算法簡介及代碼詳解

遺傳算法簡介及代碼詳解

ID:20819317

大?。?70.64 KB

頁數(shù):14頁

時間:2018-10-16

遺傳算法簡介及代碼詳解_第1頁
遺傳算法簡介及代碼詳解_第2頁
遺傳算法簡介及代碼詳解_第3頁
遺傳算法簡介及代碼詳解_第4頁
遺傳算法簡介及代碼詳解_第5頁
資源描述:

《遺傳算法簡介及代碼詳解》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。

1、遺傳算法簡述及代碼詳解聲明:本文內容整理自網(wǎng)絡,認為原作者同意轉載,如有冒犯請聯(lián)系我。遺傳算法基本內容遺傳算法為群體優(yōu)化算法,也就是從多個初始解開始進行優(yōu)化,每個解稱為一個染色體,各染色體之間通過競爭、合作、單獨變異,不斷進化。遺傳學與遺傳算法中的基礎術語比較染色體(chromosome)數(shù)據(jù),數(shù)組,序列基因(gene)單個元素,位等位基因(allele)數(shù)據(jù)值,屬性,值基因座(locus)位置,iterator位置表現(xiàn)型(phenotype)參數(shù)集,解碼結構,候選解染色體:又可以叫做基因型個體(individuals)群體/種群(populati

2、on):一定數(shù)量的個體組成,及一定數(shù)量的染色體組成,群體中個體的數(shù)量叫做群體大小。初始群體:若干染色體的集合,即解的規(guī)模,如30,50等,認為是隨機選取的數(shù)據(jù)集合。適應度(fitness):各個個體對環(huán)境的適應程度優(yōu)化時先要將實際問題轉換到遺傳空間,就是把實際問題的解用染色體表示,稱為編碼,反過程為解碼/譯碼,因為優(yōu)化后要進行評價(此時得到的解是否較之前解優(yōu)越),所以要返回問題空間,故要進行解碼。SGA采用二進制編碼,染色體就是二進制位串,每一位可稱為一個基因;如果直接生成二進制初始種群,則不必有編碼過程,但要求解碼時將染色體解碼到問題可行域內。遺

3、傳算法的準備工作:1)數(shù)據(jù)轉換操作,包括表現(xiàn)型到基因型的轉換和基因型到表現(xiàn)型的轉換。前者是把求解空間中的參數(shù)轉化成遺傳空間中的染色體或者個體(encoding),后者是它的逆操作(decoding)2)確定適應度計算函數(shù),可以將個體值經(jīng)過該函數(shù)轉換為該個體的適應度,該適應度的高低要能充分反映該個體對于解得優(yōu)秀程度。非常重要的過程。遺傳算法基本過程為:1)編碼,創(chuàng)建初始群體2)群體中個體適應度計算3)評估適應度4)根據(jù)適應度選擇個體5)被選擇個體進行交叉繁殖6)在繁殖的過程中引入變異機制7)繁殖出新的群體,回到第二步實例一:(建議先看實例二)求范圍內

4、的的最小值1)編碼算法選擇為"將轉化為2進制的串",串的長度為5位(串的長度根據(jù)解的精度設定,串長度越長解得精度越高)。(等位基因的值為0or1)。2)計算適應度的方法是:先將個體串進行解碼,轉化為int型的x值,然后使用作為其適應度計算合適(由于是最小值,所以結果越小,適應度也越好)。需要說明,將原目標函數(shù)設置為適應度函數(shù)是一種選擇,但未必是最貼切的方法。3)正式開始,先設置群體大小為4,然后初始化群體=>(在[0,31]范圍內隨機選取4個整數(shù)就可以編碼)4)計算適應度Fi(由于是求解最小值,可以選取一個大的基準線1000)5)計算每個個體的選擇

5、概率,選擇概率要能夠反映個體的優(yōu)秀程度。這里用一個很簡單的方法來確定選擇概率6)選擇根據(jù)所有個體的選擇概率進行淘汰選擇。這里使用的是一個賭輪的方式進行淘汰選擇。先按照每個個體的選擇概率創(chuàng)建一個賭輪,然后選取4次,每次先產生一個0-1的隨機小數(shù),然后判斷該隨機數(shù)落在那個段內就選取相對應的個體。這個過程中,選取概率高的個體將可能被多次選擇,而概率低的就可能被淘汰。下面是一個簡單的賭輪的例子13%35%15%37%----------

6、----------------------------

7、------------------

8、------------

9、---------------------

10、個體1個體2個體3^0.67個體4隨機數(shù)為0.67落在了個體4的端內,本次選擇了個體4。被選中的個體將進入配對庫(matingpool,配對群體)準備開始繁殖。7)簡單交叉先對配對庫中的個體進行隨機配對,然后在配對的2個個體中設置交叉點,交換2個個體的信息后產生下一代。比如(

11、代表簡單串的交叉位置)(0110

12、1,1100

13、0)--交叉-->(01100,11001)(01

14、000,11

15、011)--交叉-->(01011,11000)2個父代的個體在交叉后繁殖出了下一代的同樣數(shù)量的個體.復雜的交叉在交叉

16、的位置,交叉的方法,雙親的數(shù)量上都可以選擇.其目的都在于盡可能的培育出更優(yōu)秀的后代8)變異變異操作時按照基因座來的,比如說每計算2萬個基因座就發(fā)生一個變異(我們現(xiàn)在的每個個體有5個基因座。也就是說要進化1000代后才會在其中的某個基因座發(fā)生一次變異)變異的結果是基因座上的等位基因發(fā)生了變化。我們這里的例子就是把0變成1或則1變成0。至此,我們已經(jīng)產生了一個新的(下一代)群體,然后回到第4步,周而復始,生生不息下去。實例二:為了便于理解,手工計算來簡單地模擬遺傳算法的各個主要執(zhí)行步驟:(1)個體編碼遺傳算法的運算對象是表示個體的符號串,所以必須把變量

17、x1,x2編碼為一種符號串。本題中,用無符號二進制整數(shù)(編碼方式較多)來表示。因x1,x2為0~7之間的整數(shù),所以分別用3

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。