資源描述:
《matlab 遺傳算法》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、實驗十遺傳算法與優(yōu)化問題數(shù)學實驗本實驗主要介紹遺傳算法的基本理論,然后通過求解幾個簡單的函數(shù)最值問題,來說明如何利用遺傳算法進行初步的優(yōu)化計算。問題背景和實驗目的遺傳算法(GeneticAlgorithm,簡稱GA),是模擬達爾文的遺傳選擇和自然淘汰的生物進化過程的計算機算法,它由美國Holland教授1975年提出。遺傳算法作為一種新的全局優(yōu)化搜索算法,以其簡單通用、魯棒性強、適合并行處理及應用范圍廣等顯著特點,奠定了它作為21世紀關鍵智能計算之一的地位?;舅枷耄哼z傳算法基本原理基于模仿生物界遺傳學
2、的遺傳過程,把問題的參數(shù)用基因來表示,把問題的解用染色體來表示代表(在計算機里用二進制碼表示),從而得到一個由具有不同染色體的個體組成的群體。這個群體在問題特定的環(huán)境里生存競爭,適者有最好的機會生存和產生后代,后代隨機化地繼承父代的最好特征,并也在生存環(huán)境的控制支配下繼續(xù)這一過程。群體的染色體都將逐漸適應環(huán)境,不斷進化,最后收斂到一族最適應環(huán)境的類似個體,即得到問題最優(yōu)解。遺傳學相關概念遺傳學遺傳算法數(shù)學1個體要處理的基本對象、結構也就是可行解2群體個體的集合被選定的一組可行解3染色體個體的表現(xiàn)形式可行
3、解的編碼4基因染色體中的元素編碼中的元素5基因位某一基因在染色體中的位置元素在編碼中的位置6適應值個體對于環(huán)境的適應程度,或在環(huán)境壓力下的生存能力可行解所對應的適應函數(shù)值7種群被選定的一組染色體或個體根據(jù)入選概率定出的一組可行解8選擇從群體中選擇優(yōu)勝的個體,淘汰劣質個體的操作保留或復制適應值大的可行解,去掉小的可行解遺傳學相關概念遺傳學遺傳算法數(shù)學9交叉一組染色體上對應基因段的交換根據(jù)交叉原則產生的一組新解10交叉概率染色體對應基因段交換的概率(可能性大?。╅]區(qū)間[0,1]上的一個值,一般為0.65~0
4、.9011變異染色體水平上基因變化編碼的某些元素被改變12變異概率染色體上基因變化的概率(可能性大?。╅_區(qū)間(0,1)內的一個值,一般為0.001~0.0113進化、適者生存?zhèn)€體進行優(yōu)勝劣汰的進化,一代又一代地優(yōu)化目標函數(shù)取到最大值,最優(yōu)的可行解遺傳算法計算優(yōu)化的過程就如同生物學上生物遺傳進化的過程,主要有三個基本操作(或算子):遺傳算法的步驟選擇(Selection)交叉(Crossover)變異(Mutation)遺傳算法的步驟遺傳算法基本步驟:把這些可行解置于問題的“環(huán)境”中,按適者生存的原則,選
5、取較適應環(huán)境的“染色體”進行復制,并通過交叉、變異過程產生更適應環(huán)境的新一代“染色體”群把問題的解表示成“染色體”,在算法中就是以二進制編碼的串,給出一群“染色體”,也就是假設的可行解經過這樣的一代一代地進化,最后就會收斂到最適應環(huán)境的一個“染色體”上,它就是問題的最優(yōu)解遺傳算法有很多種具體的不同實現(xiàn)過程,這里僅介紹標準遺傳算法的主要步驟。遺傳算法具體步驟選擇編碼策略,把參數(shù)集合(可行解集合)轉換染色體結構空間;定義適應函數(shù),便于計算適應值;確定遺傳策略,包括選擇群體大小,選擇、交叉、變異方法以及確定交
6、叉概率、變異概率等遺傳參數(shù);隨機產生初始化群體;計算群體中的個體或染色體解碼后的適應值;按照遺傳策略,運用選擇、交叉和變異算子作用于群體,形成下一代群體;判斷群體性能是否滿足某一指標,或者已完成預定的迭代次數(shù),不滿足則返回第五步,或者修改遺傳策略再返回第六步.遺傳算法具體步驟產生初始群體是否滿足終止條件得到結果是結束程序否計算每個個體的適應值以概率選擇遺傳算子選擇一個個體復制到新群體選擇兩個個體進行交叉插入到新群體選擇一個個體進行變異插入到新群體得到新群體例1.設f(x)=-x2+2x+0.5,求ma
7、xf(x),x?[-1,2]。遺傳算法的實際應用我們將通過這個簡單的求最值問題來詳細給出遺傳算法的整個過程。(1)編碼和產生初始群體首先需要確定編碼的策略,也就是說如何把[-1,2]區(qū)間內的數(shù)用計算機語言表示出來。編碼就是從表現(xiàn)型到基因型的映射,編碼時要注意以下三個原則:完備性:問題空間中所有點(潛在解)都能成為GA編碼空間中的點(染色體位串)的表現(xiàn)型;健全性:GA編碼空間中的染色體位串必須對應問題空間中的某一潛在解;非冗余性:染色體和潛在解必須一一對應.編碼我們采用二進制形式來解決編碼問題,即將某個變
8、量值代表的個體表示為一個{0,1}二進制串。串的長度取決于求解的精度,例如假設求解精度為保留六位小數(shù),由于區(qū)間[-1,2]的長度為3,則必須將該區(qū)間分為3?106等分。因為221<3?106<222,所以編碼所用的二進制串至少需要22位。二進制串(b21b20b19…b1b0)與[a,b]內實數(shù)的一一映射:二進制串十進制數(shù)[a,b]內實數(shù)b21b20b19…b1b0編碼轉化到[-1,2]內的實數(shù)為:例.二進制串a=<100010111011