遺傳算法的基本意思就是說象人的遺傳一樣,有一批種子程序,它們通過運(yùn)算得到一些結(jié)果,有好有壞,把好的一批取出來,做為下一輪計(jì)算的初值進(jìn)行運(yùn)算,反復(fù)如此,最終得到滿意的結(jié)果。
遺傳算法是借鑒生物的自然選擇和遺傳進(jìn)化機(jī)制而開發(fā)出的一種全局優(yōu)化自適應(yīng)概率搜索算法。它采用群體搜索技術(shù),通過對(duì)當(dāng)前群體使用選擇、交叉、變異等一系列遺傳操作,從而產(chǎn)生新一代的群體,并逐步使群體進(jìn)化到包含或接近最優(yōu)解的狀態(tài)。遺傳算法是新發(fā)展起來的一門學(xué)科,各種理論、方法尚未成熟,有待于進(jìn)一步地發(fā)展和完善,但它卻為我們解決許多復(fù)雜問題提供了希望。市面上有關(guān)遺傳算法的書也不少。下面的書都是不錯(cuò)的。
1.《演化程序》—遺傳算法和數(shù)據(jù)編碼的結(jié)合 [美]Z.米凱利維茨 著 科學(xué)出版社
2.《遺傳算法原理及應(yīng)用》 周明等編著 國防工業(yè)出版社
舉個(gè)例子,假如有一個(gè)動(dòng)物群體,如果你能讓他們當(dāng)中越強(qiáng)壯的越能優(yōu)先交配和產(chǎn)籽,那么千萬年后,這個(gè)動(dòng)物群體肯定會(huì)變得更加強(qiáng)壯,這是很容易理解的。
同樣,對(duì)于許多算法問題,特別是NP問題,比如說最短路徑,如果有400個(gè)城市,讓你找出最短的旅游路線,采用窮舉比較,復(fù)雜度為O(n?。@時(shí),你可以先隨機(jī)產(chǎn)生100種路徑,然后讓他們之中路程越短的那些越能優(yōu)先互相交換信息(比如每條里面隨機(jī)取出10個(gè)位置互相交換一下),那么循環(huán)幾千次后,算出來的路徑就跟最短路徑非常接近了(即求出一個(gè)近似最優(yōu)解)。(在下編程驗(yàn)證過,卻是很靈。)
遺傳算法的應(yīng)用還有很多,基本思想都一樣,但實(shí)現(xiàn)上可能差別非常大。
現(xiàn)在有許多搞算法的人不喜歡遺傳算法,因?yàn)?,它只給出了一種“有用”的方法,卻不能保證有用的程度,與此相反,能保證接近最優(yōu)程度的概率算法更受青睞。
遺傳算法(Genetic Algorithm)是一類借鑒生物界的進(jìn)化規(guī)律(適者生存,優(yōu)勝劣汰遺傳機(jī)制)演化而來的隨機(jī)化搜索方法。它是由美國的J.Holland教授1975年首先提出,其主要特點(diǎn)是直接對(duì)結(jié)構(gòu)對(duì)象進(jìn)行操作,不存在求導(dǎo)和函數(shù)連續(xù)性的限定;具有內(nèi)在的隱并行性和更好的全局尋優(yōu)能力;采用概率化的尋優(yōu)方法,能自動(dòng)獲取和指導(dǎo)優(yōu)化的搜索空間,自適應(yīng)地調(diào)整搜索方向,不需要確定的規(guī)則。遺傳算法的這些性質(zhì),已被人們廣泛地應(yīng)用于組合優(yōu)化、機(jī)器學(xué)習(xí)、信號(hào)處理、自適應(yīng)控制和人工生命等領(lǐng)域。它是現(xiàn)代有關(guān)智能計(jì)算中的關(guān)鍵技術(shù)之一。
3.遺傳算法的特點(diǎn)
遺傳算法作為一種快捷、簡便、容錯(cuò)性強(qiáng)的算法,在各類結(jié)構(gòu)對(duì)象的優(yōu)化過程中顯示
出明顯的優(yōu)勢(shì)。與傳統(tǒng)的搜索方法相比,遺傳算法具有如下特點(diǎn):
搜索過程不直接作用在變量上,而是在參數(shù)集進(jìn)行了編碼的個(gè)體。此編碼操作,
使得遺傳算法可直接對(duì)結(jié)構(gòu)對(duì)象(集合、序列、矩陣、樹、圖、鏈和表)進(jìn)行操作。
搜索過程是從一組解迭代到另一組解,采用同時(shí)處理群體中多個(gè)個(gè)體的方法,降
低了陷入局部最優(yōu)解的可能性,并易于并行化。
采用概率的變遷規(guī)則來指導(dǎo)搜索方向,而不采用確定性搜索規(guī)則。
對(duì)搜索空間沒有任何特殊要求(如連通性、凸性等),只利用適應(yīng)性信息,不需要
導(dǎo)數(shù)等其它輔助信息,適應(yīng)范圍更廣。