遺傳算法(Genetic Algorithm, GA)是一種基于自然群體遺傳演化機制的高效探索算法,它是美國學者Holland于1975年首先提出來的。

它摒棄了傳統(tǒng)的搜索方式,模擬自然界生物進化過程,采用人工進化的方式對目標空間進行隨機化搜索。它將問題域中的可能解看作是群體的一個個體或染色體,并將每一個體編碼成符號串形式,模擬達爾文的遺傳選擇和自然淘汰的生物進化過程,對群體反復(fù)進行基于遺傳學的操作(遺傳,交叉和變異),根據(jù)預(yù)定的目標適應(yīng)度函數(shù)對每個個體進行評價,依據(jù)適者生存,優(yōu)勝劣汰的進化規(guī)則,不斷得到更優(yōu)的群體,同時以全局并行搜索方式來搜索優(yōu)化群體中的最優(yōu)個體,求得滿足要求的最優(yōu)解。

Holland創(chuàng)建的遺傳算法是一種概率搜索算法,它是利用某種編碼技術(shù)作用于稱為染色體的數(shù)串,其基本思想是模擬由這些組成的進化過程。跗算法通過有組織地然而是隨機地信息交換重新組合那些適應(yīng)性好的串,在每一代中,利用上一代串結(jié)構(gòu)中適應(yīng)好的位和段來生成一個新的串的群體;作為額外增添,偶爾也要在串結(jié)構(gòu)中嘗試用新的位和段來替代原來的部分。

遺傳算法是一類隨機化算法,但是它不是簡單的隨機走動,它可以有效地利用已經(jīng)有的信息處理來搜索那些有希望改善解質(zhì)量的串,類似于自然進化,遺傳算法通過作用于染色體上的基因,尋找好的染色體來求解問題。與自然界相似,遺傳算法對待求解問題本身一無所知,它所需要的僅是對算法所產(chǎn)生的每個染色體進行評價,并基于適應(yīng)度值來造反染色體,使適用性好的染色體比適應(yīng)性差的染色體有更多的繁殖機會。

基因:組成染色體的單元,可以表示為一個二進制位,一個整數(shù)或一個字符等。

染色體或個體:表示待求解問題的一個可能解,由若干基因組成,是GA操作的基本對象。

群體:一定數(shù)量的個體組成了群體,表示GA的遺傳搜索空間。

適應(yīng)度或適度:代表一個個體所對應(yīng)解的優(yōu)劣,通常由某一適應(yīng)度函數(shù)表示。

選擇:GA的基本操作之一,即根據(jù)個體的適應(yīng)度,在群體中按照一定的概論選擇可以作為父本的個體,選擇依據(jù)是適應(yīng)度大的個體被選中的概率高。選擇操作體現(xiàn)了適者生存,優(yōu)勝劣汰的進化規(guī)則。

交叉:GA的基本操作之一,即將父本個體按照一定的概率隨機地交換基因形成新的個體。

變異:GA的基本操作之一,即即按一定概率隨機改變某個體的基因值。

串行遺傳算法基本步驟

(1) 對待解決問題進行編碼;
(2) 隨機初始化群體X(0):=(x1, x2, … xn);
(3) 對當前群體X(t)中每個個體xi計算其適應(yīng)度F(xi),適應(yīng)度表示了該個體的性能好壞;
(4) 應(yīng)用選擇算子產(chǎn)生中間代Xr(t);
(5) 對Xr(t)應(yīng)用其它的算子,產(chǎn)生新一代群體X(t+1),這些算子的目的在于擴展有限個體的覆蓋面,體現(xiàn)全局搜索的思想;
(6) t:=t+1;如果不滿足終止條件繼續(xù)(3)。