MATLAB智能算法30個案例分析_第1頁
MATLAB智能算法30個案例分析_第2頁
MATLAB智能算法30個案例分析_第3頁
MATLAB智能算法30個案例分析_第4頁
MATLAB智能算法30個案例分析_第5頁
已閱讀5頁,還剩104頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

MATLAB智能算法30個案例分析

智能算法是我們在學習中經(jīng)常遇到的算法,主要包括遺傳算法,免疫算法,粒子群算法,神

經(jīng)網(wǎng)絡(luò)等,智能算法對于根多人來說,既愛又恨,愛是因為熟練的掌握幾種智能算法,能夠

很方便的解決我們的論壇問題,恨是因為智能算法感覺比較“玄乎”,很難理解,更難用它

來解決問題。

因此,我們組織了王輝,史峰,郁磊,胡斐四名高手共同寫作MATLAB智能算法,該

書包含了遺傳算法,免疫算法,粒子群算法,魚群算法,多目標paret。算法,模擬退火算

法,蟻群算法,神經(jīng)網(wǎng)絡(luò)、SVM等,本書最大的特點在于以案例為導向,每個案例針對一個

實際問題,給出全部程序和求解思路,并配套相關(guān)講解視頻,使讀者在讀過一個案例之后能

夠快速掌握這種方法,并且會套用案例程序來編寫自己的程序。本書作者在線,讀者和會員

可以向作者提問,作者做到有問必答。

本書和目錄如下:1基于遺傳算法的TSP算法(王輝)

TSP(旅行商問題TravelingSalesmanProblem),是典型的NP完全問題,即其最壞情況

下的時間復雜性隨著問題規(guī)模的增大按指數(shù)方式增長,到目前為止不能找到一個多項式時間

的有效算法。遺傳算法是一種進化算法,其基本原理是仿效生物界中的“物競天擇、適者生

存”的演化法則。遺傳算法的做法是把問題參數(shù)編碼為染色體,再利用迭代的方式進行選擇、

交叉以與變異等運算來交換種群中染色體的信息,最終芻成符合優(yōu)化目標的染色體。實踐證

明,遺傳算法對于解決TSP問題等組合優(yōu)化問題具有較好的尋優(yōu)性能。2基于遺傳算法和非

線性規(guī)劃的函數(shù)尋優(yōu)算法(史峰)遺傳算法提供了求解非線性規(guī)劃的通用框架,它不依賴

于問題的具體領(lǐng)域。遺傳算法的優(yōu)點是將問題參數(shù)編碼成染色體后進行優(yōu)化,而不針對參數(shù)

本身,從而不受函數(shù)約束條件的限制;搜索過程從問題解的一個集合開始,而不是單個個體,

具有隱含并行搜索特性,可大大減少陷入局部最小的可能性。而且優(yōu)化計算時算法不依賴于

梯度信息,且不要求目標函數(shù)連續(xù)與可導,使其適于求解傳統(tǒng)搜索方法難以解決的大規(guī)模、

非線性組合優(yōu)化問題。3基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化算法(王輝)BP模型被廣泛地應(yīng)

用于模式分類、模式識別等方面.但BP算法收斂速度慢,且很容易陷入局部極小點,而遺

傳算法具有并行搜索、效率高、不存在局部收斂問題等優(yōu)點而被廣泛應(yīng)用.遺傳算法的尋優(yōu)

過程帶有一定程度的隨機性和盲從性,多數(shù)情況下只能收斂到全局次優(yōu)解,且有過早收斂的

現(xiàn)象.為了克服遺傳算法尋優(yōu)過程的盲從性,將有監(jiān)督學習的BP算法與之結(jié)合以達到優(yōu)勢

互補、提高算法的穩(wěn)定性和全局搜索能力的目的。4設(shè)菲爾德大學的MATLAB遺傳算法工具

箱(王輝)Matlab遺傳算法(GeneticAlgorithm)優(yōu)化工具箱是基于基本操作與終止條件、

二進制和十進制相互轉(zhuǎn)換等操作的綜合函數(shù)庫。其實現(xiàn)步狹包括:通過輸入與輸出函數(shù)求出

遺傳算法主函數(shù)、初始種群的生成函數(shù),采用選擇、交叉、變異操作求得基本遺傳操作函數(shù)。

以函數(shù)仿真為例,對該函數(shù)優(yōu)化和GA改進,只需改寫函數(shù)m文件形式即可。5基于遺傳算

法的LQR控制優(yōu)化算法(胡斐)

LQR控制在工程中得到了廣泛的應(yīng)用,對于LQR最優(yōu)控制方法,性能指標中權(quán)重矩陣的選擇

對控制系統(tǒng)的性能有很大影響。權(quán)重矩陣通常的確定方法,首先是根據(jù)經(jīng)瞼初步確定,然后

通過模擬,根據(jù)輸出響應(yīng)量逐步調(diào)整權(quán)重系數(shù),直到獲得滿意的輸出響應(yīng)量為止。這種確定

方法不僅費時,而且無法關(guān)得最優(yōu)的權(quán)重矩陣使系統(tǒng)性能達到最優(yōu)。本案例將研究基于遺傳

算法的LQR控制優(yōu)化算法,利用遺傳算法的全局尋優(yōu)能力,搜索權(quán)重矩陣。6遺傳算法工具

箱詳解與應(yīng)用(胡斐)MATLAB自帶的遺傳算法與直接搜索工具箱(GeneticAlgorithmand

DirectSearchToolbox,GADST),可以較好地解決與遺傳算法相關(guān)的各種問題。GADST可

以通過GUI界面調(diào)用,也可以通過命令行方式調(diào)用,使用簡單方便。本案例將對GADST函數(shù)

庫的遺傳算法部分進行詳細的代碼分析和講解,并通過求解非線性方程組介紹GADST的使用

方法。7多種群遺傳算法的函數(shù)優(yōu)化算法(王輝)標準遺傳算法有時候會出現(xiàn)未成熟收斂

問題,在求解多目標優(yōu)化問題時顯得尤其嚴重。遺傳算法存在未成熟收斂問題,在求解多目

標優(yōu)化問題時顯得尤其嚴重。因此已有學者提出了多種群遺傳算法。該算法中多個種群使用

同一目標函數(shù),各種群的交叉率和變異率取不同的固定值,以搜索不同解空間中的最優(yōu)解,

種群之間定期進行信息交換.多種群遺傳算法能在一定程度上緩解遺傳算法的不成熟收斂問

題。8基于量子遺傳算法的函數(shù)尋優(yōu)算法(王輝)量子遺傳算法(QuantumGenetic

Algorithm,QGA)是量子計算與遺傳算法(GeneticAlgorithm,GA)相結(jié)合的產(chǎn)物,是一種新

發(fā)展起來的概率進化算法。量子遺傳算法是將量子計算與遺傳算法相結(jié)合而形成的一種混合

遺傳算法,它彌補了傳統(tǒng)遺傳算法的某些不足;利用量子計算的一些概念和理論,如量子位、

量子疊加態(tài)等,使用量子比特編碼染色體,這種概率幅表示可以使一個量子染色體同時表達

多個狀態(tài)的信息,用量子門對疊加態(tài)的作用作為進化操作,能很好地保持種群多樣性和避免

選擇壓力問題,而且當前最優(yōu)個體的信息能夠很容易用呆引導變異,使得種群以大概率向著

優(yōu)良模式進化,從而實現(xiàn)目標的優(yōu)化求解。9多目標Pareto最優(yōu)解搜索算法(胡斐)多目

標優(yōu)化是指在約束條件下有兩個或兩個以上的優(yōu)化目標,而且這些目標之間相互矛盾,不能

同時達到最優(yōu),也就是說,一個目標的最優(yōu)往往是以犧牲其它目標作為代價的,因此多目標

優(yōu)化問題存在多個最優(yōu)解,這些解之間無法比較優(yōu)劣,統(tǒng)稱為Parelo最優(yōu)解。帶精英策略

的快速非支配排序遺傳算法(NondominatedSortingGeneticAlgorithmII,NSGA-H)是目

前應(yīng)用較為廣泛的一種多目標算法。本案例將對MATLAB自帶的改進的NSGATI進行講解,

并舉例說明其應(yīng)用。10基于多目標Pareto的二維背包搜索算法(史峰)背包問題(knapsack

problem)是運籌學一個典型的優(yōu)化難題,但是它有著廣泛的應(yīng)用背景,如裝載問題、材料

切割、投資決策以與資源分配等,往往還將其作為其他問題的子問題加以研究。它是個典型

的MP問題,對其求解主要采用啟發(fā)式算法,如貪心算法、遺傳算法與模擬退火算法等。粒

子群算法是一種新的進化算法,運算簡單、易于實現(xiàn),該案例將其用于多目標一維背包問題

中,向讀者闡明粒子群算法解決帶有約束的多目標組合優(yōu)化問題的方法。11基于免疫算法

的柔性車間調(diào)度算法(史峰)有效的調(diào)度方法與優(yōu)化技術(shù)的研究和應(yīng)用,對于制造企業(yè)提高

生產(chǎn)效率,降低生產(chǎn)成本等方面起著重要作用。然而柔性車間調(diào)度問題計算復雜,約束條件

多,普通算法容易陷入局部最優(yōu)問題。免疫算法是模仿免疫系統(tǒng)抗原識別,抗原與抗體產(chǎn)生

過程,并利用免疫系統(tǒng)多樣性和記憶抽象得到的算法,具有非線性,全局化搜索等優(yōu)勢,本

案例研究了基于免疫算法的柔性車間調(diào)度算法。12基于免疫算法的運輸中心規(guī)劃算法(史

峰)隨著物流業(yè)的快速發(fā)展,配送在整個物流系統(tǒng)中的所起的作用越發(fā)重要,因而配送中心

的選址對于企業(yè)的網(wǎng)絡(luò)布局、經(jīng)營方式等起到了重要作用。然而,配送中心的選擇具有計算

復雜、約束條件多等問題,普通算法難以找到問題的最優(yōu)解。免疫算法具有非線性、全局搜

索等優(yōu)點,適合于此類復雜問題的研究,本案例研究了基于免疫算法的運輸中心規(guī)劃算法。

13基于粒子群算法的函數(shù)尋優(yōu)算法(史峰)粒子群優(yōu)化算法(PSO,particleswarm

optimization)是計算智能領(lǐng)域,除了蟻群算法,魚群算法之外的一種群體智能的優(yōu)化算法。

函數(shù)尋優(yōu)是工程中經(jīng)常遇到的問題,有些函數(shù)因為局部極小值點的存在,算法難以尋找到局

部最優(yōu)值。粒子群算法具有群體智能,全局尋優(yōu)等優(yōu)勢,比較適合于函數(shù)尋優(yōu)問題,本案例

研究了基于粒子群算法的函數(shù)尋優(yōu)算法。14基于粒子濟算法的PID控制優(yōu)化算法(史峰)

PID控制方法是工業(yè)領(lǐng)域中最常用的控制方法,然而在PID控制算法的使用中,P,I,D參數(shù)

即比例參數(shù)、積分參數(shù)、做分參數(shù)的確定是個難題,一般是憑經(jīng)驗獲得。粒子群算法具有全

局尋優(yōu)功能,可以尋找使控制指標值最優(yōu)的PID參數(shù)。區(qū)案例研究了基于粒子群算法的PID

控制優(yōu)化算法。15基于混合粒子群算法的TSP尋優(yōu)算法(史峰)粒子群算法雖然具有算法

簡單,尋優(yōu)速度快等優(yōu)點,但同時存在算法容易收斂,易陷入局部最優(yōu)值等問題。采用遺傳

算法改進粒子群算法,通過選擇、交叉和變異操作的引入,改進了算法性能,增強了算法的

全局搜索能力。本案例研究了基于混合粒子群算法的TSP尋優(yōu)算法。16基于動態(tài)粒子群算

法的動態(tài)環(huán)境尋優(yōu)算法(史峰)普通粒子群算法無法感知外界環(huán)境的變化,在外界環(huán)境發(fā)

生改變時無法實時進行響應(yīng),因而缺乏動態(tài)環(huán)境尋優(yōu)能刀。在普通粒子群算法基本上通過增

加敏感粒子得到一種動態(tài)粒子群算法,該算法通過實時計算敏感粒子的適應(yīng)度值從而感知外

界環(huán)境的變化,當外界環(huán)境的變化超過一定的閾值時算法以按一定比例更新速度和粒子的方

式進行相應(yīng),從而具有動態(tài)環(huán)境尋優(yōu)的功能。本案例研究了基于動態(tài)粒子群算法的動態(tài)環(huán)境

尋優(yōu)算法。17粒子群算法工具箱(史峰)粒子群算法工具箱包含了粒子群算法的基本操作

和常用功能,實現(xiàn)步驟包括種群規(guī)模選擇,粒子長度選取,適應(yīng)度函數(shù)編寫,粒子群參數(shù)確

定等,可以方便實現(xiàn)函數(shù)極值尋找,系統(tǒng)參數(shù)尋優(yōu)等功能。本案例以函數(shù)極值尋優(yōu)為例,詳

細講解了粒子群算法工具箱的使用。18基于魚群算法的函數(shù)尋優(yōu)算法(王輝)人工魚群算

法是曉磊等人于2002年提出的一類基于動物行為的群體智能優(yōu)化算法.該算法是通過模擬

魚類的覓食、聚群、追尾等行為在搜索域中進行尋優(yōu),是集群體智能思想的一個具體應(yīng)月.人

工魚群算法具有以下特點:具有克服局部極值、取得全局極值的較優(yōu)秀的能力;算法中僅使

用目標問題的函數(shù)值,對搜索空間有一定自適應(yīng)能力;具有對初值與參數(shù)選擇不敏感、魯棒

性強、簡單易實現(xiàn)、收斂速度快和使用靈活等特點.可以解決經(jīng)典方法不能求解的帶有絕對

值且不可導二元函數(shù)等的極值問題。本案例研究了基于魚群算法的函數(shù)尋優(yōu)算法。19基于

模擬退火算法的TSP算法(王輝)模擬退火算法(SimulatedAnnealing,簡稱SA)為求解

傳統(tǒng)方法難處理的TSP問題提供了一個有效的途徑和通用框架,并逐漸發(fā)展成一種迭代自適

應(yīng)啟發(fā)式概率性搜索算法,用以求解不同的非線性問題;對不可微甚至不連續(xù)的函數(shù)優(yōu)化,

SA能以較大概率求得全局優(yōu)化解;具有較強的魯棒性、全局收斂性、隱含并行性與廣泛的

適應(yīng)性;并且能處理不同類型的優(yōu)化設(shè)計變量(離散的、連續(xù)的和混合型的);不需要任何

的輔助信息,對目標函數(shù)和約束函數(shù)沒有任何要求。利月Metropolis算法并適當?shù)乜刂茰?/p>

度下降過程,在優(yōu)化問題中具有很強的競爭力,本案例研究了基于模擬退火算法的T5P算法。

20基于遺傳模擬退火算次的聚類算法(王輝)遺傳算法在運行早期個體差異較大,當采用

經(jīng)典的輪盤賭方式選擇時,后代產(chǎn)生的個數(shù)與父個體適應(yīng)度大小成正比,因此在早期容易使

個別好的個體的后代充斥整個種群,造成早熟。在遺傳算法后期,適應(yīng)度趨向一致,優(yōu)秀的

個體在產(chǎn)生后代時,優(yōu)勢不明顯,從而使整個種群進化停滯不前。因此對適應(yīng)度適當?shù)剡M行

拉伸是必要的,這樣在溫度高時(遺傳算法的前期),適應(yīng)度相近的個體產(chǎn)生的后代概率相近;

而當溫度不斷下降后,拉,申作用加強,使適應(yīng)度相近的個體適應(yīng)度差異放大,從而使得優(yōu)秀

的個體優(yōu)勢更明顯。由于模擬退火算法和遺傳算法可以互相取長補短,因此有效地克服了傳

統(tǒng)遺傳算法的早熟現(xiàn)象,同時根據(jù)聚類問題的具體情況設(shè)計遺傳編碼方式、適應(yīng)度函數(shù),使

該算法更有效、更快速地收斂到全局最優(yōu)解。本案例研究了基于遺傳模擬退火算法的聚類算

法。21基于模擬退火算法的HEV能量管理策略參數(shù)優(yōu)化(胡斐)模擬退火算法(Simulated

Annealing,SA)作為局部搜索算法的擴展,在每一次修改模型的過程中,隨機產(chǎn)生一個新的

狀態(tài)模型,然后以一定的概率選擇鄰域中能量值大的狀杰。這種接受新模型的方式使其成為

一種全局最優(yōu)算法,并得到理論證明和實際應(yīng)用的驗證。能量管理策略是混合動力汽車

(HybridElectricVehicle,HEV)的核心技術(shù)之一。本案例將對SA進行講解并將其應(yīng)用于

HEV能量管理策略的參數(shù)優(yōu)化。22蟻群算法的優(yōu)化計算一一旅行商問題(TSP)優(yōu)化(郁磊)

蚊群算法(AntColonyAlgorithm,ACA)是由意大利學者M.Dorigo等人于20世紀90年代

初提出的一種新的模擬進化算法,其真實地模擬了自然界螞蟻群體的覓食行為。M.Dcrigo

等人將其應(yīng)用于解決旅行商問題(TravelingSalesmanProblem,TSP),取得了較好的實驗

結(jié)果。近年來,許多專家與學者致力于蚊群算法的研究,并將其應(yīng)用于交通、通信、化工、

電力等領(lǐng)域,成功解決了許多組合優(yōu)化問題,如調(diào)度問題(Job-shopSchedulingProblem),

指派問題(QuadraticAssignmentProblem)、旅行商問題(TravelingSalesmanProblem)

等。本章將詳細闡述蟻群算法的基本思想與原理,并以實例的形式介紹其應(yīng)用于解決中國旅

行商問題(ChineseTSP,CTSP)的情況。23基于蟻群算法的二維路徑規(guī)劃算法(史峰)

二維路徑規(guī)劃算法是機器人智能控制領(lǐng)域研究中的熱點,算法目的是使機器人能夠在有障礙

物的工作環(huán)境中尋找一條恰當?shù)膹慕o定起點到終點的運動路徑。蟻群算法具有分布計算,群

體智能等優(yōu)勢,在路徑規(guī)劃篦法上具有很大潛力,.本案例研究了基于蟻群算法的二維路徑規(guī)

劃算法。24基于蟻群算法的三維路徑規(guī)劃算法(史峰)三維路徑規(guī)劃算法是機器人智能控

制領(lǐng)域中的熱點問題,是指機器人在三維地圖中自動規(guī)劃一條從出發(fā)點到目標點滿足指標最

優(yōu)的路徑。相對于二維路徑規(guī)劃算法來說,三維路徑規(guī)劃問題更加復雜,需要考慮的因素和

約束條件更多,一般方法理以取得好的規(guī)劃效果。蟻群算法具有分布計算,群體智能等優(yōu)勢,

在路徑規(guī)劃算法上具有很大潛力,本案例研究了基于蟻群算法的三維路徑規(guī)劃算法。25有

導師學習神經(jīng)網(wǎng)絡(luò)的回歸擬合一基于近紅外光譜的汽油辛烷值預測(郁磊)神經(jīng)網(wǎng)絡(luò)的

學習規(guī)則又稱神經(jīng)網(wǎng)絡(luò)的訓練算法,用來計算更新神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值。學習規(guī)則有兩大

類別:有導師學習和無導師學習。在有導師學習中,需要為學習規(guī)則提供一系列正確的網(wǎng)絡(luò)

輸入/輸出對(即訓練樣本),當網(wǎng)絡(luò)輸入時,耨網(wǎng)絡(luò)輸出與相對應(yīng)的期望值進行比較,然后

應(yīng)用學習規(guī)則調(diào)整權(quán)值和閾值,使網(wǎng)絡(luò)的輸出接近于期望值。而在無導師學習中,權(quán)值和閾

值的調(diào)整只與網(wǎng)絡(luò)輸入有關(guān)系,沒有期望值,這類算法大多用聚類法,將輸入模式歸類于有

限的類別。本章將詳細分析兩種應(yīng)用最廣的有導師學習神經(jīng)網(wǎng)絡(luò)(BP神經(jīng)網(wǎng)絡(luò)與RBF神經(jīng)

網(wǎng)絡(luò))的原理與其在回歸擬合中的應(yīng)用。26有導師學習神經(jīng)網(wǎng)絡(luò)的分類一一鶯尾花種類識

別(郁磊)有導師學習神經(jīng)網(wǎng)絡(luò)以其良好的學習能力廣泛應(yīng)用于各個領(lǐng)域中,其不僅可以解

決擬合回歸問題,亦可以用于模式識別、分類識別。本章將繼續(xù)介紹兩種典型的有導師學習

神經(jīng)網(wǎng)絡(luò)(GRMN和PNN),并以實例說明其在分類識別中的應(yīng)用。27無導師學習神經(jīng)網(wǎng)絡(luò)的

分類一礦井突水水源判別(郁磊)如第25章與第26章所述,對于有導師學習神經(jīng)網(wǎng)絡(luò),

事先需要知道與輸入相對應(yīng)的期望輸出,根據(jù)期望輸出與網(wǎng)絡(luò)輸出間的偏差來調(diào)整網(wǎng)絡(luò)的權(quán)

值和閾值。然而,在大多數(shù)情況下,由于人們認知能力以與環(huán)境的限制,往往無法或者很難

獲得期望的輸出,在這種情況下,基于有導師學習的神經(jīng)網(wǎng)絡(luò)往往是無能為力的。與有導師

學習神經(jīng)網(wǎng)絡(luò)不同,無導師學習神經(jīng)網(wǎng)絡(luò)在學習過程中無需知道期望的輸出。其與真實人腦

中的神經(jīng)網(wǎng)絡(luò)類似,可以通過不斷地觀察、分析與比較,自動揭示樣本中的在規(guī)律和本質(zhì),

從而可以對具有近似特征(屬性)的樣本進行準確地分類和識別。本章將詳細介紹競爭神經(jīng)

網(wǎng)絡(luò)與自組織特征映射(SOFM)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)與原理,并以實例說明其具體的應(yīng)用圍與效

果。28支持向量機的分類——基于乳腺組織電阻抗特性的乳腺癌診斷(郁磊)支持向量機

(SupportVectorMachins,SVM)是一種新的機器學習方法,其基礎(chǔ)是Vapnik創(chuàng)建的統(tǒng)計

學習理論(SlaliscalLearningTheory,STL)o統(tǒng)計學習理論采用結(jié)構(gòu)風險最小化

(StructuralRiskMinimization,SRM)準則,在最小化樣本點誤差的同時,最小化結(jié)構(gòu)

風險,提高了模型的泛化能力,且沒有數(shù)據(jù)維數(shù)的限制。在進行線性分類時,將分類面取在

離兩類樣本距離較大的地方;進行非線性分類時通過高鏤空間變換,將非線性分類變成高維

空間的線性分類問題。本章將詳細介紹支持向量機的分類原理,并將其應(yīng)用于基于乳腺組織

電阻抗頻譜特性的乳腺癌診斷。29支持向量機的回歸擬合一一混凝土抗壓強度預測(郁磊)

與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)相比,SVM具有以下幾個優(yōu)點:(l)SVM是專門針對小樣本問題而提出的,

其可以在有限樣本的情況下獲得最優(yōu)解;(2)SVM算法最終將轉(zhuǎn)化為一個二次規(guī)劃問題,從

理論上講可以得到全局最優(yōu)解,從而解決了傳統(tǒng)神經(jīng)網(wǎng)無法避免局部最優(yōu)的問題;(3;SVM

的拓撲結(jié)構(gòu)由支持向量決定,避免了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)需要反復試湊確定網(wǎng)絡(luò)結(jié)構(gòu)的問題;(4)

SVM利用非線性變換將原始變量映射到高維特征空間,在高維特征空間中構(gòu)造線性分類函

數(shù),這既保證了模型具有良好的泛化能力,又解決了“維數(shù)災(zāi)難”問題。同時,SVM不僅可

以解決分類、模式識別等問題,還可以解決回歸、擬合等問題。因此,其在各個領(lǐng)域中都得

到了非常廣泛的利用。本章將詳細介紹SVM回歸擬合的善本思想和原理,并以實例的形式闡

述其在混凝土抗壓強度預測中的應(yīng)用。30極限學習機的回歸擬合與分類一一對比實驗研究

(郁磊)單隱含層前饋神經(jīng)網(wǎng)絡(luò)(Single-hiddenLayerFeedforwardNeuralNetwork,SLFN)

以其良好的學習能力在許多領(lǐng)域中得到了廣泛的應(yīng)用。然而,傳統(tǒng)的學習算法(如BP算法

等)固有的一些缺點,成為制約其發(fā)展的主要瓶頸。因探索一種訓練速度快、獲得全局

最優(yōu)解,且具有良好的泛化性能的訓練算法是提升前饋神經(jīng)網(wǎng)絡(luò)性能的主要目標,也是近年

來的研究熱點和難點。太章將介紹一個針對SLFN的新算法——極限學習機(Extreme

LearningMachine,ELM),該算法隨機產(chǎn)生輸入層與隱含層間的連接權(quán)值與隱含層神經(jīng)元的

閾值,且在訓練過程中無需調(diào)整,只需要設(shè)置隱含層神經(jīng)元的個數(shù),便可以獲得唯一的最優(yōu)

解。與傳統(tǒng)的訓練方法相比,該方法具有學習速度快、泛化性能好等優(yōu)點。同時,在介紹

ELM算法的基礎(chǔ)上,本章以實例的形式將該算法分別應(yīng)用于回歸擬合(第25章一一基于近

紅外光譜的汽油辛烷值預測)和分類(第26章一一鶯尾花種類識別)中。

第1章

1、案例背景

遺傳算法(GeneticAlgorithm,GA)是一種進化算法,其基本原理是仿效生物界中的''物

競無擇、適者生存”的演化法則。遺傳算法的做法是把問題參數(shù)編碼為染色體,再利用迭代

的方式進行選擇、交叉以與變異等運算來交換種群中染色體的信息,最終生成符合優(yōu)化目標

的染色體。

在遺傳算法中,染色體對應(yīng)的是數(shù)據(jù)或數(shù)組,逋常是由一維的串結(jié)構(gòu)數(shù)據(jù)來表示,串上各個

位置對應(yīng)基因的取值?;蚪M成的串就是染色體,或者叫基因型個體(Individuals)。一

定數(shù)量的個體組成了群體(Population)。群體中個體的數(shù)目稱為群體大小(Population

Size),也叫群體規(guī)模。而各個個體對環(huán)境的適應(yīng)程度叫做適應(yīng)度(Fitness)。

2、案例目錄:

1.1理論基礎(chǔ)

1.1.1遺傳算法概述

1.編碼

2.初始群體的生成

3.適應(yīng)度評估

4.選擇

5.交叉

6.變異

1.1.2設(shè)菲爾德遺傳算法工具箱

1.工具箱簡介

2.工具箱添加

1.2案例背景

1.2.1問題描述

1.簡單一元函數(shù)優(yōu)化

2.多元函數(shù)優(yōu)化

1.2.2解決思路與步驟

1.3MATLAB程序?qū)崿F(xiàn)

1.3.1工具箱結(jié)構(gòu)

1.3.2遺傳算法中常用函數(shù)

1.創(chuàng)娃種群函數(shù)crtbp

2.適應(yīng)度計算函數(shù)一ranking

3.選擇函數(shù)一select

4.交叉算子函數(shù)一recombin

5.變異算子函數(shù)一mut

6.選擇函數(shù)一reins

7.實用函數(shù)一bs2rv

8.實用函數(shù)一rep

1.3.3遺傳算法工具箱應(yīng)用舉例

1.簡單一元函數(shù)優(yōu)化

2.多元函數(shù)優(yōu)化

1.4延伸閱讀

1.5參考文獻

3、主程序:

1.簡單一元函數(shù)優(yōu)化:

clc

clearal1

closeall

%%畫出函數(shù)圖

figure(l);

holdon;

lb=l;ub=2;與函數(shù)自變量圍[1,2]

ezplot('sin(10*pi*X)/X',[lb,ub]);%畫出函數(shù)曲線

xlabelC自變量/X')

ylabelC函數(shù)值/Y')

%%定義遺傳算法參數(shù)

NIND=40;%個體數(shù)目

MAXGEN=20;%最大遺傳代數(shù)

PRECI=20;為變量的二進制位數(shù)

GGAP=0.95;%代溝

px=0.7;舟交叉概率

pm=0.01;%變異概率

trace=zeros(2,MAXGEN);%尋優(yōu)結(jié)果的初始值

FieldD=[PRECI;lb;ub;l;O;l;l];%區(qū)域描述器

Chrom=crtbp(NIND,PRECI);%初始種群

%%優(yōu)化

gen=O;%代計數(shù)器

X=bs2rv(Chrom,FieldD);%計算初始種群的十進制轉(zhuǎn)換

0bjV=sin(10*pi*X)./X;%計算目標函數(shù)值

whilegen<MAXGEN

FitnV=ranking(ObjV);%分配適應(yīng)度值

SelCh=select('sus*,Chrom,FitnV,GGAP);%選擇

SelCh=recombin('xovsp',SelCh,px);%重組

SelCh=mut(SelCh,pm);%變異

X=bs2rv(SelCh,FieldD);%子代個體的十進制轉(zhuǎn)換

ObjVSel=sin(l0*pi*X)./X;%計算子代的目標函數(shù)值

[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);%重插入子代到父代,得到新種群

X=bs2rv(Chrom,Field!));

gen=gen+l;%代計數(shù)器增加

%獲取每代的最優(yōu)解與其序號,Y為最優(yōu)解,1為個體的序號

[Y,l]=niin(ObjV);

traced,gon)=X(I);%記下每代的最優(yōu)值

trace(2,gen)=Y;%記下每代的最優(yōu)值

end

plot(traced,:),trace(2,:),'bo');%畫出每代的最優(yōu)點

gridon;

,,

plot(X,ObjV,b*);%畫出最后一代的種群

holdoff

%%畫進化圖

figure(2);

plot(1:MAXGEN,trace(2,:));

gridon

xlabel('遺傳代數(shù)')

ylabel('解的變化')

title('進化過程')

bestY=trace(2,end);

besIX=trace(1,end);

fprintf(['最優(yōu)解:\nX=',num2str(bestX),'\nY=',num2str(bestY),1\n'])

2.多元函數(shù)優(yōu)化

clc

clearall

closeall

%%畫出函數(shù)圖

figurc(l);

lbx=-2;ubx=2;%函數(shù)自變量x圍[-2,2]

lby=-2;uby=2;%函數(shù)自變量y圍12,2]

ezmeshCy*sin(2*pi*x)+x*cos(2*pi*y)r,[ibx.ubx,Iby.uby],50);%畫出函數(shù)曲線

holdon;

%%定義遺傳算法參數(shù)

NIND=40;%個體數(shù)目

MAXGEN=50;%最大遺傳代數(shù)

PRECI=20;/變量的二進制位數(shù)

GGAP=0.95;%代溝

px=0.7;%交叉概率

pm=0.01;%變異概率

trace=zeros(3,MAXGEN);%尋優(yōu)結(jié)果的初始值

FieldD=[PRECIPRECLlbxlby;ubxuby;1l;00;11;11];%區(qū)域描述器

Chrom=crtbp(NIND,PRECI*2);%初始種群

%%優(yōu)化

gen=0;%代計數(shù)器

XY=bs2rv(Chrom,FieldD);%計算初始種群的十進制轉(zhuǎn)換

X=XY(:,1);Y=XY(:,2);

ObjV=Y.*sin(2*pi*X)+X.*cos(2*pi*Y);%計算目標函數(shù)值

whilegen<MAXGEN

FitnV=ranking(-0bjV);區(qū)分配適應(yīng)度值

SelCh=select(rsusr,Chrom,FitnV,GGAP);%選擇

SelCh=recombin('xovsp',SelCh,px);%重組

Se1Ch=mut(SelCh,pm);%變異

XY=bs2rv(SelCh,FieldD);%子代個體的十進制轉(zhuǎn)換

X=XY(:,1);Y=XY(:,2);

ObjVSel=Y.*sin(2*pi*X)+X.*cos(2*pi*Y);%計算子代的目標函數(shù)值

[Chrom,ObjV]=rcins(Chrom,SelCh,1,1,ObjV,ObjVScl);%重插入子代到父代,得到新種群

XY=bs2rv(Chrom,FieldD);

gen=gen+l;%代計數(shù)器增加

%獲取每代的最優(yōu)解與其序號,Y為最優(yōu)解,1為個體的序號

[Y,I]=max(0bjV);

trace(1:2,gen)=XY(I,:);%記下每代的最優(yōu)值

trace(3,gen)=Y;%記下每代的最優(yōu)值

end

plot3(traced,:),trace(2,:),trace(3,:),,bo1);%畫出每代的最優(yōu)點

gridon;

plot3(XY(:,1),XY(:,2),ObjV,'bo');%畫出最后一代的種群

holdoff

%%畫進化圖

figure(2);

plot(1:MAXGEN,trace(3,:));

gridon

xlabcl('遺傳代數(shù)')

ylabel('解的變化')

title('進化過程')

bestZ=trace(3,end);

bestX=trace(1,end);

bestY=trace(2,end);

fprintf(['最優(yōu)

解:\nX=,,num2str(bestX),f\nY=,,num2str(bestY),'\nZ=,,num2str(bestZ),1\n'])

第2章基于遺傳算法和非線性規(guī)劃的函數(shù)尋優(yōu)算法

1.1案例背景1.1.1非線性規(guī)劃方法

非線性規(guī)劃是20世紀50年代才開始形成的一門新興學科。1951年H.W.

庫恩和A.W.塔克發(fā)表的關(guān)于最優(yōu)性條件(后來稱為庫恩.塔克條件)的論文是非

線性規(guī)劃正式誕生的一個重要標志。

非線性規(guī)劃研究一個n元實函數(shù)在一組等式或不等式的約束條件下的極

值問題,且目標函數(shù)和約束條件至少有一個是未知量的非線性函數(shù)。非線性規(guī)劃

的一個重要理論是1951年Kuhn-Tucker最優(yōu)條件(簡稱KT條件)的建立。此后

的50年代主要是對梯度法和牛頓法的研究。以Davidon(1959),Fletcher和

Powell(1963)提出的DFP方法為起點,60年代是研究擬牛頓方法活躍時期,

同時對共軻梯度法也有較好的研究。在1970年由Broyden,Fletcher、

Goldfarb和Shanno從不同的角度共同提出的BFGS方法是目前為止最有效的擬

牛頓方法。由于Broyden,Dennis和More的工作使得擬牛頓方法的理論變得

很完善。70年代是非線性規(guī)劃飛速發(fā)展時期,約束變尺度(SQP)方法(Han

和Powell為代表)和Lagrange乘子法(代表人物是Powell和Hestcnes)是

這一時期主要研究成果.計算機的飛速發(fā)展使非線性規(guī)劃的研究如虎添翼。80年

**始研究信賴域法、稀疏擬牛頓法、大規(guī)模問題的方法和并行計算,90年代研

究解非線性規(guī)劃問題的點法和有限儲存法??梢院敛豢涞恼f,這半個世紀是最優(yōu)

化發(fā)展的黃金時期。1.L2非線性規(guī)劃函

數(shù)fmincon函數(shù)是Matlab最優(yōu)化工具箱中用來求解非線性規(guī)劃

問題的重要函數(shù),它從一個預估值出發(fā),搜索約束條件下非線性多元函數(shù)的最小

值。

1.1.3案例

案例1>,

格遞僑H法和\IAILAB非蛭性界優(yōu)函法相結(jié)合,求解函數(shù),

/(x)=-5sinXj$tnx,sin/sinxt$:nx5-sin5戈15々5與5勺5芻+8

的強小值,耳中,孫小孫M&是。到09萬之間的賓數(shù)??

1.2模型建立

算法流程圖如下:

1.3仿真結(jié)果

非線性遺傳算法尋優(yōu)結(jié)果如下:

普逋遺傳算法尋優(yōu)結(jié)果如下:

女止收依,30

主函數(shù)代碼如下:

%%清空環(huán)境

clc

clear

%%遺傳算法參數(shù)

maxgen=30;%進化代數(shù)

sizepop=100;%種群規(guī)模

pcross=[0.6];%交叉概率

pmutation=[0.01];%變異概率

lenchrom=[l1111];$變量字串長度

bound=[00.9*pi;00.9*pi;00.9*pi;00.9*pi;00.9*pi];%變量圍

%%個體初始化

individuals=struct('fitness',zeros(1,sizepop),'chrom*,[]);與種群結(jié)構(gòu)體

avgfitness=[];%種群平均適應(yīng)度

bestfitness=[];%種群最佳適應(yīng)度

bestchrom=[];%適應(yīng)度最好染色體

%初始化種群

fori=l:sizepop

individuals.chrom(i,:)=Code(lenchrom,bound);%隨磯產(chǎn)生個體

x二individuals.chrom(i,:);

individuals,fitness(i)=fun(x);%個體適應(yīng)度

end

%找最好的染色體

[bestfitnessbestindex]=min(individuals,fitness);

bestchrom=individuals.chrom(bestindex,:);%最好的染色體

avgfitness=sum(individuals,fitness)/sizepop;%染色體的平均適應(yīng)度

%記錄每一代進化中最好的適應(yīng)度和平均適應(yīng)度

trace=[avgfitnessbestfitness];

%%進化開始

fori=l:maxgen

%選擇操作

individuals=Select(individuals,sizepop);

avgfitness=sum(individuals.fitness)/sizepop;

%交叉操作

individuals.chrom=Cross(pcross,lenchrom,individuals,chrom,sizepop,bound);

%變異操作

individuals.chrom=Mutation(pmutation,lenchrom,individuals,chrom,sizepop,[i

maxgen],bound);

%計算適應(yīng)度

forj=l:sizepop

x=individuals.chrom(j,:);

individuals,fitness(j)=fun(x);

end

先找到最小和最大適應(yīng)度的染色體與它們在種群中的位置

[newbestfitness,newbestindex]=min(individuaIs.fitness);

[worestfitness,worestindex]=max(individuals.fitness);

%代替上一次進化中最好的染色體

ifbestfitness>newbestfitness

bestfitness=ncwbcstfitness;

bestchrom=individuals,chrom(newbestindex,:);

end

individuals,chrom(worestindex,:)=bestchrom;

individuals,fitness(worestindex)=bestfitness;

avgfitness=sum(individuals.fitness)/sizepop;

trace=[trace;avgfitnessbestfitness];%記錄每一代進化中最好的適應(yīng)度和平均適應(yīng)度

end

先進化結(jié)束

%%結(jié)果顯示

[rc]=size(trace);

plot([1:r]',trace(:,1),'r-*,[l:r]1,trace(:,2),'b-');

函數(shù)值曲線''終止代數(shù)='num2str(maxgen)]);

xlabel('進化代數(shù)');ylabel(1函數(shù)值');

legend('各代平均值名代最佳值');

disp(函數(shù)值變量');

%窗口顯示

disp([bestfitnessx]);

第3章基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化算法

1、案例背景

BP網(wǎng)絡(luò)是一類多層的前饋神經(jīng)網(wǎng)絡(luò)。它的名字源于在網(wǎng)絡(luò)訓練的過程中,調(diào)整網(wǎng)絡(luò)的權(quán)值

的算法是誤差的反向傳播的學習算法,即為BP學習算法。BP算法是Rumelhart等人在1986

年提出來的。由于它的結(jié)構(gòu)簡單,可調(diào)整的參數(shù)多,訓練算法也多,而且可操作性好,BP

神經(jīng)網(wǎng)絡(luò)獲得了非常廣泛的應(yīng)用。據(jù)統(tǒng)計,有80%?90%的神經(jīng)網(wǎng)絡(luò)模型都是采用了BP網(wǎng)絡(luò)

或者是它的變形。BP網(wǎng)絡(luò)是前向網(wǎng)絡(luò)的核心部分,是神經(jīng)網(wǎng)絡(luò)中最精華、最完美的部分。

BP神經(jīng)網(wǎng)絡(luò)雖然是人工神經(jīng)網(wǎng)絡(luò)中應(yīng)用最廣泛的算法,但是也存在著一些缺陷,例如:

①、學習收斂速度太慢;

②、不能保證收斂到全局最小點;

③、網(wǎng)絡(luò)結(jié)構(gòu)不易確定。

另外,網(wǎng)絡(luò)結(jié)構(gòu)、初始連接權(quán)值和閾值的選擇對網(wǎng)絡(luò)訓練的影響很大,但是又無法準確獲得,

針對這些特點可以采用遺傳算法對神經(jīng)網(wǎng)絡(luò)進行優(yōu)化。

本節(jié)以某型號拖拉機的齒輪箱為工程背景,介紹使用基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)進行齒輪箱故

障的診斷。

2、案例目錄:

第3章基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)優(yōu)化算法

3.1理論基礎(chǔ)

3.1.1BP神經(jīng)網(wǎng)絡(luò)概述

3.1.2遺傳算法概述

3.2案例背景

3.2.1問題描述

3.2.2解決思路與步驟

1.算法流程

2.神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)

3.遺傳算法實現(xiàn)

3.3MATLAB程序?qū)崿F(xiàn)

3.3.1神經(jīng)網(wǎng)絡(luò)算法

3.3.2遺傳算法主函數(shù)

3.3.3比較使用遺傳算法前后的差別

3.3.4結(jié)果分析

3.4延伸閱讀

3.5參考文獻

3、主程序:

clc

clearall

closeall

%%加載神經(jīng)網(wǎng)絡(luò)的訓練樣本測試樣本每列一個樣本輸入P輸出T

%樣本數(shù)據(jù)就是前面問題描述中列出的數(shù)據(jù)

loaddata

%初始隱層神經(jīng)元個數(shù)

hiddennum=31;

%輸入向量的最大值和最小值

threshold=[01;01;01;01;01;01;01;01;01;01;01;01;01;01;01];

inputnum=size(P,1);%輸入層神經(jīng)元個數(shù)

outputnum=size(T,1);%輸出層神經(jīng)元個數(shù)

wlnum=inputnum*hiddennurn;%輸入層到隱層的權(quán)值個數(shù)

w2num=outputnum*hiddennum;%隱層到輸出層的權(quán)值?個數(shù)

N=wlnum+hiddennum+w2num+outputnum;%待優(yōu)化的變量的個數(shù)

%%定義遺傳算法參數(shù)

NIND=40;與個體數(shù)目

MAXGEN=50;為最大遺傳代數(shù)

PRECI=10;%變量的二進制位數(shù)

GGAP=0.95;%代溝

px=0.7;%交叉概率

pm=0.01;%變異概率

trace=zcros(N+l,MAXGEN);%尋優(yōu)結(jié)果的初始值

FieldD=[repmat(PRECI,1,N);repmat([-0.5;0.5],1,N);repmat([l;0;1;1],1,N)];%區(qū)域

ijx、上tta

描述器

Chrom=crtbp(NIND.PRECI*N);%初始種群

%%優(yōu)化

gen=0;現(xiàn)代計數(shù)器

X=bs2rv(Chrom,PieldD);%計算初始種群的十進制轉(zhuǎn)換

ObjV=Objfun(X,P,T,hiddennurn,P_test,T_test);(計算目標函數(shù)值

whilegon<MAXGEN

fprintfC%d\nr,gen)

FitnV=ranking(ObjV);%分配適應(yīng)度值

Se1Ch=se1ect('sus',Chrom.FitnV,GGAP);%選擇

SelCh=recombin('xovsp',SelCh,px);%重組

SelCh=mut(SelCh,pm);%變異

X=bs2rv(SelCh,FieldD);%子代個體的十進制轉(zhuǎn)換

ObjVScl=Objfun(X,P,T,hiddcnnum,P.test,T_test);%計算子代的目標函數(shù)值

[Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);%重插入子代到父代,得到新種群

X=bs2rv(Chrom,FieldD);

gen=gcn+l;%代計數(shù)器增加

%獲取每代的最優(yōu)解與其序號,Y為最優(yōu)解,1為個體的序號

[Y,I]=min(0bjV);

trace(1:N,gen)=X(I,:);%記下每代的最優(yōu)值

trace(end,gen)=Y;%記下每代的最優(yōu)值

end

%%畫進化圖

figure(l);

plot(1:MAXGEN,trace(end,:));

gridon

xlabel('遺傳代數(shù)’)

ylabel('誤差的變化')

title('進化過程')

bestX=trace(1:end-l,end);

bestErr=trace(end,end);

fprintf(['最優(yōu)初始權(quán)值和閾值:\nX=',num2str(be5tX'),''n最小誤差

err=1,num2str(bestErr),''n'])

第4章基于遺傳算法的TSP算法

1、案例背景

TSP(旅行商問題一TravelingSalesmanProblem),是典型的火完全問題,即

其最壞情況下的時間復雜性隨著問題規(guī)模的增大按指數(shù)方式增長,到目前為止不能找到一個

多項式時間的有效算法。遺傳算法是一種進化算法,其基本原理是仿效生物界中的“物競天

擇、適者生存”的演化法則。遺傳算法的做法是把問題參數(shù)編碼為染色體,再利用迭代的方

式進行選擇、交叉以與變異等運算來交換種群中染色體的信息,最終生成符合優(yōu)化目標的染

色體。實踐證明,遺傳算法對于解決TSP問題等組合優(yōu)化問題具有較好的尋優(yōu)性能。

2、案例目錄:

第4章基于遺傳算法的TSP算法

4.1理論基礎(chǔ)4.1.1遺傳算法概述

4.1.2TSP問題介紹

4.2案例背景

4.2.1問題描述

4.2.2解決思路與步驟

4.2.2.1算法流程

4.2.2.2遺傳算法實現(xiàn)

1.編碼

2.種群初始化

3.適應(yīng)度函數(shù)

4.選擇操作

5.交叉操作

6.變異操作

7.進化逆轉(zhuǎn)操作

4.3MATLAB程序?qū)崿F(xiàn)

4.3.1種群初始化

4.3.2適應(yīng)度函數(shù)

4.3.3選擇操作

4.3.4交叉操作

4.3.5變異操作

4.3.6進化逆轉(zhuǎn)操作

4.3.7畫路線軌跡圖

4.3.8遺傳算法主函數(shù)

4.3.9結(jié)果分析

4.4延伸閱讀

4.4.1應(yīng)用擴展

4.4.2遺傳算法的改進

4.4.3算法的局限性

4.5參考文獻

3、案例實例與結(jié)果:

本案例以14個城市為例,假定14個城市的位置坐標為:

表4.114個城市的位置坐標

城市編號X坐標Y坐標

116.4796.1

216.4794.44

320.0992.54

422.3993.37

525.2397.24

62296.05

720.4797.02

817.296.29

916.397.38

1014.0598.12

1116.5397.38

1221.5295.59

1319.4197.13

1420.0992.55

從某個城市出發(fā)訪問每個城市一次且僅一次,最后回到出發(fā)城市,如何安排才使其

所走路線最短。

結(jié)果:

優(yōu)化前的一個隨機路線軌跡圖

枕跡圖

圖4.1隨機路線圖

隨機路線為;

11—>7—>10—>4—>12—>9—>14—>8—>13—>5—>2—>3—>6—>1—>11

總距離:71.1144

優(yōu)化后的路線圖:

99

96

97

9S

S95

94

93

橫坐標

圖4.2最優(yōu)解路線圖

最優(yōu)解路線:

51>4一>3一>14->21>1->10->9->11->8->13->7->12->6一>5

總距離:29.3405

優(yōu)化迭代過程;

圖4.3遺傳算法進化過程圖

4、主程序:

clear

clc

closeall

loadCityPositionl;%個城市坐標位置

NIND=100;%種群大小

MAXGEN=200;

Pc=0.9;%交叉概率

Pm=0.05;%變異概率

GGAP=0.9;%代溝(Generationgap)

D二Distanse(X);用生成距離矩陣

N=size(D,l);%(34*34)

%%初始化種群

Chrom=InitPop(NIND.N);

%%在二維圖上畫出所有坐標點

%figure

%plot(X(:,l).X(:,2).'o');

%%畫出隨機解的路線圖

DrawPath(Chrom(1,:),X)

pause(0.0001)

%%輸出隨機解的路線和總距離

disp('初始種群中的一個噴機值:')

OutputPath(Chrom(1,:));

RIength=PathLength(I),Chrom(1,:));

disp(]總距離:',num2str(Rlength)]);

disp(,)

%%優(yōu)化

gen=O;

figure;

holdon;boxon

xlim([0,MAXGEN])

title('優(yōu)化過程')

xlabel(,代數(shù)')

ylabel('最優(yōu)值')

ObJV=PathLength(D,Chrom);%計算路線,長度

preObjV=min(ObjV);

whilegen<MAXGEN

%%計算適應(yīng)度

ObjV=PathLenglh(D,Chrom);與計算路線長度

%fprintfC%d%1.10f\n',gen,min(ObjV))

1ine([gen-1,gen],[preObjV,min(ObjV)]);pause(0.0001)

preObjV=min(ObjV);

FitnV=Fitness(ObjV);

%%選擇

SclCh=Select(Chrom,FitnV.GGAP);

%%交叉操作

SelCh=Recombin(SelCh,Pc);

%%變異

SelCh=Mutate(SelCh,Pm);

%%逆轉(zhuǎn)操作

SelCh:Reverse(SelCh,D);

%%重插入子代的新和群

Chrom=Reins(Chrom,SeiCh,ObjV);

%%更新迭代次數(shù)

gen=gen+l;

end

%%畫出最優(yōu)解的路線圖

ObjV=PathLength(D,Chrom);%計算路線長度

[minObjV,minInd]=min(ObjV);

DrawPath(Chrom(minInd(1),:),X)

%%輸出最優(yōu)解的路線和總距離

dispC最優(yōu)解:')

p=OutputPath(Chrom(minlndd),:));

disp(['總距離:',num2str(ObjV(minlnd(l)))]);

dispC----------------------------------------------------------------')

第5章基于遺傳算法的LQR控制器優(yōu)化設(shè)計

1、案例背景LQR控制在工程中得到了廣泛的應(yīng)用,對于LQR最優(yōu)控制,其最優(yōu)性

完全取決于加權(quán)矩陣的選擇,然而該加權(quán)矩陣如何選擇并沒有解析方法,只能定性地去選擇

矩陣參數(shù),所以這樣的“最優(yōu)”控制事實上完全是認為的。如果選擇不當,雖然可以求出最

優(yōu)解,但這樣的“最優(yōu)解”沒有任何意義。另一方面,加權(quán)矩陣的選擇依賴于設(shè)計者的經(jīng)驗,

需要設(shè)計者根據(jù)系統(tǒng)輸出逐步調(diào)整加權(quán)矩陣,直到獲得滿意的輸出響應(yīng)量為止,這樣不僅費

時,而且無法保證獲得最優(yōu)的權(quán)重矩陣,因此獲得的最優(yōu)控制反饋系數(shù)不能保證使系統(tǒng)達到

最優(yōu)。遺傳算法(GeneticAlgorithm,GA)是模仿自然界生物進化機制發(fā)展起來的全局搜

索優(yōu)化方法,它在迭代過程中使用適者生存的原則,采用交叉、變異等操作使得種群朝著最

優(yōu)的方向進化,最終獲得最優(yōu)解。鑒于LQR控制方法權(quán)重矩陣確定困難的問題,本案例以

汽車主動懸架作為被控對象,將遺傳算法應(yīng)用于LQR控制器的設(shè)計中,利用遺傳算法的全局

搜索能力,以主動懸架的性能指標作為目標函數(shù)對加權(quán)矩陣進行優(yōu)化設(shè)計,以提高LQR的設(shè)

計效率和性能。2、案例目錄:第5章基于遺傳算法的LQR控制器優(yōu)化設(shè)計5.1案

例背景5.1.1LQR控制5.1.2基于遺傳算法設(shè)計LQR控制器5.2模型建

立5.2.1主動懸架與其LQR控制器5.2.2基于遺傳算法的主動懸架LQR控制

器優(yōu)化設(shè)計5.3模型與算法實現(xiàn)5.3.1模型實現(xiàn)5.3.2遺傳算法實

現(xiàn)5.3.3結(jié)果分析5.4參考文獻

3案例實例與結(jié)果:

S<-5主動曷架LQR控制模型的Sinmlink實現(xiàn)

Best25435Mean25435

26r

25t---------?----------*---------*---------,---------?-----------,,,,?1?

02468101214161820

Generation

圖5-S遺傳舞法最憂個體適應(yīng)度函數(shù)值變化情阮的局部放大留

表5-2遺傳算法優(yōu)化LQR控制器的主動懸架與被動懸架的對比

性能指標被動懸架本文改善

車身加速度(m/g)178161.72473.1$%

懸架動行程(mm)1712^4119624301密

輪船動位移(mm)62526548391229%

4、主程序:

clear

clc

fitnessfen=GA_LQR;%適應(yīng)度函數(shù)句柄

nvars=3;%個體變量數(shù)目

LB=[0.10.10.1];%下限

UB=[lc6le6le6];%上限

options=gaoptimset('Populationsize',100,'PopInitRange',[LB;UB],'EliteCount',10,

'CrossoverFraction',0.4,Generations',20,'StallGenLimit1,20,'TolFun1,le-100,'Pl

otFcns',{gaplotbestf.gaplotbestindiv});%算法參數(shù)設(shè)置

[x_best,fval]=ga(fitnessfcn,nvars,[],[],[],[],LB,UB,[],options);%

運行遺傳算法

第6章遺傳算法工具箱誤解與應(yīng)用

1、案例背景MATLAB自帶的遺傳算法與直接搜索工具箱(GeneticAlgorithmand

DirectSearchToolbox,GADST),可以較好地解決與遺傳算法相關(guān)的各種問題。GADST可

以通過GUI界面調(diào)用,也可以通過命令行方式調(diào)用,使用簡單方便。本案例將對GADST函數(shù)

庫的遺傳算法部分進行詳細的代碼分析和講解,并通過求解非線性方程組介紹GADST的使用

方法。2、案例目錄:第6章遺傳算法工具箱講解與應(yīng)用6.1遺傳算法與直接

搜索工具箱6.1.1遺傳算法與直接搜索工具箱簡介6.1.2GADST詳

解6.1.2.1遺傳算法的一些基本概念6.1.2.2stepGA函

數(shù)fitscalingrank函數(shù)和selectionstochunif函

數(shù)6.1.2.4crossoverscattered函數(shù)mutationgaussian函

數(shù)6.1.3GADST的使用6.1.3.1GUI方式使用GADST6.1.3.2命

令行方式使用GADST6.2案例分析6.2.1模型建立6.2.2GADST的應(yīng)

用6.2.2.1使用

溫馨提示

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

評論

0/150

提交評論