神經(jīng)網(wǎng)絡遺傳算法函數(shù)極值尋優(yōu)-非線性函數(shù)極值_第1頁
神經(jīng)網(wǎng)絡遺傳算法函數(shù)極值尋優(yōu)-非線性函數(shù)極值_第2頁
神經(jīng)網(wǎng)絡遺傳算法函數(shù)極值尋優(yōu)-非線性函數(shù)極值_第3頁
神經(jīng)網(wǎng)絡遺傳算法函數(shù)極值尋優(yōu)-非線性函數(shù)極值_第4頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

%%清空環(huán)境變量clccleartic%%訓練數(shù)據(jù)預測數(shù)據(jù)提取及歸一化%下載輸入輸出數(shù)據(jù)loaddatainputoutput%從1到2000間隨機排序k=rand(1,4000);[m,n]=sort(k);%找出訓練數(shù)據(jù)和預測數(shù)據(jù)input_train=input(n(1:3900),:)';output_train=output(n(1:3900),:)';input_test=input(n(3901:4000),:)';output_test=output(n(3901:4000),:)';%選連樣本輸入輸出數(shù)據(jù)歸一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);%%BP網(wǎng)絡訓練%%初始化網(wǎng)絡結(jié)構net=newff(inputn,outputn,5);net.trainParam.epochs=100;net.trainParam.lr=0.1;net.trainParam.goal=0.0000004;%網(wǎng)絡訓練net=train(net,inputn,outputn);%%BP網(wǎng)絡預測%預測數(shù)據(jù)歸一化inputn_test=mapminmax('apply',input_test,inputps);%網(wǎng)絡預測輸出an=sim(net,inputn_test);%網(wǎng)絡輸出反歸一化BPoutput=mapminmax('reverse',an,outputps);%%結(jié)果分析figure(1)plot(BPoutput,':og')holdonplot(output_test,'-*');legend('預測輸出',期望輸出','fontsize',12)title('BP網(wǎng)絡預測輸出','fontsize',12)xlabel('樣本','fontsize',12)ylabel('輸出','fontsize',12)print-dtiff-r6004-3%預測誤差error=BPoutput-output_test;figure(2)plot(error,'-*')title(神經(jīng)網(wǎng)絡預測誤差')figure(3)plot((output_test-BPoutput)./BPoutput,'-*');title(神經(jīng)網(wǎng)絡預測誤差百分比')errorsum=sum(abs(error))tocsavedatanetinputpsoutputps%%Codefunctionret=Code(lenchrom,bound)%本函數(shù)將變量編碼成染色體,用于隨機初始化一個種群%lenchrominput:染色體長度%boundinput:變量的取值范圍%retoutput:染色體的編碼值flag=0;whileflag==0pick=rand(1,length(lenchrom));ret=bound(:,1)'+(bound(:,2)-bound(:,1))'.*pick;%線性插值,編碼結(jié)果以實數(shù)向量存入ret中flag=test(lenchrom,bound,ret);%檢驗染色體的可行性end%%Crossfunctionret=Cross(pcross,lenchrom,chrom,sizepop,bound)%本函數(shù)完成交叉操作

%pcorss%lenchrominputinput%chrominput:染色體群%sizepop%pcorss%lenchrominputinput%chrominput:染色體群%sizepopinput%ret:交叉概率:染色體的長度:種群規(guī)模output:交叉后的染色體fori=1:sizepop%每一輪for循環(huán)中,可能會進行一次交叉操作,染色體是隨機選擇的交叉位置也是隨機選擇的,%但該輪for循環(huán)中是否進行交叉操作則由交叉概率決定(continue控制)%隨機選擇兩個染色體進行交叉pick=rand(1,2);whileprod(pick)==0pick=rand(1,2);endindex=ceil(pick.*sizepop);%交叉概率決定是否進行交叉pick=rand;whilepick==0pick=rand;endifpick>pcrosscontinue;endflag=0;whileflag==0%隨機選擇交叉位pick=rand;whilepick==0pick=rand;endpos=ceil(pick.*sum(lenchrom));%隨機選擇進行交叉的位置,即選擇第幾個變量進行交叉,注意:兩個染色體交叉的位置相同pick=rand;%交叉開始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;%交叉結(jié)束flag1=test(lenchrom,bound,chrom(index(1),:));%檢驗染色體1的可行性flag2=test(lenc

溫馨提示

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

評論

0/150

提交評論