




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上 Beijing Jiaotong University 智能控制技術報告神經網絡遺傳算法函數極值尋優(yōu)學 院:電子信息工程學院學 號:姓 名:指導教師:時 間:2014.11.29目錄一、 課題背景在研究中經常會遇到一些非常復雜的非線性系統(tǒng),這些系統(tǒng)方程復雜,難以用數學方法準確建模。在這種情況下,可以建立BP神經網絡表達這些非線性系統(tǒng)。該方法把系統(tǒng)看成是一個黑箱,首先用系統(tǒng)輸入輸出數據訓練BP神經網絡,使網絡能夠表達該未知函數,然后就可以用訓練好的BP神經網絡預測系統(tǒng)輸出。對于未知的非線性函數,僅通過函數的輸入輸出數據難以準確尋找函數極值。遺傳算法通過模擬自然界遺傳機
2、制和生物進化論能夠進行并行隨機搜索最優(yōu)化,所以對非線性函數極值尋優(yōu)可以通過神經網絡結合遺傳算法求解。利用神經網絡的非線性擬合能力和遺傳算法的非線性尋優(yōu)能力尋找函數極值。本文擬合的非線性函數為:fx=-xx2-3.2x+2.89x-32 x0,3該函數的圖形如圖所示:圖1-1待擬合函數圖形從函數方程和圖形可以看出,該函數僅有一個全局最大值為0.9655,對應的坐標是(0.537,0.9655)。雖然從函數方程和圖形中很容易找出函數及極值對應的坐標,但是在方程未知的條件下函數極值及極值對應的坐標就很難求到。二、 模型建立2.1 算法流程神經網絡遺傳算法函數極值尋優(yōu)主要分為BP神經網絡訓練擬合和遺傳
3、算法極值尋優(yōu)兩步,算法流程如圖所示:圖2-1算法流程圖神經網絡訓練擬合根據尋優(yōu)函數的特點構建適合的BP神經網絡,用非線性函數的輸入輸出數據訓練BP神經網絡,訓練后的神經網絡就可以預測函數輸出。遺傳算法極值尋優(yōu)把訓練后的BP神經網絡預測結果作為個體適應度值,通過選擇、交叉和變異操作尋找函數的全局最優(yōu)值及對應的值。2.2 BP算法實現2.2.1 數據選擇和歸一化數據歸一化是神經網絡訓練和預測前對數據常做的一種處理方法。數據歸一化處理把所有的數據都歸一化為0,1之間的數,其目的是取消各維數據間數量級差別,避免因為輸入輸出數據數量級差別較大而造成訓練失敗或者預測誤差較大。數據歸一化可以使用MATLAB
4、自帶函數mapminmax,該函數有多種形式,常用的方法如下:%樣本輸入輸出數據歸一化inputn,inputps=mapminmax(input_train);outputn,outputps=mapminmax(output_train);input_train、output_train是訓練輸入、輸出原始數據,inputn、outputn是歸一化后的數據,inputps、outputps為數據歸一化后得到的結構體,里面包含了數據的最大值、最小值和平均值等信息,可以用于測試數據歸一化和反歸一化。測試數據歸一化和反歸一化程序一般如下:%數據歸一化inputn_test=mapminmax(a
5、pply,input_test,inputps); %網絡輸出反歸一化BPoutput=mapminmax(reverse,an,outputps);input_test是預測輸入數據,input_test是歸一化后的預測數據,apply表示根據inputps進行歸一化;an是網絡預測結果,outputs是訓練輸出數據歸一化得到的結構體,BPoutput是反歸一化后的網絡預測輸出,reverse表示對數據進行反歸一化。2.2.2 BP神經網絡訓練用訓練數據訓練神經網絡,使網絡對非線性函數具有預測能力。MATLAB神經網絡工具箱中自帶BP神經網絡函數,使用時只需要調用相關的子程序即可。BP神經網
6、絡訓練主要用到newff、sim兩個函數。1. newff:BP神經網絡參數設置函數函數功能:構建一個BP網絡。函數形式:net=newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)2. train:BP神經網絡訓練函數函數功能:用訓練數據訓練BP神經網絡。函數形式:net,tr=train(NET,X,T,Pi,Ai)2.2.3 BP神經網絡預測用訓練好的BP神經網絡預測非線性函數輸出,并通過BP神經網絡預測輸出和期望輸出分析BP網絡的分析能力。MATLAB神經網絡工具箱提供的BP神經網絡預測函數是sim。1. sim:BP神經網絡預測函數函數功能:用訓練好的BP神經
7、網絡預測函數輸出函數形式:y=sim(net,y)以上三個函數的具體用法可以參考其自帶的幫助,本文不作詳述。根據需要擬合的函數有1個輸入參數、1個輸出參數,確定BP神經網絡為1-5-1。取函數的4000組輸入輸出數據,從中隨機選取3900組訓練網絡,100組數據測試網絡性能,網絡訓練好后用于非線性函數輸出。2.3 遺傳算法實現2.3.1 種群初始化個體編碼方法為實數編碼,每個個體均為一個實數串,由輸入層與隱含層連接權值、隱含層閾值、隱含層與輸出層連接權值以及輸出層閾值4部分組成。個體包含了神經網絡全部權值和閾值,在網絡結構已知的情況下,就可以構成一個結構、權值、閾值確定的神經網絡。2.3.2
8、適應度函數根據個體得到的BP神經網絡的初始權值和閾值,用訓練數據訓練BP神經網絡后預測系統(tǒng)輸出,把訓練好的BP神經網絡預測輸出作為個體適應度的值。2.3.3 選擇操作遺傳算法選擇操作有輪盤賭法、錦標賽法等多種方法,本文采用采用輪盤賭法,即基于適應度比例的選擇策略,每個個體i的選擇pi為:pi=fij=0nfi其中,fi為個體i的適應度值,N為種群的個體數目。2.3.4 交叉操作由于個體采用實數編碼,所以交叉操作方法采用實數交叉法,d第k個染色體ak和第l個染色體al在j位的交叉操作方法如下:akj=akj1-b+aijbaij=aij1-b+akjb其中,b是0,1間的隨機數。2.3.5 變異
9、操作選取第i個個體的第j個基因aij進行變異,變異操作方法如下:aij=aij+(aij-amax)*f(g) r0.5aij+(amin-aij)*f(g) r0.5式中,amax為基因aij的上界;amin為基因aij的下界;fg=r2(1-g/Gmax);r2為一個隨機數;g為當前迭代次數;amax是最大進化次數;r為0,1之間的隨機數三、 編程實現3.1 數據準備根據擬合函數得到4000組輸入input和輸出數據output,存入data中。for i=1:4000 input(i,:)=3*rand; output(i)=-input(i)*(input(i)2-3.2*input(
10、i)+2.89)*(input(i)-3)/2;endoutput=output;save data input output3.2 BP神經網絡主函數對于4000組數據,采用其中3900組用來訓練神經網絡,最后100組用來測試網絡擬合性能。%清空環(huán)境變量clccleardata;tic% 訓練數據預測數據提取及歸一化%下載輸入輸出數據load data output input %從1到4000間隨機排序k=rand(1,4000);m,n=sort(k); %找出訓練數據和預測數據input_train=input(n(1:3900),:);output_train=output(n(1:
11、3900),:);input_test=input(n(3901:4000),:);output_test=output(n(3901:4000),:); %選連樣本輸入輸出數據歸一化inputn,inputps=mapminmax(input_train);outputn,outputps=mapminmax(output_train); %BP網絡訓練%初始化網絡結構net=newff(inputn,outputn,5); net.trainParam.epochs=100;net.trainParam.lr=0.1;net.trainParam.goal=0.; %網絡訓練net=tra
12、in(net,inputn,outputn); %BP網絡預測%預測數據歸一化inputn_test=mapminmax(apply,input_test,inputps); %網絡預測輸出an=sim(net,inputn_test); %網絡輸出反歸一化BPoutput=mapminmax(reverse,an,outputps); %結果分析 figure(1)plot(BPoutput,:og)hold onplot(output_test,-*);legend(預測輸出,期望輸出,fontsize,12)title(BP網絡預測輸出,fontsize,12)xlabel(樣本,fon
13、tsize,12)ylabel(輸出,fontsize,12)print -dtiff -r600 4-3%預測誤差error=BPoutput-output_test; figure(2)plot(error,-*)title(神經網絡預測誤差) figure(3)plot(output_test-BPoutput)./BPoutput,-*);title(神經網絡預測誤差百分比) errorsum=sum(abs(error) toc save data net inputps outputps3.3 編碼函數function ret=Code(lenchrom,bound)% lench
14、rom input : 染色體長度% bound input : 變量的取值范圍% ret output: 染色體的編碼值flag=0;while flag=0pick=rand(1,length(lenchrom); %線性插值,編碼結果以實數向量存入ret中ret=bound(:,1)+(bound(:,2)-bound(:,1).*pick; flag=test(lenchrom,bound,ret); %檢驗染色體的可行性end3.4 適應度函數function fitness = fun(x)% x input 個體% fitness output 個體適應度值load data n
15、et inputps outputps %數據歸一化x=x;inputn_test=mapminmax(apply,x,inputps); %網絡預測輸出an=sim(net,inputn_test); %網絡輸出反歸一化fitness=mapminmax(reverse,an,outputps);3.5 選擇操作function ret=select(individuals,sizepop)% individuals input : 種群信息% sizepop input : 種群規(guī)模% ret output : 經過選擇后的種群 fitness1=individuals.fitness;s
16、umfitness=sum(fitness1);sumf=fitness1./sumfitness;index=; for i=1:sizepop %轉sizepop次輪盤 pick=rand; while pick=0 pick=rand; end for i=1:sizepop pick=pick-sumf(i); if pickpcross continue; end flag=0; while flag=0 %隨機選擇交叉位 pick=rand; while pick=0 pick=rand; end pos=ceil(pick.*sum(lenchrom); pick=rand; %
17、交叉開始 v1=chrom(index(1),pos); v2=chrom(index(2),pos); chrom(index(1),pos)=pick*v2+(1-pick)*v1; chrom(index(2),pos)=pick*v1+(1-pick)*v2; %交叉結束 flag1=test(lenchrom,bound,chrom(index(1),:);%檢驗染色體1可行性 flag2=test(lenchrom,bound,chrom(index(2),:);%檢驗染色體2可行性 if flag1*flag2=0 flag=0; else flag=1; end %如果兩個染色
18、體不是都可行,則重新交叉 end endret=chrom;3.7 變異操作function ret=Mutation(pmutation,lenchrom,chrom,sizepop,pop,bound)% pcorss input : 變異概率% lenchrom input : 染色體長度% chrom input : 染色體群% sizepop input : 種群規(guī)模% opts input : 變異方法的選擇% pop input : 當前種群的進化代數和最大的進化代數信息% ret output : 變異后的染色體for i=1:sizepop % 隨機選擇一個染色體進行變異 p
19、ick=rand; while pick=0 pick=rand; end index=ceil(pick*sizepop); % 變異概率決定該輪循環(huán)是否進行變異 pick=rand; if pickpmutation continue; end flag=0; while flag=0 % 變異位置 pick=rand; while pick=0 pick=rand; end pos=ceil(pick*sum(lenchrom); v=chrom(i,pos); v1=v-bound(pos,1); v2=bound(pos,2)-v; pick=rand; %變異開始 if pick0
20、.5 delta=v2*(1-pick(1-pop(1)/pop(2)2); chrom(i,pos)=v+delta; else delta=v1*(1-pick(1-pop(1)/pop(2)2); chrom(i,pos)=v-delta; end %變異結束 flag=test(lenchrom,bound,chrom(i,:); %檢驗染色體的可行性 endendret=chrom;3.8 遺傳算法主函數%清空環(huán)境變量clcclear %初始化遺傳算法參數%初始化參數maxgen=50; %進化代數,即迭代次數sizepop=30; %種群規(guī)模pcross=0.4; %交叉概率選擇,
21、0和1之間pmutation=0.2; %變異概率選擇,0和1之間 lenchrom=1; %每個變量的字串長度,如果是浮點變量,則長度都為1bound=0 3; %數據范圍 individuals=struct(fitness,zeros(1,sizepop), chrom,);%將種群信息定義為一個結構體avgfitness=; %每一代種群的平均適應度bestfitness=; %每一代種群的最佳適應度bestchrom=; %適應度最好的染色體 %初始化種群計算適應度值%初始化種群for i=1:sizepop %隨機產生一個種群 individuals.chrom(i,:)=Code
22、(lenchrom,bound); x=individuals.chrom(i,:); %計算適應度 individuals.fitness(i)=fun(x); %染色體的適應度end%找最好的染色體bestfitness bestindex=max(individuals.fitness);bestchrom=individuals.chrom(bestindex,:); %最好的染色體avgfitness=sum(individuals.fitness)/sizepop; %染色體的平均適應度%記錄每一代進化中最好的適應度和平均適應度trace=avgfitness bestfitnes
23、s; %迭代尋優(yōu)%進化開始for i=1:maxgen i %選擇 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); %計算適應度 fo
24、r j=1:sizepop x=individuals.chrom(j,:); %解碼 individuals.fitness(j)=fun(x); end %找到最小和最大適應度的染色體及它們在種群中的位置 newbestfitness,newbestindex=max(individuals.fitness); worestfitness,worestindex=min(individuals.fitness); %代替上一次進化中最好的染色體 if bestfitnessnewbestfitness bestfitness=newbestfitness; bestchrom=individuals.chrom(newbestindex,:); end individuals.chrom(worestindex,:)=bestchrom; individuals.fitness(worestindex)=bestfitness; av
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度浙江省二級建造師之二建建設工程法規(guī)及相關知識通關題庫(附帶答案)
- 統(tǒng)編版一年級上冊語文園地五 課件
- 小學2025年度工作計劃
- 外科護理消毒流程
- 遼寧何氏醫(yī)學院《中國音樂史理論與實踐》2023-2024學年第二學期期末試卷
- 2025屆湖北省隨州曾都區(qū)英語七年級第二學期期中質量跟蹤監(jiān)視模擬試題含答案
- 山東省聊城市東昌府區(qū)2025屆八年級英語第二學期期末質量檢測試題含答案
- 平頂山工業(yè)職業(yè)技術學院《動畫短片創(chuàng)意設計與賞析》2023-2024學年第二學期期末試卷
- 鄭州工商學院《建筑工程項目風險管理》2023-2024學年第二學期期末試卷
- 四川華新現代職業(yè)學院《歐洲浪漫音樂派欣賞》2023-2024學年第二學期期末試卷
- 人教版數學三年級下冊期末考試試卷及答案
- 2024年涉密人員考試試題庫保密基本知識試題附答案(考試直接用)
- 遺傳學智慧樹知到答案2024年吉林師范大學
- 2023-2024學年八年級第二學期期末數學考試試卷附答案
- 左心耳封堵術術后護理
- DB11T 765.4-2010 檔案數字化規(guī)范 第4部分:照片檔案數字化加工
- PTC Windchill:Windchill-系統(tǒng)架構與組件教程.Tex.header
- 物業(yè)消防安全管理培訓【共54張課件】
- 2024福建金皇環(huán)??萍脊拘@招聘(高頻重點提升專題訓練)共500題附帶答案詳解
- DL∕T 5766-2018 20KV及以下配電網工程工程量清單計算規(guī)范
- GA 2121-2023警用服飾禮服帽徽
評論
0/150
提交評論