遺傳因子的算法?
大自然有一種神奇的力量,可以保存優秀的基因,從而進化得更強大,更適合生存。
基于達爾文s進化論,遺傳算法模擬自然選擇、物競天擇、適者生存,通過N代遺傳、變異、交叉、復制,進化出問題的最優解。遺傳算法看似神奇,實現思路卻相對簡單。本文首先介紹了遺傳算法的基本思想,然后用遺傳算法解決了一個實際問題,最后給出了遺傳算法的代碼實現和分析。
遺傳規劃算法原理?
遺傳編程是遺傳算法的一個分支。與遺傳算法中每個個體是一個染色體代碼不同,它的個體是一個計算機程序。
維基百科上說是在70年代實行的,但應該是在約翰·r·科扎教授1990年發表的博士論文中正式提出的。
遺傳編程最早的應用是符號回歸。比如為了擬合zf(x,y),它生成一個初始函數g(x,y),然后以g(x,y)與z的相關系數作為適應度,進行選擇叉變異,最后得到最優函數g,然后進行線性回歸。
為什么要用遺傳算法?
遺傳算法已經在許多領域得到了應用。從神經網絡研究的角度來看,最受關注的是遺傳算法在神經網絡中的應用。
在遺傳算法的應用中,首先要明確它的特點和關鍵問題,這樣才能深入理解這種算法,靈活應用,進一步研究和發展。一、遺傳算法的特點
1.遺傳算法是從問題解的中間集合出發,而不是從單個解出發。這是遺傳算法與傳統優化算法的一個巨大區別。傳統的優化算法從單個初始值迭代尋找最優解;很容易陷入局部最優解。遺傳算法從字符串集合出發,覆蓋面大,有利于全局優化。
2.遺傳算法很容易形成一個通用的算法程序,因為它使用的關于具體問題的信息很少。由于遺傳算法利用適應度值的信息進行搜索,不需要與問題直接相關的信息,如問題的導數。遺傳算法只需要適應數值、字符串編碼等一般信息,因此幾乎可以處理任何問題。
3.遺傳算法具有很強的容錯性。遺傳算法的初始串集本身就包含了大量遠離最優解的信息。通過選擇、交叉和變異操作,可以快速消除與最優解相差很大的字符串。這是一個強過濾過程;它是一種并行過濾機制。因此,遺傳算法具有很高的容錯性。
4.遺傳算法中的選擇、交叉和變異都是隨機操作,沒有確定的精確規則。這說明遺傳算法采用隨機方法搜索最優解,選擇體現了接近最優解,交叉體現了生成最優解,變異體現了覆蓋全局最優解。
5.遺傳算法具有隱式并行性。