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