版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、最新發(fā)布的 MA TLAB 7.0 Release 14已經(jīng)包含了一個(gè)專門設(shè)計(jì)的遺傳算法與直接搜索工具箱(Genetic Algorithm and Direct Search Toolbox , GADS )。使用遺傳算法與直接搜索工具箱, 可以擴(kuò)展 MATLAB 及其優(yōu)化工具箱在處理優(yōu)化問題方面的能力,可以處理傳統(tǒng)的優(yōu)化技術(shù)難以解決的問題,包括那些難以定義或不便于數(shù)學(xué)建模的問題,可以解決目標(biāo)函數(shù)較復(fù)雜的問 題,比如目標(biāo)函數(shù)不連續(xù)、或具有高度非線性、隨機(jī)性以及目標(biāo)函數(shù)沒有導(dǎo)數(shù)的情況。本章8.1節(jié)首先介紹這個(gè)遺傳算法與直接搜索工具箱,其余各節(jié)分別介紹該工具箱中的遺傳算法工具及其使用方法。遺傳算
2、法與直接搜索工具箱概述本節(jié)介紹 MATLAB 的GADS (遺傳算法與直接搜索)工具箱的特點(diǎn)、圖形用戶界面及運(yùn) 行要求,解釋如何編寫待優(yōu)化函數(shù)的M文件,且通過舉例加以闡明。工具箱的特點(diǎn)GADS工具箱是一系列函數(shù)的集合,它們擴(kuò)展了優(yōu)化工具箱和MA TLAB數(shù)值計(jì)算環(huán)境的性能。遺傳算法與直接搜索工具箱包含了要使用遺傳算法和直接搜索算法來求解優(yōu)化問題的 一些例程。這些算法使我們能夠求解那些標(biāo)準(zhǔn)優(yōu)化工具箱范圍之外的各種優(yōu)化問題。所有工 具箱函數(shù)都是MATLAB 的M文件,這些文件由實(shí)現(xiàn)特定優(yōu)化算法的MATLAB 語句所寫成。使用語句type function_name 就可以看到這些函數(shù)的MATLAB
3、 代碼。我們也可以通過編寫自己的M文件來實(shí)現(xiàn)來擴(kuò)展遺傳算法和直接搜索工具箱的性能,也可以將該工具箱與MATLAB 的其他工具箱或Simulink結(jié)合使用,來求解優(yōu)化問題。工具箱函數(shù)可以通過圖形界面或MA TLAB 命令行來訪問,它們是用 MATLAB 語言編寫的,對(duì)用戶開放,因此可以查看算法、修改源代碼或生成用戶函數(shù)。遺傳算法與直接搜索工具箱可以幫助我們求解那些不易用傳統(tǒng)方法解決的問題,譬如表 查找問題等。遺傳算法與直接搜索工具箱有一個(gè)精心設(shè)計(jì)的圖形用戶界面,可以幫助我們直觀、方便、 快速地求解最優(yōu)化問題。功能特點(diǎn)遺傳算法與直接搜索工具箱的功能特點(diǎn)如下:圖形用戶界面和命令行函數(shù)可用來快速地描述
4、問題、設(shè)置算法選項(xiàng)以及監(jiān)控進(jìn)程。具有多個(gè)選項(xiàng)的遺傳算法工具可用于問題創(chuàng)建、適應(yīng)度計(jì)算、選擇、交叉和變異。直接搜索工具實(shí)現(xiàn)了一種模式搜索方法,其選項(xiàng)可用于定義網(wǎng)格尺寸、表決方法和 搜索方法。遺傳算法與直接搜索工具箱函數(shù)可與MATLAB 的優(yōu)化工具箱或其他的MATLAB 程序結(jié)合使用。支持自動(dòng)的 M代碼生成。圖形用戶界面和命令行函數(shù)遺傳算法工具函數(shù)可以通過命令行和圖形用戶界面來使用遺傳算法。直接搜索工具函數(shù) 也可以通過命令行和圖形用戶界面來進(jìn)行訪問。圖形用戶界面可用來快速地定義問題、設(shè)置 算法選項(xiàng)、對(duì)優(yōu)化問題進(jìn)行詳細(xì)定義。133*遺傳算法與直接搜索工具箱還同時(shí)提供了用于優(yōu)化管理、性能監(jiān)控及終止準(zhǔn)則
5、定義的工 具,同時(shí)還提供大量標(biāo)準(zhǔn)算法選項(xiàng)。在優(yōu)化運(yùn)行的過程中,可以通過修改選項(xiàng)來細(xì)化最優(yōu)解,更新性能結(jié)果。用戶也可以提 供自己的算法選項(xiàng)來定制工具箱。使用其他函數(shù)和求解器遺傳算法與直接搜索工具箱與MATLAB 及優(yōu)化工具箱是緊密結(jié)合在一起的。用戶可以用遺傳算法或直接搜索算法來尋找最佳起始點(diǎn),然后利用優(yōu)化工具箱或用MA TLAB程序來進(jìn)一步尋找最優(yōu)解。通過結(jié)合不同的算法,可以充分地發(fā)揮MA TLAB 和工具箱的功能以提高求解的質(zhì)量。對(duì)于某些特定問題,使用這種方法還可以得到全局(最優(yōu))解。顯示、監(jiān)控和輸出結(jié)果遺傳算法與直接搜索工具箱還包括一系列繪圖函數(shù)用來可視化優(yōu)化結(jié)果。這些可視化功 能直觀地顯示
6、了優(yōu)化的過程,弁且允許在執(zhí)行過程中進(jìn)行修改。工具箱還包括一系列繪圖函數(shù)用來可視化優(yōu)化結(jié)果。這些可視化功能直觀地顯示了優(yōu)化 的過程,弁且允許在執(zhí)行過程中進(jìn)行修改。該工具箱還提供了一些特殊繪圖函數(shù),它們不僅 適用于遺傳算法,還適用于直接搜索算法。適用于遺傳算法的函數(shù)包括函數(shù)值、適應(yīng)度值和 函數(shù)估計(jì)。適用于直接搜索算法的函數(shù)包括函數(shù)值、分值直方圖、系譜、適應(yīng)度值、網(wǎng)格尺 寸和函數(shù)估計(jì)。這些函數(shù)可以將多個(gè)繪圖一弁顯示,可直觀方便地選取最優(yōu)曲線。另外,用 戶也可以添加自己的繪圖函數(shù)。使用輸出函數(shù)可以將結(jié)果寫入文件,產(chǎn)生用戶自己的終止準(zhǔn)則,也可以寫入用戶自己的 圖形界面來運(yùn)行工具箱求解器。除此之外,還可以
7、將問題的算法選項(xiàng)導(dǎo)出,以便日后再將它 們導(dǎo)入到圖形界面中去。所需的產(chǎn)品支持遺傳算法與直接搜索工具箱作為其他優(yōu)化方法的補(bǔ)充,可以用來尋找最佳起始點(diǎn),然后 可以再通過使用傳統(tǒng)的優(yōu)化技術(shù)來進(jìn)一步尋找最優(yōu)解。工具箱需要如下產(chǎn)品支持:(1) MA TLAB o (2)優(yōu)化工具箱。相關(guān)產(chǎn)品與遺傳算法與直接搜索工具箱相關(guān)的產(chǎn)品有:統(tǒng)計(jì)工具箱一一應(yīng)用統(tǒng)計(jì)算法和概率模式。神經(jīng)網(wǎng)絡(luò)工具箱一一設(shè)計(jì)和仿真神經(jīng)網(wǎng)絡(luò)。模糊邏輯工具箱一一設(shè)計(jì)和仿真基于模糊邏輯的系統(tǒng)。金融工具箱一一分析金融數(shù)據(jù)和開發(fā)金融算法。所需的系統(tǒng)及平臺(tái)遺傳算法和直接搜索工具箱對(duì)于對(duì)于運(yùn)行環(huán)境、支持平臺(tái)和系統(tǒng)的需求,可隨時(shí)通過訪 問網(wǎng)站 HYPERLI
8、NK /products/gads /products/gads了 解最新發(fā)布的信息。這里介紹的 MATLAB7.0 Release 14所需的最低配置是: Windows系列操作系統(tǒng),PentiumIII 500 CPU 、64MB RAM ,空閑硬盤空間600MB以上。.2編寫待優(yōu)化函數(shù)的 M文件為了使用遺傳算法和直接搜索工具箱,首先必須編寫一個(gè)M文件,來確定想要優(yōu)化的函數(shù)。這個(gè) M文件應(yīng)該接受一個(gè)行向量,弁且返回一個(gè)標(biāo)量。行向量的長(zhǎng)度就是目標(biāo)函數(shù)中獨(dú)134*立變量的個(gè)數(shù)。本節(jié)將通過實(shí)例解釋如何編寫這種M文件。8.7編寫m文件舉例下面的例子展示了如何為一個(gè)想要優(yōu)化的函數(shù)編寫M文件。假定我們
9、想要計(jì)算下面函數(shù)的最小值:22f (x , x ) -x 2x x 6x x 6x 1211 2122M文件確定這個(gè)函數(shù)必須接受一個(gè)長(zhǎng)度為2的行向量X,分別與變量 x1和x2相對(duì)應(yīng),弁且返回一個(gè)標(biāo)量X,其值等于該函數(shù)的值。為了編寫這個(gè) M文件,執(zhí)行如下步驟:在 MATLAB 的File菜單中選擇 New菜單項(xiàng)。選才i M-File ,將在編輯器中打開一個(gè)新的M文件。在該M文件中,輸入下面兩行代碼:function z = my_fun(x)z = x(1)八2 - 2*x(1)*x(2) + 6*x(1) + x(2)八2 - 6*x(2);在MATLAB路徑指定的目錄中保存該M文件。為了查看
10、該 M文件是否返回正確的值,可鍵入my_fun(2 3) ans =-5注意:在運(yùn)行遺傳算法工具或模式搜索工具時(shí),不要使用編輯器或調(diào)試器來調(diào)試目標(biāo)函數(shù)的M文件,否則會(huì)導(dǎo)致在命令窗口出現(xiàn)Java異常消息,弁且使調(diào)試更加困難。最大化與最小化遺傳算法和直接搜索工具箱中的優(yōu)化函數(shù)總是使目標(biāo)函數(shù)或適應(yīng)度函數(shù)最小化。也就是 說,它們求解如下形式的問題:minimize f ( x) x如果我們想要求出函數(shù)f(x)的最大值,可以轉(zhuǎn)而求取函數(shù)g( x)=f(x)的最小值,因?yàn)楹瘮?shù)g( x)最小值出現(xiàn)的地方與函數(shù)f(x)最大值出現(xiàn)的地方相同例如,假定想要求前面所描述的函數(shù)2f ( x , x ) x 2x x
11、6x1211 212x 6x的最大值,這時(shí), 22 TOC o 1-5 h z 我們應(yīng)當(dāng)編寫一個(gè)M文件來計(jì)算,來函數(shù)一+ _2(x 2x x11 226x x 6x )122的最小值。自動(dòng)代碼生成遺傳算法與直接搜索工具箱提供了自動(dòng)代碼生成特性,可以自動(dòng)生成求解優(yōu)化問題所需要的M文件。例如,圖 8.1所示的就是使用遺傳算法工具的自動(dòng)代碼生成特性所產(chǎn)生的M文件。另外,圖形用戶界面所輸出的優(yōu)化結(jié)果可以作為對(duì)來自命令行調(diào)用代碼的一種解釋,這 些代碼還用于使例程和保護(hù)工作自動(dòng)化。*135*function psuiflieoptions - gaoptions;options 二 gaoptions(o
12、pt ions fpopuiationsize 110 10 】);options = aaoptions(options.MigrationDirectionr ,*ootht):.AJgontim optiomoptions = flaoptions(optionsGenerations .150):options = flaoptions(optionst MutsticfiFcn, t( Pnutationgaussian 1 1 1);options = Qaoption$(optlonitPlotFcns t PQapiotO9stf);VisuabAitiQiiophomopti
13、ons - Qaoptions( opt ions, HybridFcn* .nftiinunc);(all io Ophmizatofi Tooltwix, fval , reason, output , POPULATION, SCORES = ga( packieyfcn, 5 1options)圖8.1遺傳算法M文件代碼的自動(dòng)生成8.10使用遺傳算法工具初步遺傳算法與直接搜索工具箱包含遺傳算法工具和直接搜索工具。從本節(jié)至章末,將主要 介紹其中的遺傳算法工具及其使用方法。本節(jié)主要介紹遺傳算法工具使用的初步知識(shí),內(nèi)容包括:遺傳算法使用規(guī)則,遺傳算法 工具的使用方式,舉例說明如何使用遺傳算法
14、來求解一個(gè)優(yōu)化問題,解釋遺傳算法的一些基 本術(shù)語,最后闡述遺傳算法的工作原理與工作過程。8.1.3遺傳算法使用規(guī)則遺傳算法是一種基于自然選擇、生物進(jìn)化過程來求解問題的方法。遺傳算法反復(fù)修改對(duì) 于個(gè)體解決方案的種群。在每一步,遺傳算法隨機(jī)地從當(dāng)前種群中選擇若干個(gè)體作為父輩, 弁且使用它們產(chǎn)生下一代的子種群。在連續(xù)若干代之后,種群朝著優(yōu)化解的方向進(jìn)化。我們 可以用遺傳算法來求解各種不適宜于用標(biāo)準(zhǔn)優(yōu)化算法求解的優(yōu)化問題,包括目標(biāo)函數(shù)不連續(xù)、 不可微、隨機(jī)或高度非線性的問題。遺傳算法在每一步使用下列三類規(guī)則從當(dāng)前種群來創(chuàng)建下一代:選擇規(guī)則(Selection rules ),選擇對(duì)下一代種群有貢獻(xiàn)的個(gè)
15、體,稱為父輩。交叉規(guī)則(Crossover rules ),將兩個(gè)父輩結(jié)合起來構(gòu)成下一代的子輩種群。變異規(guī)則(Mutation rules ),施加隨機(jī)變化給父輩個(gè)體來構(gòu)成子輩。8.1 中。遺傳算法與標(biāo)準(zhǔn)優(yōu)化算法主要在兩個(gè)方面有所不同,它們的比較情況歸納于表*136表8.1遺傳算法與標(biāo)準(zhǔn)優(yōu)化算法比較標(biāo)準(zhǔn)算法遺傳算法11每次迭代產(chǎn)生一個(gè)單點(diǎn),逼十個(gè)優(yōu)化解點(diǎn)的序列每次迭代產(chǎn)生一個(gè)種群,一個(gè)優(yōu)化解種群逼近通過確定性的計(jì)算在該序列中選 .擇下一個(gè)點(diǎn)通過隨機(jī)進(jìn)化選擇計(jì)算來選擇下 一代種群8.11遺傳算法使用方式遺傳算法工具有兩種使用方式:以命令行方式調(diào)用遺傳算法函數(shù)ga o使用遺傳算法工具,從圖形用戶界
16、面到遺傳算法。本節(jié)對(duì)這些方式做一個(gè)簡(jiǎn)要的介紹。8.1.4在命令行調(diào)用函數(shù)ga對(duì)于在命令行使用遺傳算法,可以用下列語法調(diào)用遺傳算法函數(shù)ga:x fval = ga(fitnessfun, nvars, options)其中: fitnessfun 是適應(yīng)度函數(shù)句柄;nvars是適應(yīng)度函數(shù)的獨(dú)立變量的個(gè)數(shù);options是一個(gè)包含遺傳算法選項(xiàng)參數(shù)的結(jié)構(gòu)。如果不傳遞選項(xiàng)參數(shù),則ga使用它本身的缺省選項(xiàng)值。函數(shù)所給出的結(jié)果:fval 適應(yīng)度函數(shù)的最終值;x 最終值到達(dá)的點(diǎn)。我們可以十分方便地把遺傳算法工具輸出的結(jié)果直接返回到MATLAB 的workspace (工作空間),或以不同的選項(xiàng)從M文件多次調(diào)
17、用函數(shù)ga來運(yùn)行遺傳算法。調(diào)用函數(shù)ga時(shí),需要提供一個(gè)選項(xiàng)結(jié)構(gòu)options。后面的有關(guān)章節(jié)對(duì)于在命令行使用函數(shù)ga和創(chuàng)建選項(xiàng)結(jié)構(gòu)options提供了詳細(xì)的描述。8.1.5通過GUI使用遺傳算法遺傳算法工具有一個(gè)圖形用戶界面GUI ,它使我們可以使用遺傳算法而不用工作在命令行方式。為了打開遺傳算法工具,可鍵入gatool打開的遺傳算法工具圖形用戶界面如圖8.2所示。137*顯示參數(shù)描述輸入適應(yīng)度函數(shù)輸入適應(yīng)度函數(shù)的變量數(shù)目開始遺傳算法顯示結(jié)果圖8.2 遺傳算法工具為了使用遺傳算法工具,首先必須輸入下列信息:Fitness function(適應(yīng)度函數(shù))欲求最小值的目標(biāo)函數(shù)。輸入適應(yīng)度函數(shù)的形式
18、為fitnessfun ,其中fitnessfun.m是計(jì)算適應(yīng)度函數(shù)的M文件。在前面 一編寫待優(yōu)化函數(shù)的 M文件II 一節(jié)里已經(jīng)解釋了如何編寫這種M文件。符號(hào) 產(chǎn)生一個(gè)對(duì)于函數(shù)fitnessfun的函數(shù)句柄。Number of variables (變量個(gè)數(shù))適應(yīng)度函數(shù)輸入向量的長(zhǎng)度。對(duì)于一編寫待優(yōu)化函數(shù)的M文件| 一節(jié)所描述的函數(shù)My_fun ,這個(gè)參數(shù)是2。點(diǎn)擊Start按鈕,運(yùn)行遺傳算法,將在 Status and Results (狀態(tài)與結(jié)果)窗格中顯示出相應(yīng)的運(yùn)行結(jié)果。在Options窗格中可以改變遺傳算法的選項(xiàng)。為了查看窗格中所列出的各類選項(xiàng),可單擊與之相連的符號(hào)一十8.12 舉
19、例:Rastrigin 函數(shù)本節(jié)介紹一個(gè)例子,講述如何尋找Rastrigin 函數(shù)的最小值和顯示繪制的圖形。Rastrigin函數(shù)是最常用來測(cè)試遺傳算法的一個(gè)典型函數(shù)。Rastrigin函數(shù)的可視化圖形顯示,它具有多個(gè)局部最小值和一個(gè)全局最小值,遺傳算法可以幫助我們確定這種具有多個(gè)局部最小值函數(shù)的 最優(yōu)解。8.1.6 Rastrigin 函數(shù)138*具有兩個(gè)獨(dú)立變量的Rastrigin函數(shù)定義為22Ras( x) =20 x x 10(cos 2 x cos 2 x )1212Rastrigin函數(shù)的圖形如圖8,3所示。工具箱包含一個(gè)M文件,即rastriginsfcn.m ,是用來計(jì)算 Ra
20、strigin函數(shù)值的。全局最小點(diǎn)0, 0圖8.3 Rastrigin函數(shù)圖形如圖8.3所示,Rastrigin函數(shù)有許多局部最小值 在圖上顯示為一谷底(valleys ) II。然而,該函數(shù)只有一個(gè)全局最小值,出現(xiàn)在x-y平面上的點(diǎn)0, 0處,正如圖中豎直線指示的那樣,函數(shù)的值在那里是0。在任何不同于0, 0的局部最小點(diǎn)處,Rastrigin函數(shù)的值均大于0。局部最小處距原點(diǎn)越遠(yuǎn),該點(diǎn)處 Rastrigin函數(shù)的值越大。Rastrigin函數(shù)之所以最常用來測(cè)試遺傳算法,是因?yàn)樗性S多局部最小點(diǎn),使得用標(biāo)準(zhǔn)的、基于梯度的查找全局最小的方法十分困難。圖8.4所示是 Rastrigin函數(shù)的輪廓線
21、,它顯示出最大最小交替變化的情形。139*全局最小點(diǎn)0, 0圖8.4 Rastrigin函數(shù)的輪廓線尋找Rastrigin函數(shù)的最小值本節(jié)解釋如何使用遺傳算法來尋找Rastrigin函數(shù)的最小值。注意:因?yàn)檫z傳算法使用隨機(jī)數(shù)據(jù)來進(jìn)行它的搜索,所以該算法每一次運(yùn)行時(shí)所返回的 結(jié)果會(huì)稍微有些不同。為了查找最小值,進(jìn)行下列步驟:在命令行鍵入gatool ,打開遺傳算法工具。在遺傳算法工具的相應(yīng)欄目,輸入適應(yīng)度函數(shù)和變量個(gè)數(shù)。在一Fitness function (適應(yīng)度函數(shù)) II文本框中,輸入 rastriginsfcn ;在 一Number of variables (變量個(gè)數(shù))II文本框中,輸
22、入2,這就是 Rastrigin函數(shù)獨(dú)立變量的個(gè)數(shù)。這一步操作如圖8.5所示。Fitness function:|rastrigmsfcnNumber of variables:|2圖8.5輸入適應(yīng)度函數(shù)與變量個(gè)數(shù)在一Run solver (運(yùn)行求解器)II窗格中,單擊 Start按鈕,如圖 8.6所示圖8.6 單擊運(yùn)行求解器 Start按鈕在算法運(yùn)行的同時(shí),-Current generation(當(dāng)前代數(shù))II文本框中顯示出當(dāng)前的代數(shù)。通過點(diǎn)擊一暫停(Pause) II按鈕,可以使算法臨時(shí)暫停一下。當(dāng)這樣做的時(shí)候,該按鈕的名字變?yōu)?40*-Resume (恢復(fù))II。為了從暫停處恢復(fù)算法的運(yùn)
23、行,可單擊這個(gè)-Resume II按鈕。當(dāng)算法完成時(shí),-Status and results II窗格出現(xiàn)如圖 8,7所示的情形。Status and results:GA running.最終點(diǎn)的適應(yīng)度函數(shù)值GA terninated4Fitness function value: 0*0067749206244585025 Optinization terminated:Final pointMaxinun number o genecations exceeded.最終點(diǎn)圖8.7 狀態(tài)與結(jié)果顯示-Status and results II窗格顯示下列信息:算法終止時(shí)適應(yīng)度函數(shù)的最終值:F
24、itness function value:0.0067749206244585025注意:所顯示的值非常接近于Rastrigin函數(shù)的實(shí)際最小值0。一遺傳算法舉例II 一節(jié)描述了一些方法,可以用來得到更接近實(shí)際最小值的結(jié)果。算法終止的原因:Optimization terminated:maximum number of generations exceeded.即退出的原因是:超過最大代數(shù)而導(dǎo)致優(yōu)化終止。在本例中,算法在 100代后結(jié)束,這是-Generations (代數(shù))II選項(xiàng)的缺省值,此選項(xiàng)規(guī)定了算法計(jì)算的最大代數(shù)。最終點(diǎn),在本例中是0.00274- 0.00516。從命令行查找最
25、小值為了從命令行查找Rastrigin函數(shù)的最小值,可鍵入x fval reason = ga(rastriginsfcn, 2)這將返回x =8.1.7 -0.0052fval =reason =Optimization terminated:maximum number of generations exceeded.其中:x是算法返回的最終點(diǎn);fval是該最終點(diǎn)處適應(yīng)度函數(shù)的值;reason是算法結(jié)束的原因。顯示繪制圖形-Plots (繪圖)II窗格可以顯示遺傳算法運(yùn)行時(shí)所提供的有關(guān)信息的各種圖形。這些信息可以幫助我們改變算法的選項(xiàng),改進(jìn)算法的性能。例如,為了繪制每一代適應(yīng)度函數(shù)的最佳值
26、 和平均值,選中復(fù)選框-Best fitness (最佳適應(yīng)度)II ,如圖8,8所示。141*PlotsPlot interval: (1p Bestfitness 廠 Best individual 廠 Distance avHTHB van ai nwb0* n ravr Expectation 廠 Genealogy- Range Score diversily 廠 ScoresF SelectionPl StoppingI- Custom function: |圖8.8 繪圖對(duì)話框當(dāng)點(diǎn)擊Start按鈕時(shí),遺傳算法工具顯示每一代適應(yīng)度函數(shù)的最佳值和平均值的繪制圖形。當(dāng)算法停止時(shí),所出現(xiàn)
27、的圖形如圖8.9所示。最佳值 0.0067796 平均值 0.01478818r16 ; 14卜 12 102 H Q 1L1i11111LjUI 102030405060708090100-*generation圖8.9 各代適應(yīng)度函數(shù)的最佳值和平均值在每一代中,圖的底部的點(diǎn)表示最佳適應(yīng)度值,而其上的點(diǎn)表示平均適應(yīng)度值。圖的頂部還顯示出當(dāng)前一代的最佳值0.0067796和平均值 0.014788。為了得到最佳適應(yīng)度值減少到多少為更好的直觀圖形,我們可以將圖中y軸的刻度改變?yōu)閷?duì)數(shù)刻度。為此,需進(jìn)行如下操作:(1)從繪圖窗格的Edit (編輯)菜單中選擇Yxes Properties (坐標(biāo)軸屬
28、性)II ,打開屬性編輯器,如圖 8.10所示。142*單擊Y表項(xiàng)選擇對(duì)數(shù)刻度圖8.10繪圖屬性編輯器(2)點(diǎn)擊Y表項(xiàng)。 在一Scale (刻度)II窗格,選擇“ Log (對(duì)數(shù))”。繪制的圖形如圖8.11所示。10最佳值 0.0067796 平均值 0.01478810101010Mop102030405060708090100generation*143圖8.11每一代適應(yīng)度函數(shù)最佳值和平均值的對(duì)數(shù)圖形典型情況下,在早期各代中,當(dāng)個(gè)體離理想值較遠(yuǎn)時(shí),最佳值會(huì)迅速得到改進(jìn)。在后來 各代中,種群越接近最佳點(diǎn),最佳值改進(jìn)得越慢。傳算法的一些術(shù)語本節(jié)解釋遺傳算法的一些基本術(shù)語,主要包括:適應(yīng)度函數(shù)
29、(Fitness Functions )。個(gè)體(Individuals )。種群(Populations )和代(Generations )。適應(yīng)度值(Fitness Values )和最佳適應(yīng)度值( Best Fitness Values ); 父輩和子輩(Parents and Children )。適應(yīng)度函數(shù)所謂適應(yīng)度函數(shù)就是想要優(yōu)化的函數(shù)。對(duì)于標(biāo)準(zhǔn)優(yōu)化算法而言,這個(gè)函數(shù)稱為目標(biāo)函數(shù)。 該工具箱總是試圖尋找適應(yīng)度函數(shù)的最小值。我們可以將適應(yīng)度函數(shù)編寫為一個(gè)M文件,作為輸入?yún)?shù)傳遞給遺傳算法函數(shù)。個(gè)體一個(gè)個(gè)體是可以施加適應(yīng)度函數(shù)的任意一點(diǎn)。一個(gè)個(gè)體的適應(yīng)度函數(shù)值就是它的得分或評(píng)價(jià)。例如,如
30、果適應(yīng)度函數(shù)是22(3 x4) (x1232f (x , x , x )(2 x 1)2)1232, -3, 1 )的得分genes )。則向量(2, -3, 1 )就是一個(gè)個(gè)體,向量的長(zhǎng)度就是問題中變量的個(gè)數(shù)。個(gè)體(是 f(2,-3, 1) = 51 。個(gè)體有時(shí)又稱為基因組或染色體組( genome ),個(gè)體的向量項(xiàng)稱為基因(種群與代所謂種群是指由個(gè)體組成的一個(gè)數(shù)組或矩陣。例如,如果個(gè)體的長(zhǎng)度是100,適應(yīng)度函數(shù)中變量的個(gè)數(shù)為3,我們就可以將這個(gè)種群表示為一個(gè)100X3的矩陣。 相同的個(gè)體在種群中可以出現(xiàn)不止一次。例如,個(gè)體 (2, -3, 1)就可以在數(shù)組的行中出現(xiàn)多次。每一次迭代,遺傳算
31、法都對(duì)當(dāng)前種群執(zhí)行一系列的計(jì)算,產(chǎn)生一個(gè)新的種群。每一個(gè)后 繼的種群稱為新的一代。多樣性多樣性或差異( Diversity )涉及一個(gè)種群的各個(gè)個(gè)體之間的平均距離。若平均距離大,則種群具有高的多樣性;否則,其多樣性低。在圖8.12中,左面的種群具有高的多樣性,亦即差異大;而右面的種群多樣性低,亦即差異小。144*+ High diversity0L0| Low diversity+ +j468圖8.12種群多樣性比較多樣性是遺傳算法必不可少的本質(zhì)屬性,這是因?yàn)樗苁惯z傳算法搜索一個(gè)比較大的解 的空間區(qū)域。8.17適應(yīng)度值和最佳適應(yīng)度值個(gè)體的適應(yīng)度值就是該個(gè)體的適應(yīng)度函數(shù)的值。由于該工具箱總是查
32、找適應(yīng)度函數(shù)的最 小值,所以一個(gè)種群的最佳適應(yīng)度值就是該種群中任何個(gè)體的最小適應(yīng)度值。8.18父輩和子輩為了生成下一代,遺傳算法在當(dāng)前種群中選擇某些個(gè)體,稱為父輩,弁且使用它們來生 成下一代中的個(gè)體,稱為子輩。典型情況下,該算法更可能選擇那些具有較佳適應(yīng)度值的父 輩。8.1.12遺傳算法如何工作本節(jié)簡(jiǎn)要介紹遺傳算法的工作原理或工作過程,內(nèi)容包括:算法要點(diǎn);初始種群;生成 下一代;后一代的繪圖;算法的停止條件。算法要點(diǎn)下面的要點(diǎn)總結(jié)了遺傳算法是如何工作的:(1)首先,算法創(chuàng)建一個(gè)隨機(jī)種群。(2)接著,算法生成一個(gè)新的種群序列,即新的一代。在每一步,該算法都使用當(dāng)前一代 中的個(gè)體來生成下一代。為了
33、生成新一代,算法執(zhí)行下列步驟:(a)通過計(jì)算其適應(yīng)度值,給當(dāng)前種群的每一個(gè)成員打分。(b)確定原來的適應(yīng)度值的比例尺度,將其轉(zhuǎn)換為更便于使用的范圍內(nèi)的值。(c)根據(jù)它們的適應(yīng)度選擇父輩。mutation )- 算(d)由父輩產(chǎn)生子輩。子輩的產(chǎn)生可以通過隨機(jī)改變一個(gè)單個(gè)父輩,亦即變異( 來進(jìn)行,也可以通過組合一對(duì)父輩的向量項(xiàng),亦即交叉(crossover )來進(jìn)行。(e)用子輩替換當(dāng)前種群,形成下一代。(3)最后,若停止準(zhǔn)則之一得到滿足,則該算法停止。關(guān)于停止準(zhǔn)則,可參見 法的停止條件II 一節(jié)。*1458.19初始種群遺傳算法總是以產(chǎn)生一個(gè)隨機(jī)的初始種群開始,如圖8.13所示。1X0.6040
34、2 L0 r0.2L一0.4 卜-0.61米 Initial population 0.8 L.-0.8-100,51圖8.13初始種群在本例中,初始種群包含 20個(gè)個(gè)體,這恰好是-Population (種群)II選項(xiàng)中的-Populationsize (種群尺度)II的缺省值。注意:初始種群中的所有個(gè)體均處于圖上右上角的那個(gè)象限,也就是說,它們的坐標(biāo)處于0和1之間,這是因?yàn)?Population II選項(xiàng)中的-Initial range(初始范圍)II的缺省值是0; 1。如果已知函數(shù)的最小點(diǎn)大約位于何處,就可以設(shè)置一個(gè)適當(dāng)?shù)?Initial range II,以便使該點(diǎn)處于那個(gè)范圍的中間附
35、近。例如,如果確信Rastrigin函數(shù)的最小值在點(diǎn)0, 0附近,那么就可以直接設(shè)置 -Initial range II為-1;1。然而,正如本例所顯示的那樣,即使沒有給-Initial range II設(shè)置一個(gè)理想的值,遺傳算法也還是能夠找到那個(gè)最小值。8.20產(chǎn)生下一代在每一步,遺傳算法使用當(dāng)前種群來產(chǎn)生子輩,即獲得下一代。算法在當(dāng)前種群中選擇一組個(gè)體,稱為父輩,這些個(gè)父輩將其genes 亦即其向量中的項(xiàng)一一貢獻(xiàn)給它們的子輩。遺傳算法通常選擇那些具有較好適應(yīng)度值的個(gè)體作為父輩。我們可以在-Selection (選擇)|選項(xiàng)的一Selection function(選擇函數(shù))II文本框中指定
36、遺傳算法用來選擇父輩的函數(shù)。遺傳算法對(duì)于下一代產(chǎn)生三類子輩:優(yōu)良子輩 (Elite children ),是在當(dāng)前代中具有最佳適應(yīng)度值的那些個(gè)體。這些個(gè)體子輩存活到下一代。交叉子輩(Crossover children ),是由一對(duì)父輩向量組合產(chǎn)生的。變異子輩(Mutation children ),是對(duì)一個(gè)單個(gè)父輩引入隨機(jī)改變即變異產(chǎn)生的。圖8.14表示了這三個(gè)類型的子輩。146*優(yōu)良子輩圖8.14 三類子輩在一8.335變異與交叉II 一節(jié)解釋如何指定遺傳算法產(chǎn)生的每一類子輩的數(shù)目,以及用來執(zhí)行完成交叉和變異的函數(shù)交叉子輩算法通過組合當(dāng)前種群中的父輩對(duì)(Pair)來產(chǎn)生交叉子輩。在子輩向量
37、的每一個(gè)相同位置處,缺省的交叉函數(shù)在兩個(gè)父輩之一的相同位置處隨機(jī)選擇一項(xiàng),即基因,弁將它指派給 其子輩。變異子輩算法通過隨機(jī)改變個(gè)體父輩中的基因而產(chǎn)生變異子輩。按照缺省,算法給父輩增加一個(gè) 高斯分布的隨機(jī)向量。圖8.15表示出初始種群的子輩,也即第二代種群,弁且指出它們是否為優(yōu)良子輩、交叉 子輩或變異子輩。*-02 卜,-1:x04 hX0-0.41-0.61T080.2-08 FEhte children x Crossover children Mutation children-1-0.500.511152147圖8.15 初始種群的子輩8.23后代圖形繪制圖8.16展示出在迭代60次,
38、80次,95次,100次時(shí)的種群的圖形。148*10.80.60.40.20-0.2一 0.4-0.6-1-0.8Iteration 950.5圖8.16 在迭代60, 80, 95, 100 次時(shí)的種群隨著代數(shù)的增加,種群中的個(gè)體靠近在一起,且逼近最小值點(diǎn)0, 0。8.24算法的停止條件遺傳算法使用下列5個(gè)條件來確定何時(shí)停止:Generations (代數(shù))當(dāng)產(chǎn)生的代的數(shù)目達(dá)到規(guī)定的代數(shù)的值時(shí),算法停止。*Time limit (時(shí)限)在運(yùn)行時(shí)間的秒數(shù)等于時(shí)限時(shí),算法停止149Fitness limit (適應(yīng)度限)當(dāng)適應(yīng)度函數(shù)的值對(duì)于當(dāng)前種群的最佳點(diǎn)小于或等于適應(yīng)度限時(shí),算法停止。Stal
39、l generations (停滯代數(shù))在連續(xù)繁殖的時(shí)間序列中,若長(zhǎng)時(shí)間不繁殖新代,亦即目標(biāo)函數(shù)無改進(jìn),到達(dá)停滯代數(shù)規(guī)定的代數(shù)時(shí),則算法停止。Stall time limit (停滯時(shí)限)一一在秒數(shù)等于停滯時(shí)限的時(shí)間間隔期間,若目標(biāo)函數(shù)無改進(jìn),則算法停止。若這5個(gè)條件中任何一個(gè)條件一旦滿足,則該算法停止。我們可以在遺傳算法工具的-Stopping criteria(停止標(biāo)準(zhǔn))II選項(xiàng)中指定這些標(biāo)準(zhǔn)的值。它們的缺省值如圖8.17所示:El Stoppinq criteria圖8.17停止標(biāo)準(zhǔn)的缺省值當(dāng)運(yùn)行遺傳算法時(shí),-Status (狀態(tài))II面板顯示這些導(dǎo)致算法停止的標(biāo)準(zhǔn)。ime limit
40、(時(shí)限)II選項(xiàng)與-Stall time limit II選項(xiàng)可以用來防止算法運(yùn)行過長(zhǎng)的時(shí)間。如 果算法由于這兩個(gè)條件之一而停止,則可以通過相應(yīng)增加ime limit II或一Stall time limit II的值來改善運(yùn)行的結(jié)果。8.3使用遺傳算法工具求解問題本節(jié)首先概括使用遺傳算法工具GUI的一般步驟,然后介紹如何從命令行使用遺傳算法工具,最后通過例子,詳細(xì)說明如何使用遺傳算法工具來求解優(yōu)化問題。8.1.13使用遺傳算法 GUI在前面一章,已經(jīng)介紹了使用遺傳算法工具的初步知識(shí)。本節(jié)將簡(jiǎn)要?dú)w納使用遺傳算法 工具GUI來求解優(yōu)化問題的一般步驟,內(nèi)容包括:打開遺傳算法工具;在遺傳算法工具中定
41、 義問題;運(yùn)行遺傳算法;暫停和停止運(yùn)算;圖形顯示;創(chuàng)建用戶圖形函數(shù);復(fù)現(xiàn)運(yùn)行結(jié)果; 設(shè)置選項(xiàng)參數(shù);輸入輸出參數(shù)及問題;從最后種群繼續(xù)運(yùn)行遺傳算法。打開遺傳算法工具在MA TLAB 窗口中輸入 gatool ,打開、進(jìn)入遺傳算法工具,初啟時(shí)的界面顯示如圖8.18所示。150*圖8.18遺傳算法工具初啟時(shí)的界面8.25在遺傳算法工具中定義問題在下列兩個(gè)文本框中定義所要解決的問題:(1)適應(yīng)度函數(shù) 一一求解的問題是求目標(biāo)函數(shù)的最小值。輸入一個(gè)計(jì)算適應(yīng)度函數(shù)的M文件函數(shù)的句柄。(2)變量個(gè)數(shù)一一適應(yīng)度函數(shù)的獨(dú)立變量個(gè)數(shù)。注意:當(dāng)運(yùn)行遺傳算法工具時(shí)不要用-Editor/Debugger (編輯/調(diào)試)I
42、I功能來調(diào)試目標(biāo)函數(shù)的M文件,而要從命令行直接調(diào)用目標(biāo)函數(shù)或把M文件輸入到遺傳算法函數(shù)ga。為了方便調(diào)試,可以在遺傳算法工具中把問題輸出到MATLAB 工作窗中o如圖8.19所示,輸入前面章節(jié)所介紹的Rastrigin函數(shù)或my_fun函數(shù)作為適配度函數(shù),它們的變量個(gè)數(shù)為2。圖8.19輸入適應(yīng)度函數(shù)與變量個(gè)數(shù)8.26運(yùn)行遺傳算法151*要運(yùn)行遺傳算法,在Run solver (運(yùn)行求解器)中單擊 Start按紐,如圖 8.20所示。圖8.20 單擊Start按鈕在 Status and results ”這時(shí),在“Current generation (當(dāng)前代)”文本框中顯示當(dāng)前代的數(shù)目, 窗
43、格顯示一GA running II等信息,如圖8.23所示。Current generation: 48Status and resultsGA cunning.圖8.21當(dāng)前代數(shù)和狀態(tài)與結(jié)果窗格當(dāng)遺傳算法停止時(shí), Status and results ”窗格顯示:一GA terminated ( GA 終止)II 信息。最后一代最佳個(gè)體的適應(yīng)度函數(shù)值。算法停止的原因。最終點(diǎn)的坐標(biāo)。圖8.22顯示當(dāng)運(yùn)行例子一Rastrigin函數(shù)|遺傳算法停止時(shí)的信息Status and results:GA running.GA terminated.Fitness function value: 0.00
44、67749206244585025 Optimizacion ceruinated:maximum number of generarions exceeded.Final point1|20.00274-0.00516圖8.22 Rastrigin函數(shù)的遺傳算法運(yùn)行結(jié)果在遺傳算法工具中,當(dāng)遺傳算法運(yùn)行時(shí)可以更改多個(gè)參數(shù)設(shè)置。所做的改變將被應(yīng)用到下一代,即在下一代將按照新設(shè)置的參數(shù)運(yùn)行。在下一代開始但尚未應(yīng)用改變的參數(shù)之前,在一Status and results ”窗格顯示信息一Changes pending 。 II而在下一代開始且應(yīng)用了改變的參數(shù)時(shí),在一Status and result
45、s ”窗格顯示信息一Changes applied。II這樣在遺傳算法運(yùn)行時(shí)更改了參數(shù)*152設(shè)置產(chǎn)生的輸出信息如圖8.23所示。Status and results:GA running.Changes pending.Changes applied.圖8.23遺傳算法運(yùn)行時(shí)更改了參數(shù)設(shè)置暫停和停止運(yùn)算遺傳算法的暫停和停止運(yùn)行,可以通過下面操作繼續(xù)運(yùn)行:?jiǎn)螕舭粹o “Pause (暫停)”,算法暫停運(yùn)行。該按鈕上的文字變?yōu)椤癛esume(恢復(fù)):單擊這個(gè)“ Resume ” 按鈕,即恢復(fù)遺傳算法繼續(xù)運(yùn)行。單擊按鈕“ Stop”,算法停止運(yùn)行。一Status and resul ts窗口顯示停止
46、運(yùn)行時(shí)當(dāng)前代最佳點(diǎn)的適應(yīng)度函數(shù)值。注意:如果單擊按鈕“ Stop”,然后通過單擊按鈕 “ Start”再次運(yùn)行時(shí),遺傳算法將以新 的隨機(jī)初始種群或在 “ Initial population(初始種群)”文本框中專門指定的種群運(yùn)行。如果需要在算法停止后能再次恢復(fù)運(yùn)行,則可以通過交替地單擊按鈕“ Pause”和“ Resume”來控制算法暫?;蚶^續(xù)運(yùn)行。遺傳算法的停止運(yùn)行常常是通過設(shè)置算法停止準(zhǔn)則來進(jìn)行控制的。使用停止準(zhǔn)則,設(shè)置停止準(zhǔn)則參數(shù), 可以解決遺傳算法在何時(shí)停止運(yùn)行的控制問題。這樣,也就不用通過單擊“ Stop ”按鈕來人為地控制算法運(yùn)行的停止。遺傳算法有五個(gè)停止準(zhǔn)則或條件,其中任何一個(gè)
47、條件滿 足,算法即停止運(yùn)行。這些停止準(zhǔn)則是:代數(shù)一一算法運(yùn)行到規(guī)定的代數(shù)。時(shí)限一一算法運(yùn)行到規(guī)定的時(shí)間。適應(yīng)度限一一當(dāng)前代的最佳適應(yīng)度值小于或等于規(guī)定的值。停滯代數(shù)一一適應(yīng)度函數(shù)值在運(yùn)行規(guī)定的代數(shù)后沒有改進(jìn)。停滯時(shí)限一一適應(yīng)度函數(shù)值在運(yùn)行規(guī)定時(shí)間后沒有改進(jìn)。如果想使算法一直運(yùn)行到按下按鈕“ Pause”或“ Stop”時(shí)才停下來,可以改變這些停止準(zhǔn)則的參數(shù)值:設(shè)置 “ Generations (代數(shù))”為 Inf。設(shè)置 “ Time ” 為 Inf。設(shè)置 “ Fitness limit ”為 Info設(shè)置 “ Stall generations ” 為 Inf。設(shè)置 “ Stall time
48、limit ” 為 Inf。圖8.24顯示了這些更改后的設(shè)置。153*3 Stopping criteriaI圖8,24 改變停止準(zhǔn)則參數(shù)注意:在命令行中調(diào)用遺傳算法函數(shù)ga時(shí),弁不使用這些參數(shù)設(shè)置,就好像是不按下 -etrl+ C II鍵,函數(shù)就會(huì)永遠(yuǎn)運(yùn)行而不會(huì)停止。其實(shí)相反,可以設(shè)置 “ Generations ”或者“ Time”做 為限值來控制算法停止運(yùn)行。圖形顯示圖8.25為“ Plots (繪圖)”窗格,可以用來控制顯示遺傳算法運(yùn)行結(jié)果變化的圖形。PlatsPlot interval: 7 Best fitness|7Best in dividual廠Distance Expect
49、ation匚Genealogy廣RangeP- Score diversitypScoresSelectionI- Stopping Custom function: I圖8.25在繪圖窗格選擇輸出項(xiàng)選擇所要顯示的圖形參數(shù)的復(fù)選框。例如,如果選擇 “Best Fitness (最佳適應(yīng)度)”和“Bestindividual(最佳個(gè)體)”,運(yùn)行例子“ Rastrigin函數(shù)”,其顯示輸出如圖8.26所示。154* Genetic Algorithm-jnj xjFie EM View Insert Took Window Help10510203040506070809010000go6 wsJ
50、no642U*八 Generationx I。Current best genome12Genome length (2)stopBest: 0.0081106 Mean: 2 2774 20 15圖8.26 Rastrigin函數(shù)最佳適應(yīng)度與最佳個(gè)體圖8.28上部離散點(diǎn)為每一代的最佳適應(yīng)度值和平均適應(yīng)度值,下部柱型圖表示當(dāng)前代最佳適應(yīng)度值對(duì)應(yīng)的點(diǎn)的坐標(biāo)。注意:當(dāng)要想顯示兩個(gè)以上參數(shù)項(xiàng)的圖形時(shí),可選擇相應(yīng)參數(shù)項(xiàng)的復(fù)選框,單獨(dú)打開一個(gè)較大的圖形窗口即可。8.29舉例一一創(chuàng)建用戶繪圖函數(shù)如果工具箱中沒有符合想要輸出圖形的繪圖函數(shù),用戶可以編寫自己的繪圖函數(shù)。遺傳 算法在每次運(yùn)行時(shí)調(diào)用這個(gè)函數(shù),畫出
51、圖形。這里舉例說明怎樣創(chuàng)建一個(gè)用戶繪圖函數(shù)來顯 示從前一代到當(dāng)前代最佳適應(yīng)度值的變化情形,內(nèi)容包括:創(chuàng)建繪圖函數(shù),使用繪圖函數(shù), 繪圖函數(shù)如何作用。(1)創(chuàng)建繪圖函數(shù)為了創(chuàng)建繪圖函數(shù),在 MATLAB 編輯器中復(fù)制、粘貼下列代碼到一個(gè)新的M文件。Function state = gaplotchange(options, state, flag)% GAPLOTCHANGE Plots the change in the best score from the% previous generation.persistent last_best% Best score in the previo
52、us generationif (strcmp(flag,init)% Set up the plotset(gca,xlim,1, options.Generations,Yscale , log);hold on;xlabel Generationtitle(Change in Best Fitness Value)endbest = min(state.Score) ;% Best score in the current generationif state.Generation = 0% Set last_best to best 。155*last_best = best ;els
53、echange = last_best - best ; % Change in best scorelast_best = best ;plot(state.Generation,change,.r) ; title(Change in Best Fitness Value) end然后在MATLAB 路徑下將其存為 M文件gaplotchange.m 。(2)使用繪圖函數(shù)為了使用用戶繪圖函數(shù), 在繪圖(Plots) ”窗格中選擇 “Custom function (定制函數(shù))” 并且在其右邊的文本框中輸入函數(shù)名gaplotchange。為了對(duì)用戶繪圖函數(shù)輸出的最佳適應(yīng)度值圖形進(jìn)行比較,在這
54、里也選擇“ Best Fitness 。現(xiàn)在,如果運(yùn)行例子函數(shù)Rastrigin ,顯示出來的圖形如圖 8.27所示。100Generation最佳適應(yīng)度值的變化to10101010a90100至topGeneration最佳值 0.0021904 平均值 0.49832圖8.27用戶繪圖函數(shù)輸出的Rastrigin函數(shù)運(yùn)行結(jié)果3090注意:因?yàn)閳D中下半部的y-軸為對(duì)數(shù)刻度,所以圖形中的離散點(diǎn)僅僅顯示大于零的點(diǎn)。對(duì)數(shù)刻度能顯示適應(yīng)度函數(shù)的微小變化,而上面的圖形則不能顯示出微小變化。(3)繪圖函數(shù)如何作用繪圖函數(shù)使用包含在下面結(jié)構(gòu)體中的信息,它們由遺傳算法傳遞給繪圖函數(shù)作為輸入?yún)?shù):option
55、s (參數(shù))一 當(dāng)前參數(shù)設(shè)置。state (狀態(tài)) 一 關(guān)于當(dāng)前代的信息。flag (曲線標(biāo)志)一曲線表示為對(duì)數(shù)等的當(dāng)前狀態(tài)。繪圖函數(shù)的主要作用可以描述如下:persistent last_best生成永久變量last best 即前一代的最佳值。永久變量保存著多種圖形函數(shù)調(diào)用類型。156* set(gca, xlim , 1, options.Generations, Yscale, log) ;在遺傳算法運(yùn)行前建立圖形。options.Generation 為代數(shù)的最大值。best = min(state.Score)state.Score包含當(dāng)前代中所有個(gè)體的得分值,變量best是其中最
56、小的得分值。結(jié)構(gòu)體狀態(tài)文本框的完整描述可參見-圖形參數(shù)II 一節(jié)。change = last_best - best變量change是前一代的最佳值減去當(dāng)前代的最佳值。plot(state.Generation , change , .r)畫出當(dāng)前代的變化曲線,變量維數(shù)包含在 state.Generation中。函數(shù)gaplotchange 的代碼包含了函數(shù)gaplotbestf代碼中許多相同成分,函數(shù) gaplotbestf生成最佳適應(yīng)度圖形。8.30復(fù)現(xiàn)運(yùn)行結(jié)果為了復(fù)現(xiàn)遺傳算法前一次的運(yùn)行結(jié)果,選擇 “ Use random states from previous run (使用前 一次
57、運(yùn)行的隨機(jī)狀態(tài))”復(fù)選框。這樣就把遺傳算法所用的隨機(jī)數(shù)發(fā)生器的狀態(tài)重新設(shè)置為 前一次的值。如果沒有改變遺傳算法工具中的所有設(shè)置,那么遺傳算法下一次運(yùn)行時(shí)返回的 結(jié)果與前一次運(yùn)行的結(jié)果一致。正常情況下,不要選擇“ Use random states from previous run ”這個(gè)復(fù)選框,可以充分利用遺傳算法隨機(jī)搜索的優(yōu)點(diǎn)。如果想要分析特定的運(yùn)行結(jié)果或者顯示相對(duì)個(gè)體的精確結(jié)果,可 以選擇 “ Use random states from previous run ” 復(fù)選框。設(shè)置選項(xiàng)參數(shù)設(shè)置遺傳算法工具使用時(shí)的選項(xiàng)參數(shù)有兩種方法:一種是在遺傳算法工具GUI的“Options窗格中直接進(jìn)
58、行設(shè)置,另一種是在MATLAB 工作窗口中通過命令行方式進(jìn)行設(shè)置。在參數(shù)“ Options ”窗格中設(shè)置遺傳算法的各種運(yùn)行參數(shù),如圖8.28所示。每一類參數(shù)對(duì)應(yīng)有一個(gè)窗格,單擊該類參數(shù)時(shí),對(duì)應(yīng)窗格展開。例如,點(diǎn)擊 “ Population ”參數(shù)選項(xiàng),種群窗 格展開來,可以逐一設(shè)置其中的參數(shù)項(xiàng),如Population type(種群類型)、Population size (種群尺度)、 Creation function(創(chuàng)建函數(shù))、 Initial population 、Initial score (初始得分)、 Initial range (初始范圍)等。此外,其他選項(xiàng)參數(shù)類還有:Fit
59、ness scaling (適應(yīng)度測(cè)量)、 selection、Reproduction、Mutation、Crossover、Migration(遷移)、 Hybrid function (混合函數(shù))、 Stopping criteria、Output function (輸出函數(shù))、 Display to command window(顯示到命令窗口)、 Vectorize (向量化)等。這些參數(shù)類各自對(duì)應(yīng)一個(gè)參數(shù)窗格,點(diǎn)擊后相應(yīng)窗格隨即展開,可以進(jìn)行參數(shù)項(xiàng) 的設(shè)置。所有變量參數(shù)的含義及詳細(xì)描述可參見-8.4.1遺傳算法參數(shù) II 一節(jié)。157*圖8.28選項(xiàng)參數(shù)窗口在MATLAB 工作窗
60、口中,可以將遺傳算法的運(yùn)行參數(shù)設(shè)置為變量。對(duì)于數(shù)值參數(shù)的設(shè)置,可以直接在相應(yīng)編輯框中輸入該參數(shù)的值,或者在包含該參數(shù)值的MATLAB 工作窗口中輸入相應(yīng)變量的名字,就可以完成設(shè)置。例如,可以利用下面兩種方法之一設(shè)置 “ Initial point (初始點(diǎn))”為2.11.7:在 a Initial point ” 文本框輸入2.11.7。在MATLAB 工作區(qū)輸入變量x0 = 2.11.7,然后在“Initial point ” 文本框輸入變量的名字x0o因?yàn)檫x項(xiàng)參數(shù)是比較大的矩陣或向量,所以在MATLAB 工作窗口中把參數(shù)的值定義為變量一般是比較方便的,也就是說,如果需要,很容易改變矩陣或向
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 獨(dú)立董事2025年度履職評(píng)價(jià)與激勵(lì)措施合同3篇
- 二零二五年度禾青幼兒園教玩具采購與幼兒園設(shè)施維護(hù)合同3篇
- 二零二五搬家公司合同模板:搬家保險(xiǎn)責(zé)任與賠償條款2篇
- 二零二五版物流行業(yè)預(yù)付款擔(dān)保合同2篇
- 二零二五版搬家服務(wù)與家政服務(wù)融合合同樣本2篇
- 二零二五年度蔬菜電子商務(wù)合同:線上銷售平臺(tái)與賣家之間的規(guī)則2篇
- 二零二五版汽車零部件購銷合同標(biāo)準(zhǔn)及售后服務(wù)模板3篇
- 二零二五年度國(guó)際教育機(jī)構(gòu)合作辦學(xué)合同3篇
- 二零二五年度高壓變壓器安裝及安全防護(hù)技術(shù)合同3篇
- 二零二五版社保繳納與工傷保險(xiǎn)待遇保障合同3篇
- ICU常見藥物課件
- CNAS實(shí)驗(yàn)室評(píng)審不符合項(xiàng)整改報(bào)告
- 農(nóng)民工考勤表(模板)
- 承臺(tái)混凝土施工技術(shù)交底
- 臥床患者更換床單-軸線翻身
- 計(jì)量基礎(chǔ)知識(shí)培訓(xùn)教材201309
- 中考英語 短文填詞、選詞填空練習(xí)
- 一汽集團(tuán)及各合資公司組織架構(gòu)
- 阿特拉斯基本擰緊技術(shù)ppt課件
- 初一至初三數(shù)學(xué)全部知識(shí)點(diǎn)
- 新課程理念下的班主任工作藝術(shù)
評(píng)論
0/150
提交評(píng)論