遺傳算法(Genetic Algorithm, GA)是一種基于自然群體遺傳演化機(jī)制的高效探索算法,它是美國(guó)學(xué)者Holland于1975年首先提出來(lái)的。
它摒棄了傳統(tǒng)的搜索方式,模擬自然界生物進(jìn)化過(guò)程,采用人工進(jìn)化的方式對(duì)目標(biāo)空間進(jìn)行隨機(jī)化搜索。它將問(wèn)題域中的可能解看作是群體的一個(gè)個(gè)體或染色體,并將每一個(gè)體編碼成符號(hào)串形式,模擬達(dá)爾文的遺傳選擇和自然淘汰的生物進(jìn)化過(guò)程,對(duì)群體反復(fù)進(jìn)行基于遺傳學(xué)的操作(遺傳,交叉和變異),根據(jù)預(yù)定的目標(biāo)適應(yīng)度函數(shù)對(duì)每個(gè)個(gè)體進(jìn)行評(píng)價(jià),依據(jù)適者生存,優(yōu)勝劣汰的進(jìn)化規(guī)則,不斷得到更優(yōu)的群體,同時(shí)以全局并行搜索方式來(lái)搜索優(yōu)化群體中的最優(yōu)個(gè)體,求得滿足要求的最優(yōu)解。
Holland創(chuàng)建的遺傳算法是一種概率搜索算法,它是利用某種編碼技術(shù)作用于稱為染色體的數(shù)串,其基本思想是模擬由這些組成的進(jìn)化過(guò)程。跗算法通過(guò)有組織地然而是隨機(jī)地信息交換重新組合那些適應(yīng)性好的串,在每一代中,利用上一代串結(jié)構(gòu)中適應(yīng)好的位和段來(lái)生成一個(gè)新的串的群體;作為額外增添,偶爾也要在串結(jié)構(gòu)中嘗試用新的位和段來(lái)替代原來(lái)的部分。
遺傳算法是一類隨機(jī)化算法,但是它不是簡(jiǎn)單的隨機(jī)走動(dòng),它可以有效地利用已經(jīng)有的信息處理來(lái)搜索那些有希望改善解質(zhì)量的串,類似于自然進(jìn)化,遺傳算法通過(guò)作用于染色體上的基因,尋找好的染色體來(lái)求解問(wèn)題。與自然界相似,遺傳算法對(duì)待求解問(wèn)題本身一無(wú)所知,它所需要的僅是對(duì)算法所產(chǎn)生的每個(gè)染色體進(jìn)行評(píng)價(jià),并基于適應(yīng)度值來(lái)造反染色體,使適用性好的染色體比適應(yīng)性差的染色體有更多的繁殖機(jī)會(huì)。
基因:組成染色體的單元,可以表示為一個(gè)二進(jìn)制位,一個(gè)整數(shù)或一個(gè)字符等。
染色體或個(gè)體:表示待求解問(wèn)題的一個(gè)可能解,由若干基因組成,是GA操作的基本對(duì)象。
群體:一定數(shù)量的個(gè)體組成了群體,表示GA的遺傳搜索空間。
適應(yīng)度或適度:代表一個(gè)個(gè)體所對(duì)應(yīng)解的優(yōu)劣,通常由某一適應(yīng)度函數(shù)表示。
選擇:GA的基本操作之一,即根據(jù)個(gè)體的適應(yīng)度,在群體中按照一定的概論選擇可以作為父本的個(gè)體,選擇依據(jù)是適應(yīng)度大的個(gè)體被選中的概率高。選擇操作體現(xiàn)了適者生存,優(yōu)勝劣汰的進(jìn)化規(guī)則。
交叉:GA的基本操作之一,即將父本個(gè)體按照一定的概率隨機(jī)地交換基因形成新的個(gè)體。
變異:GA的基本操作之一,即即按一定概率隨機(jī)改變某個(gè)體的基因值。