2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、遺傳算法簡稱GA(Genetic Algorithms)是1962年由美國Michigan大學(xué)的Holland教授提出的模擬自然界遺傳機制和生物進(jìn)化論而成的一種并行隨機搜索最優(yōu)化方法。 遺傳算法是以達(dá)爾文的自然選擇學(xué)說為基礎(chǔ)發(fā)展起來的。自然選擇學(xué)說包括以下三個方面:,第10章 遺傳算法,10.1 遺傳算法的基本原理,(1)遺傳:這是生物的普遍特征,親代把生物信息交給子代,子代總是和親代具有相同或相似的性狀。生物有了這個特征,物種

2、才能穩(wěn)定存在。(2)變異:親代和子代之間以及子代的不同個體之間的差異,稱為變異。變異是隨機發(fā)生的,變異的選擇和積累是生命多樣性的根源。(3)生存斗爭和適者生存:具有適應(yīng)性變異的個體被保留下來,不具有適應(yīng)性變異的個體被淘汰,通過一代代的生存環(huán)境的選擇作用,性狀逐漸逐漸與祖先有所不同,演變?yōu)樾碌奈锓N。,遺傳算法將“優(yōu)勝劣汰,適者生存”的生物進(jìn)化原理引入優(yōu)化參數(shù)形成的編碼串聯(lián)群體中,按所選擇的適應(yīng)度函數(shù)并通過遺傳中的復(fù)制、交叉及變異對個體

3、進(jìn)行篩選,使適適應(yīng)度高的個體被保留下來,組成新的群體,新的群體既繼承了上一代的信息,又優(yōu)于上一代。這樣周而復(fù)始,群體中個體適應(yīng)度不斷提高,直到滿足一定的條件。遺傳算法的算法簡單,可并行處理,并能到全局最優(yōu)解。,遺傳算法的基本操作為:(1)復(fù)制(Reproduction Operator) 復(fù)制是從一個舊種群中選擇生命力強的個體位串產(chǎn)生新種群的過程。具有高適應(yīng)度的位串更有可能在下一代中產(chǎn)生一個或多個子孫。 復(fù)制操作可以通過隨機方

4、法來實現(xiàn)。首先產(chǎn)生0~1之間均勻分布的隨機數(shù),若某串的復(fù)制概率為40%,則當(dāng)產(chǎn)生的隨機數(shù)在0.40~1.0之間時,該串被復(fù)制,否則被淘汰。,(2)交叉(Crossover Operator) 復(fù)制操作能從舊種群中選擇出優(yōu)秀者,但不能創(chuàng)造新的染色體。而交叉模擬了生物進(jìn)化過程中的繁殖現(xiàn)象,通過兩個染色體的交換組合,來產(chǎn)生新的優(yōu)良品種。 交叉的過程為:在匹配池中任選兩個染色體,隨機選擇一點或多點交換點位置;交換雙親染色體交換點右邊

5、的部分,即可得到兩個新的染色體數(shù)字串。,交叉體現(xiàn)了自然界中信息交換的思想。交叉有一點交叉、多點交叉、還有一致交叉、順序交叉和周期交叉。一點交叉是最基本的方法,應(yīng)用較廣。它是指染色體切斷點有一處,例:,(3)變異(Mutation Operator) 變異運算用來模擬生物在自然的遺傳環(huán)境中由于各種偶然因素引起的基因突變,它以很小的概率隨機地改變遺傳基因(表示染色體的符號串的某一位)的值。在染色體以二進(jìn)制編碼的系統(tǒng)中,它隨機地將染色體

6、的某一個基因由1變?yōu)?,或由0變?yōu)?。,若只有選擇和交叉,而沒有變異,則無法在初始基因組合以外的空間進(jìn)行搜索,使進(jìn)化過程在早期就陷入局部解而進(jìn)入終止過程,從而影響解的質(zhì)量。為了在盡可能大的空間中獲得質(zhì)量較高的優(yōu)化解,必須采用變異操作。,10.2 遺傳算法的特點,(1)遺傳算法是對參數(shù)的編碼進(jìn)行操作,而非對參數(shù)本身,這就是使得我們在優(yōu)化計算過程中可以借鑒生物學(xué)中染色體和基因等概念,模仿自然界中生物的遺傳和進(jìn)化等機理;(2)遺傳算法同時

7、使用多個搜索點的搜索信息。傳統(tǒng)的優(yōu)化方法往往是從解空間的單個初始點開始最優(yōu)解的迭代搜索過程,單個搜索點所提供的信息不多,搜索效率不高,有時甚至使搜索過程局限于局部最優(yōu)解而停滯不前。,遺傳算法從由很多個體組成的一個初始群體開始最優(yōu)解的搜索過程,而不是從一個單一的個體開始搜索,這是遺傳算法所特有的一種隱含并行性,因此遺傳算法的搜索效率較高。(3)遺傳算法直接以目標(biāo)函數(shù)作為搜索信息。傳統(tǒng)的優(yōu)化算法不僅需要利用目標(biāo)函數(shù)值,而且需要目標(biāo)函數(shù)的導(dǎo)

8、數(shù)值等輔助信息才能確定搜索方向。而遺傳算法僅使用由目標(biāo)函數(shù)值變換來的適應(yīng)度函數(shù)值,就可以確定進(jìn)一步的搜索方向和搜索范圍,無需目標(biāo)函數(shù)的導(dǎo)數(shù)值等其他一些輔助信息。,遺傳算法可應(yīng)用于目標(biāo)函數(shù)無法求導(dǎo)數(shù)或?qū)?shù)不存在的函數(shù)的優(yōu)化問題,以及組合優(yōu)化問題等。(4)遺傳算法使用概率搜索技術(shù)。遺傳算法的選擇、交叉、變異等運算都是以一種概率的方式來進(jìn)行的,因而遺傳算法的搜索過程具有很好的靈活性。隨著進(jìn)化過程的進(jìn)行,遺傳算法新的群體會更多地產(chǎn)生出許多新的

9、優(yōu)良的個體。,(5)遺傳算法在解空間進(jìn)行高效啟發(fā)式搜索,而非盲目地窮舉或完全隨機搜索;(6)遺傳算法對于待尋優(yōu)的函數(shù)基本無限制,它既不要求函數(shù)連續(xù),也不要求函數(shù)可微,既可以是數(shù)學(xué)解析式所表示的顯函數(shù),又可以是映射矩陣甚至是神經(jīng)網(wǎng)絡(luò)的隱函數(shù),因而應(yīng)用范圍較廣;(7)遺傳算法具有并行計算的特點,因而可通過大規(guī)模并行計算來提高計算速度,適合大規(guī)模復(fù)雜問題的優(yōu)化。,10.3 遺傳算法的發(fā)展及應(yīng)用10.3.1 遺傳算法的發(fā)展,遺傳算法起

10、源于對生物系統(tǒng)所進(jìn)行的計算機模擬研究。早在20世紀(jì)40年代,就有學(xué)者開始研究如何利用計算機進(jìn)行生物模擬的技術(shù),他們從生物學(xué)的角度進(jìn)行了生物的進(jìn)化過程模擬、遺傳過程模擬等研究工作。進(jìn)入20世紀(jì)60年代,美國密歇根大學(xué)的Holland教授及其學(xué)生們受到這種生物模擬技術(shù)的啟發(fā),創(chuàng)造出一種基于生物遺傳和進(jìn)化機制的適合于復(fù)雜系統(tǒng)優(yōu)化計算的自適應(yīng)概率優(yōu)化技術(shù)—遺傳算法。,以下是在遺傳算法發(fā)展進(jìn)程中一些關(guān)鍵人物所做出的主要貢獻(xiàn):(1)J.H.Hol

11、land 20世紀(jì)70年代初,Holland教授提出了遺傳算法的基本定理—模式定理,從而奠定了遺傳算法的理論基礎(chǔ)。模式定理揭示了群體中優(yōu)良個體(較好的模式)的樣本數(shù)將以指數(shù)級規(guī)律增長,從理論上保證了遺傳算法用于尋求最優(yōu)可行解的優(yōu)化過程。1975年,Holland出版了第一本系統(tǒng)論述遺傳算法和人工自適應(yīng)系統(tǒng)的專著《自然系統(tǒng)和人工系統(tǒng)的自適應(yīng)性》。20世紀(jì)80年代,Holland教授實現(xiàn)了第一個基于遺傳算法的機器學(xué)

12、習(xí)系統(tǒng)—分類器系統(tǒng),開創(chuàng)了基于遺傳算法的機器學(xué)習(xí)的新概念。,(3)K.A.De Jong 1975年,De Jong博士在其博士論文中結(jié)合模式定理進(jìn)行了大量純數(shù)值函數(shù)優(yōu)化計算實驗,樹立了遺傳算法的工作框架。他推薦了在大多數(shù)優(yōu)化問題中都較適用的遺傳算法的參數(shù),建立了著名的De Jong五函數(shù)測試平臺,定義了評價遺傳算法性能的在線指標(biāo)和離線指標(biāo)。(4)D.J.Goldberg 1989年,G

13、oldberg出版了專著《搜索、優(yōu)化和機器學(xué)習(xí)中的遺傳算法》,該書全面地論述了遺傳算法的基本原理及其應(yīng)用,奠定了現(xiàn)代遺傳算法的科學(xué)基礎(chǔ)。,(2)J.D.Bagley 1967年,Holland的學(xué)生Bagley在其博士論文中首次提出了“遺傳算法”一詞,并發(fā)表了遺傳算法應(yīng)用方面的第一篇論文。他發(fā)展了復(fù)制、交叉、變異、顯性、倒位等遺傳算子,在個體編碼上使用了雙倍體的編碼方法。在遺傳算法的不同階段采用了不同的概率,從

14、而創(chuàng)立了自適應(yīng)遺傳算法的概念。,(5)L.Davis 1991年,Davis編輯出版了《遺傳算法手冊》一書,為推廣和普及遺傳算法的應(yīng)用起到了重要的指導(dǎo)作用。(6)J.R.Koza 1992年,Koza將遺傳算法應(yīng)用于計算機程序的優(yōu)化設(shè)計及自動生成,提出了遺傳編程的概念,并成功地將遺傳編程的方法應(yīng)用于人工智能、機器學(xué)習(xí)和符號處理等方面。,10.3.1 遺傳算法的應(yīng)用(1)函數(shù)優(yōu)化。

15、 函數(shù)優(yōu)化是遺傳算法的經(jīng)典應(yīng)用領(lǐng)域,也是遺傳算法進(jìn)行性能評價的常用算例。尤其是對非線性、多模型、多目標(biāo)的函數(shù)優(yōu)化問題,采用其他優(yōu)化方法較難求解,而遺傳算法卻可以得到較好的結(jié)果。(2)組合優(yōu)化。 隨著問題的增大,組合優(yōu)化問題的搜索空間也急劇擴大,采用傳統(tǒng)的優(yōu)化方法很難得到最優(yōu)解。遺傳算法是尋求這種滿意解的最佳工具。例如,遺傳算法已經(jīng)在求解旅行商問題、背包問題、裝箱問題、圖形劃分問題等方面得到成功的應(yīng)用。,(3)生產(chǎn)調(diào)度問題

16、 在很多情況下,采用建立數(shù)學(xué)模型的方法難以對生產(chǎn)調(diào)度問題進(jìn)行精確求解。在現(xiàn)實生產(chǎn)中多采用一些經(jīng)驗進(jìn)行調(diào)度。遺傳算法是解決復(fù)雜調(diào)度問題的有效工具,在單件生產(chǎn)車間調(diào)度、流水線生產(chǎn)車間調(diào)度、生產(chǎn)規(guī)劃、任務(wù)分配等方面遺傳算法都得到了有效的應(yīng)用。,(4)自動控制。 在自動控制領(lǐng)域中有很多與優(yōu)化相關(guān)的問題需要求解,遺傳算法已經(jīng)在其中得到了初步的應(yīng)用。例如,利用遺傳算法進(jìn)行控制器參數(shù)的優(yōu)化、基于遺傳算法的模糊控制規(guī)則的學(xué)習(xí)、基于遺傳算法的參

17、數(shù)辨識、基于遺傳算法的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化和權(quán)值學(xué)習(xí)等。,(5)機器人 例如,遺傳算法已經(jīng)在移動機器人路徑規(guī)劃、關(guān)節(jié)機器人運動軌跡規(guī)劃、機器人結(jié)構(gòu)優(yōu)化和行為協(xié)調(diào)等方面得到研究和應(yīng)用。(6)圖像處理 遺傳算法可用于圖像處理過程中的掃描、特征提取、圖像分割等的優(yōu)化計算。目前遺傳算法已經(jīng)在模式識別、圖像恢復(fù)、圖像邊緣特征提取等方面得到了應(yīng)用。,(7)人工生命 人工生命是用計算機、機械等人工媒體模擬或構(gòu)造出的

18、具有生物系統(tǒng)特有行為的人造系統(tǒng)。人工生命與遺傳算法有著密切的聯(lián)系,基于遺傳算法的進(jìn)化模型是研究人工生命現(xiàn)象的重要基礎(chǔ)理論。遺傳算法為人工生命的研究提供了一個有效的工具。(8)遺傳編程 遺傳算法已成功地應(yīng)用于人工智能、機器學(xué)習(xí)等領(lǐng)域的編程。,(9)機器學(xué)習(xí) 基于遺傳算法的機器學(xué)習(xí)在很多領(lǐng)域都得到了應(yīng)用。例如,采用遺傳算法實現(xiàn)模糊控制規(guī)則的優(yōu)化,可以改進(jìn)模糊系統(tǒng)的性能;遺傳算法可用于神經(jīng)網(wǎng)絡(luò)連

19、接權(quán)的調(diào)整和結(jié)構(gòu)的優(yōu)化;采用遺傳算法設(shè)計的分類器系統(tǒng)可用于學(xué)習(xí)式多機器人路徑規(guī)劃。,10.4.1 遺傳算法的構(gòu)成要素(1)染色體編碼方法 基本遺傳算法使用固定長度的二進(jìn)制符號來表示群體中的個體,其等位基因是由二值符號集{0,1}所組成。初始個體基因值可用均勻分布的隨機值生成,如就可表示一個個體,該個體的染色體長度是18。,10.4 遺傳算法的優(yōu)化設(shè)計,(2)個體適應(yīng)度評價:基本遺傳算法與個體適應(yīng)度成正比的概率

20、來決定當(dāng)前群體中每個個體遺傳到下一代群體中的概率多少。為正確計算這個概率,要求所有個體的適應(yīng)度必須為正數(shù)或零。因此,必須先確定由目標(biāo)函數(shù)值J到個體適應(yīng)度f之間的轉(zhuǎn)換規(guī)則。,(3)遺傳算子:基本遺傳算法使用下述三種遺傳算子: ① 選擇運算:使用比例選擇算子; ② 交叉運算:使用單點交叉算子; ③ 變異運算:使用基本位變異算子或均勻變異算子。,(4)基本遺傳算法的運行參數(shù) 有下述4個運行參數(shù)需要

21、提前設(shè)定: M:群體大小,即群體中所含個體的數(shù)量,一般取為20~100; G:遺傳算法的終止進(jìn)化代數(shù),一般取為100~500; Pc:交叉概率,一般取為0.4~0.99; Pm:變異概率,一般取為0.0001~0.1。,對于一個需要進(jìn)行優(yōu)化的實際問題,一般可按下述步驟構(gòu)造遺傳算法: 第一步:確定決策變量及各種約束條件,即確定出個體的表現(xiàn)型X和問題的解空間;

22、 第二步:建立優(yōu)化模型,即確定出目標(biāo)函數(shù)的類型及數(shù)學(xué)描述形式或量化方法; 第三步:確定表示可行解的染色體編碼方法,即確定出個體的基因型x及遺傳算法的搜索空間;,10.4.2 遺傳算法的應(yīng)用步驟,,第四步:確定解碼方法,即確定出由個體基因型x到個體表現(xiàn)型X的對應(yīng)關(guān)系或轉(zhuǎn)換方法; 第五步:確定個體適應(yīng)度的量化評價方法,即確定出由目標(biāo)函數(shù)值到個體適應(yīng)度的轉(zhuǎn)換規(guī)則; 第六步:設(shè)計遺

23、傳算子,即確定選擇運算、交叉運算、變異運算等遺傳算子的具體操作方法。 第七步:確定遺傳算法的有關(guān)運行參數(shù),即M,G,Pc,Pm等參數(shù)。,以上操作過程可以用圖10-1來表示。,,圖10-1 遺傳算法流程圖,利用遺傳算法求Rosenbrock函數(shù)的極大值,10.5 遺傳算法求函數(shù)極值,10.5.1 二進(jìn)制編碼遺傳算法求函數(shù)極大值 求解該問題遺傳算法的構(gòu)造過程: (1)確定決策變量和約束條件

24、; (2)建立優(yōu)化模型; (3)確定編碼方法,用長度為10位的二進(jìn)制編碼串來分別表示兩個決策變量x1,x2。10位二進(jìn)制編碼串可以表示從0到1023之間的1024個不同的數(shù),故將x1,x2的定義域離散化為1023個均等的區(qū)域,包括兩個端點在內(nèi)共有1024個不同的離散點。 從離散點-2.048到離散點2.048 ,分別對應(yīng)于從0000000000(0)到1111111111(1023)之間的二進(jìn)制編

25、碼。,將x1,x2分別表示的兩個10位長的二進(jìn)制編碼串連接在一起,組成一個20位長的二進(jìn)制編碼串,它就構(gòu)成了這個函數(shù)優(yōu)化問題的染色體編碼方法。使用這種編碼方法,解空間和遺傳算法的搜索空間就具有一一對應(yīng)的關(guān)系。 例如: 表示一個個體的基因型,其中前10位表示x1,后10位表示x2。,(4)確定解碼方法:解碼時

26、需要將20位長的二進(jìn)制編碼串切斷為兩個10位長的二進(jìn)制編碼串,然后分別將它們轉(zhuǎn)換為對應(yīng)的十進(jìn)制整數(shù)代碼,分別記為y1和y2。 依據(jù)個體編碼方法和對定義域的離散化方法可知,將代碼y轉(zhuǎn)換為變量x的解碼公式為 例如,對個體,它由兩個代碼所組成 上述兩個代碼經(jīng)過解碼后,可得到兩個實際的值(5)確定個體評價方法:由于Rosenbrock函數(shù)的值域總是非負(fù)的,并且優(yōu)化目標(biāo)是求函數(shù)的最大值,故可將個體的適應(yīng)

27、度直接取為對應(yīng)的目標(biāo)函數(shù)值,即,選個體適應(yīng)度的倒數(shù)作為目標(biāo)函數(shù) (6)設(shè)計遺傳算子:選擇運算使用比例選擇算子,交叉運算使用單點交叉算子,變異運算使用基本位變異算子。 (7)確定遺傳算法的運行參數(shù):群體大小M=80,終止進(jìn)化代數(shù)G=100,交叉概率Pc=0.60,變異概率Pm=0.10。 上述七個步驟構(gòu)成了用于求函數(shù)極大值的優(yōu)化計算基本遺傳算法。,采用上述方法進(jìn)行仿真,經(jīng)過100步迭代,最佳樣本

28、為即當(dāng) 時,Rosenbrock函數(shù)具有極大值,極大值為3905.9。 仿真程序:chap5_1.m,遺傳算法的優(yōu)化過程是目標(biāo)函數(shù)J和適應(yīng)度函數(shù)F的變化過程。 由仿真結(jié)果可知,隨著進(jìn)化過程的進(jìn)行,群體中適應(yīng)度較低的一些個體被逐漸淘汰掉,而適應(yīng)度較高的一些個體會越來越多,并且它們都集中在所求問題的最優(yōu)點附近,從而

29、搜索到問題的最優(yōu)解。,10.5.2 實數(shù)編碼遺傳算法求函數(shù)極大值 求解該問題遺傳算法的構(gòu)造過程:(1)確定決策變量和約束條件;(2)建立優(yōu)化模型;(3)確定編碼方法:用2個實數(shù)分別表示兩個決策變量,分別將的定義域離散化為從離散點-2.048到離散點2.048的Size個實數(shù)。,(4)確定個體評價方法: 個體的適應(yīng)度直接取為對應(yīng)的目標(biāo)函數(shù)值,即 選個體適應(yīng)度的倒數(shù)作為目標(biāo)函數(shù),(5)設(shè)計遺傳算子:選擇運算使

30、用比例選擇算子,交叉運算使用單點交叉算子,變異運算使用基本位變異算子。(6)確定遺傳算法的運行參數(shù):群體大小M=500,終止進(jìn)化代數(shù)G=200,交叉概率Pc=0.90,采用自適應(yīng)變異概率即變異概率與適應(yīng)度有關(guān),適應(yīng)度越小,變異概率越大。,上述六個步驟構(gòu)成了用于求函數(shù)Rosenbrock極大值的優(yōu)化計算的實數(shù)編碼遺傳算法。 十進(jìn)制編碼求函數(shù)Rosenbrock極大值。仿真程序見chap10_2.m。 仿真程序經(jīng)過200步迭代

31、,最佳樣本為即當(dāng) , 時,函數(shù)具有極大值,極大值為3880.3。,10.6 基于遺傳算法優(yōu)化的RBF網(wǎng)絡(luò)逼近,10.6.1 遺傳算法優(yōu)化原理 在7.3節(jié)的RBF網(wǎng)絡(luò)逼近算法中,網(wǎng)絡(luò)權(quán)值、高斯函數(shù)的中心矢量和基寬向量的初值難以確定,如果這些參數(shù)選擇不當(dāng),會造成逼近精度的下降甚至RBF網(wǎng)絡(luò)的發(fā)散。采用遺傳算法可實現(xiàn)RBF網(wǎng)絡(luò)參數(shù)的優(yōu)化。,為獲取滿意的逼近精度,采用誤差絕對值指標(biāo)作為

32、參數(shù)選擇的最小目標(biāo)函數(shù)。 式中, 為逼近的總步驟, 為第 步RBF網(wǎng)絡(luò)的逼近誤差。 在應(yīng)用遺傳算法時,為了避免參數(shù)選取范圍過大,可以先按經(jīng)驗選取一組參數(shù),然后再在這組參數(shù)的周圍利用遺傳算法進(jìn)行設(shè)計,從而大大減少初始尋優(yōu)的盲目性,節(jié)約計算量。,10.6.2 仿真實例 使用RBF網(wǎng)絡(luò)逼近下列對象:,在RBF網(wǎng)絡(luò)中,網(wǎng)絡(luò)輸入信號為2個,即和

33、 ,網(wǎng)絡(luò)初始權(quán)值及高斯函數(shù)參數(shù)初始值通過遺傳算法優(yōu)化而得。,遺傳算法優(yōu)化程序為chap10_3a.m,取逼近總步驟為,每一步的逼近誤差由chap10_3b.m求得。采用二進(jìn)制編碼方式,用長度為10位的二進(jìn)制編碼串來分別表示向量b、c和w中的每個值。,遺傳算法優(yōu)化中,取樣本個數(shù)為Size=30,交叉概率為Pc=0.60,采用自適應(yīng)變異概率,即適應(yīng)度越小,變異概率越大,取變異概率為 取用于優(yōu)化的RBF網(wǎng)絡(luò)結(jié)構(gòu)為2-3-

34、1,網(wǎng)絡(luò)權(quán)值wj的取值范圍為[-1,+1],高斯函數(shù)基寬向量的取值范圍為[0.1,3.0],高斯函數(shù)中心矢量的取值范圍為[-3,+3]。取則共有12個參數(shù)需要優(yōu)化。,,經(jīng)過150代遺傳算法進(jìn)化,優(yōu)化后的結(jié)果為: p=[2.7732,2.6343,2.2630,1.8680, -0.0616,-0.7126,-0.3959,2.2669, -1.4047,-0.3099,0.7478,-0.3353]。 則R

35、BF網(wǎng)絡(luò)高斯基函數(shù)參數(shù)的初始值及權(quán)值的初始值為:,RBF網(wǎng)絡(luò)遺傳算法優(yōu)化程序包括三部分,即遺傳算法優(yōu)化程序chap10_3a.m、RBF網(wǎng)絡(luò)逼近函數(shù)程序chap10_3b.m和RBF網(wǎng)絡(luò)逼近測試程序chap10_3c.m。,10.8 基于遺傳算法的TSP問題優(yōu)化 在第8.5節(jié)已經(jīng)對旅行商問題進(jìn)行了描述。遺傳算法由于其全局搜索的特點,在解決TSP問題中有明顯的優(yōu)勢。 10.8.1 TSP問題的編碼

36、 設(shè) 是由城市i和城市j之間的距離組成的距離矩陣,旅行商問題就是求出一條通過所有城市且每個城市只通過一次的具有最短距離的回路。,,在旅行商問題的各種求解方法中,描述旅行路線的方法主要有如下兩種:(1)巡回旅行路線經(jīng)過的連接兩個城市的路線的順序排列;(2)巡回旅行路線所經(jīng)過的各個城市的順序排列。大多數(shù)求解旅行商問題的遺傳算法是以后者為描述方法的,它們大多采用所遍歷城市的順序來表示各個個體的編碼串,其等位基

37、因為N個整數(shù)值或N個記號。 以城市的遍歷次序作為遺傳算法的編碼,目標(biāo)函數(shù)取路徑長度。在群體初始化、交叉操作和變異操作中考慮TSP問題的合法性約束條件(即對所有的城市做到不重不漏)。,10.8.2 TSP問題的遺傳算法設(shè)計 采用遺傳算法進(jìn)行路徑優(yōu)化,分為以下幾步: 第一步:參數(shù)編碼和初始群體設(shè)定 一般來說遺傳算法對解空間的編碼大多采用二進(jìn)制編碼形式,但對于TSP一類

38、排序問題,采用對訪問城市序列進(jìn)行排列組合的方法編碼,即某個巡回路徑的染色體個體是該巡回路徑的城市序列。 針對TSP問題,編碼規(guī)則通常是N取進(jìn)制編碼,即每個基因僅從1到N的整數(shù)里面取一個值,每個個體的長度為N,N為城市總數(shù)。定義一個s行t列的pop矩陣來表示群體,t為城市個數(shù)N+1,即N+1,s為樣本中個體數(shù)目。針對30個城市的TSP問題,t取值31,,即矩陣每一行的前30個元素表示經(jīng)過的城市編號,最后一個元素表示經(jīng)過

39、這些城市要走的距離。 參數(shù)編碼和初始群體設(shè)定程序為: pop=zeros(s,t); for i=1:s pop(i,1:t-1)=randperm(t-1); end 第二步:計算路徑長度的函數(shù)設(shè)計 在TSP的求解中,用距離的總和作為適應(yīng)度函數(shù),來衡量求解結(jié)果是否最優(yōu)。將POP矩陣中每一

40、行表示經(jīng)過的距離的最后一個元素作為路徑長度。,兩個城市m和n間的距離為: 用于計算路徑長度的程序為chap10_1dis.m。 通過樣本的路徑長度可以得到目標(biāo)函數(shù)和自適應(yīng)度函數(shù)。根據(jù)t的定義,兩兩城市組合數(shù)共有t-2組,則目標(biāo)函數(shù)為:自適應(yīng)度函數(shù)取目標(biāo)函數(shù)的倒數(shù),即:

41、 (10.18),,,,第三步:計算選擇算子 選擇就是從群體中選擇優(yōu)勝個體、淘汰劣質(zhì)個體的操作,它是建立在群體中個體適應(yīng)度評估基礎(chǔ)上。仿真中采用最優(yōu)保存方法,即將群體中適應(yīng)度最大的c個個體直接替換適應(yīng)度最小的c個個體。選擇算子函數(shù)為chap10_7select.m。仿真中,取 。 第四步:計算交叉算子 交叉算子在遺傳算法中起著核心的作用,

42、它是指將個體進(jìn)行兩兩配對,并以交叉概率將配對的父代個體加以替換重組而生成新個體的操作。仿真中,取 。有序交叉法實現(xiàn)的步驟是:,,,有序交叉法實現(xiàn)的步驟是:步驟 1 隨機選取兩個交叉點crosspoint(1)和crosspoint(2);步驟 2 兩后代先分別按對應(yīng)位置復(fù)制雙親X1和X2匹配段中的兩個子串A1和B1;步驟 3 在對應(yīng)位置交換雙親匹配段以外的城市,如果交換后,后代X1中的某一城市a與子串中

43、A1的城市重復(fù),則將該城市取代子串B1與A1中的城市a具有相同位置的新城市,直到與子串A1中的城市均不重復(fù)為止,對后代X2也采用同樣方法,如圖10-15所示:,圖10-15 有序交叉算子 從圖10-15可知,有序交叉算子能夠有效地繼承雙親的部分基因成分,達(dá)到了進(jìn)化過程中的遺傳功能,使該算法并不是盲目搜索,而是趨向于使群體具有更多的優(yōu)良基因,最后實現(xiàn)尋優(yōu)的目的。交叉算子函數(shù)為chap10_7corss.m,第五步:計算變異

44、算子 變異操作是以變異概率 對群體中個體串某些基因位上的基因值作變動,若變異后子代的適應(yīng)度值更加優(yōu)異,則保留子代染色體,否則,仍保留父代染色體。仿真中,取 。 這里采用倒置變異法:假設(shè)當(dāng)前個體X為(1 3 7 4 8 0 5 9 6 2 ),如果當(dāng)前隨機概率值< ,則隨機選擇來自同一個體的兩個點mutatepoint(1)和mutatepoint(

45、2),然后倒置該兩個點的中間部分,產(chǎn)生新的個體。例如,假設(shè)隨機選擇個體X的兩個點“7”和“9”,則倒置該兩個點的中間部分,即將“4805”變?yōu)椤?084”,產(chǎn)生新的個體X為(1 3 7 5 0 8 4 9 6 2)。變異算子函數(shù)為chap10_7mutate.m。,,,,10.8.3 仿真實例 以8個城市的路徑優(yōu)化為例,其城市路徑坐標(biāo)保存在路徑e:\ljkmb\的程序cities8.txt中。遺傳算法參數(shù)設(shè)定為:群

46、體中個體數(shù)目 ,交叉概率 ,變異概率 。通過改變進(jìn)化代數(shù)為K,觀察不同進(jìn)化代數(shù)下路徑的優(yōu)化情況,仿真結(jié)果見圖10-16和圖10-17所示,經(jīng)過1000次進(jìn)化,城市組合路徑達(dá)到最小。最短路程為2.8937 仿真過程表明,在20次仿真實驗中,有15次可收斂到最優(yōu)解。,,,,圖10-16 進(jìn)化代次數(shù)為300時的軌跡,距離L= 3.4173,圖10-17 進(jìn)化代次

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論