如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
生物進化理論和遺傳學的基本知識生物進化理論和遺傳學的基本知識生物進化理論和遺傳學的基本知識生物進化理論和遺傳學的基本知識生物進化理論和遺傳學的基本知識遺傳演算法可定義為一個8元組:GA=(C,E,P0,M,,,,T)式中,C—個體的編碼方法;E—個體適應值評價函數;P0—初始種群;M—群體大小;—選擇運算元;—交叉運算元;—變異運算元;T—遺傳演算法終止條件。遺傳演算法的關鍵技術包括:編碼問題;初始種群的產生;確定適應值函數;選擇遺傳操作運算元;停機條件。編碼問題由於遺傳演算法不能直接處理解空間的解數據,因此必須通過編碼將它們表示成遺傳空間的基因型串結構數據。編碼方法在很大程度上決定了如何進行群體的遺傳進化運算以及遺傳進化的效率。由於不同的編碼方法具有不同的特點,為了提高遺傳演算法的效率,應根據不同的情況採用不同的編碼方式。主要的編碼方法有二進位編碼、浮點數編碼、符號編碼、多參數編碼、可變長染色體編碼等。編碼問題在遺傳演算法中一般用二值(0,1)向量表示染色體,故先要對規則進行編碼。編碼採用二進位,將由特徵和類別組成的訓練例子集編碼成二進位字元串的遺傳樣本。一個樣本Mi是一個二元組,其形式如下:Mi=[xi,yi],其中:i為樣本號;x為條件部分,即訓練例子的各特徵編碼;y為結論部分,即訓練例子的類別。具體的編碼規則如下:若屬性為範疇型,定義屬性段的寬度等於屬性取值個數。對於每個屬性段,若第一位為‘*’,表示該屬性取值可以為任意;否則,各位若取值為1,表示取該屬性值,0表示不取該屬性值。例如,某條件屬性Ci對應的編碼二進位串為011001,表示該屬性取第二個屬性值或第三個屬性值或第六個屬性值,即若屬性為數值型,定義屬性段的寬度,其中n為該屬性的取值個數。對於每個屬性段,若第一位為‘*’,表示該屬性取值可以為任意初始種群的產生GA以初始種群作為初始點開始迭代。初始種群大小表示群體中所含個體的數量。當個體數量取值較小時,可提高遺傳演算法的運算速度,但搜索空間分佈範圍有限,降低了群體的多樣性,有可能會引起遺傳演算法的早熟現象;當個體數量取值較大時,一方面計算複雜,會使遺傳演算法的運行效率降低,另一方面,部分高適應值的個體可能被淘汰,影響交叉。初始種群的一般取值範圍是20~100。產生初始種群的方法通常有兩種:(1)對問題的解無任何先驗知識的情況,採用隨機產生樣本的方法;(2)對於具有某些先驗知識的情況,可首先將這些先驗知識轉變為必須滿足的一組要求,然後在滿足這些要求的解中隨機地選取樣本。這樣選擇初始種群可使遺傳演算法更快地達到最優解。遺傳演算法關鍵技術遺傳演算法關鍵技術選擇遺傳操作運算元遺傳演算法關鍵技術遺傳演算法關鍵技術遺傳演算法關鍵技術遺傳演算法關鍵技術遺傳演算法關鍵技術遺傳演算法關鍵技術遺傳演算法關鍵技術遺傳演算法關鍵技術遺傳演算法關鍵技術遺傳演算法關鍵技術遺傳演算法關鍵技術遺傳演算法的步驟遺傳演算法的實例遺傳演算法的實例--選擇運算遺傳演算法的實例--交叉運算遺傳演算法的實例--變異運算遺傳演算法的實例--選擇運算遺傳演算法在適應度函數選擇不當的情況下有可能收斂於局部最優,而不能達到全域最優。對於動態數據,用遺傳演算法求最優解比較困難,因為染色體種群很可能過早地收斂,而對以後變化了的數據不再產生變化。為防止過早的收斂,研究者提出了一些方法增加基因的多樣性。其中一種是所謂觸發式超級突變,就是當染色體群體的質量下降(彼此的區別減少)時增加變異概率;另一種叫隨機外來染色體,是偶爾加入一些全新的隨機生成的染色體個體,從而增加染色體多樣性。選擇過程很重要,但交叉和變異的重要性存在爭議。一種觀點認為交叉比變異更重要,因為變異僅僅是保證不丟失某些可能的解;而另一種觀點則認為交叉過程的作用只不過是在種群中推廣變異過程所造成的更新,對於初期的種群來說,交叉幾乎等效於一個非常大的變異率,而這麼大的變異很可能影響進化過程。遺傳演算法很快就能找到良好的解,即使是在很複雜的解空間中。遺傳演算法並不一定總是最好的優化策略,優化問題要具體情況具體分析。所以在使用遺傳演算法的同時,也可以嘗試其他演算法,互相補充,甚至根本不用遺傳演算法。遺傳演算法不能解決那些“大海撈針”的問題,所謂“大海撈針”問題就是沒有一個確切的適應度函數表徵個體好壞的問題,遺傳演算法對這類問題無法找到收斂的路。對於任何一個具體的優化問題,調節遺傳演算法的參數可能會有利於更好的更快的收斂,這些參數包括個體數目、交叉律和變異律。例如太大的變異律會導致丟失最優解,而過小的變異律會導致演算法過早的收斂於局部最優點。對於這些參數的選擇,現在還沒有實用的上下限。適應度函數對於演算法