資源簡介
遺傳算法的優化rbf神經網絡,可以執行,用Matlab程序實現,
代碼片段和文件信息
%函數功用:利用GA算法來優化RBF網絡中的各種權值
%編寫時間:2009.3.17
clear?all
close?all
G?=?15;
Size?=?30;
CodeL?=?10;
for?i?=?1:3
????MinX(i)?=?0.1*ones(1);
????MaxX(i)?=?3*ones(1);
end
for?i?=?4:1:9
????MinX(i)?=?-3*ones(1);
????MaxX(i)?=?3*ones(1);
end
for?i?=?10:1:12
????MinX(i)?=?-ones(1);
????MaxX(i)?=?ones(1);
end
E?=?round(rand(Size12*CodeL));??%Initial?Code!
BsJ?=?0;
for?kg?=?1:1:G
????time(kg)?=?kg
????
????for?s?=?1:1:Size
????????m?=?E(s:);
????????
????????for?j?=?1:1:12
????????????y(j)?=?0;
????????????
????????????mj?=?m((j-1)*CodeL?+?1:1:j*CodeL);
????????????for?i?=?1:1:CodeL
????????????????y(j)?=?y(j)?+?mj(i)*2^(i-1);
????????????end
????????????f(sj)?=?(MaxX(j)?-?MinX(j))*y(j)/1023?+?MinX(j);
????????end
????????
????????%?************Step?1:Evaluate?BestJ?*******************
????????p?=?f(s:);
????????
????????[pBsJ]?=?RBF(pBsJ);
????????
????????BsJi(s)?=?BsJ;
????end
????
????[OderJiIndexJi]?=?sort(BsJi);
????BestJ(kg)?=?OderJi(1);
????BJ?=?BestJ(kg);
????Ji?=?BsJi+1e-10;
????
????fi?=?1./Ji;
????[OderfiIndexfi]?=?sort(fi);
????Bestfi?=?Oderfi(Size);
????BestS?=?E(Indexfi(Size):);
????
????%?***************Step?2:Select?and?Reproduct?Operation*********
????fi_sum?=?sum(fi);
????fi_Size?=?(Oderfi/fi_sum)*Size;
????
????fi_S?=?floor(fi_Size);
????
????kk?=?1;
????for?i?=?1:1:Size
????????for?j?=?1:1:fi_S(i)
????????????TempE(kk:)?=?E(Indexfi(i):);
????????????kk?=?kk?+?1;
????????end
????end
????
????%?****************Step?3:Crossover?Operation*******************
????pc?=?0.60;
????n?=?ceil(20*rand);
????for?i?=?1:2:(Size?-?1)
????????temp?=?rand;
????????if?pc>temp
????????????for?j?=?n:1:20
????????????????TempE(ij)?=?E(i+1j);
????????????????TempE(i+1j)?=?E(ij);
????????????end
????????end
????end
????????TempE(Size:)?=?BestS;
????????E?=?TempE;
????????
?????%*****************Step?4:Mutation?Operation*********************
?????pm?=?0.001?-?[1:1:Size]*(0.001)/Size;
?????for?i?=?1:1:Size
?????????for?j?=?1:1:12*CodeL
?????????????temp?=?rand;
?????????????if?pm>temp
?????????????????if?TempE(ij)?==?0
?????????????????????TempE(ij)?=?1;
?????????????????else
?????????????????????TempE(ij)?=?0;
?????????????????end
?????????????end
?????????end
?????end
?????
?????%Guarantee?TempE(Size:)?belong?to?the?best?individual
?????TempE(Size:)?=?BestS;
?????E?=?TempE;
?????%********************************************************************
?end
?
?Bestfi
?BestS
?fi
?Best_J?=?BestJ(G)
?figure(1);
?plot(timeBestJ);
?xlabel(‘Times‘);ylabel(‘BestJ‘);
?save?pfile?p;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2548??2009-03-17?23:27??RBF網絡遺傳算法優化程序\GA.m
?????文件???????1279??2009-03-17?23:26??RBF網絡遺傳算法優化程序\RBF.m
?????文件???????1181??2009-03-13?21:24??RBF網絡遺傳算法優化程序\RBF.asv
?????文件???????2439??2009-03-15?23:23??RBF網絡遺傳算法優化程序\GA.asv
?????文件????????280??2009-03-15?23:40??RBF網絡遺傳算法優化程序\pfile.mat
?????文件???????1303??2009-03-18?00:20??RBF網絡遺傳算法優化程序\Test.m
?????文件???????1303??2009-03-18?00:17??RBF網絡遺傳算法優化程序\Test.asv
?????目錄??????????0??2009-03-13?20:53??RBF網絡遺傳算法優化程序
?????文件????????183??2009-02-02?09:47??Matlab中文論壇--助努力的人完成畢業設計.url
?????文件???????3543??2009-02-01?16:19??使用幫助:新手必看.htm
-----------?---------??----------?-----??----
????????????????14059????????????????????10
- 上一篇:LQR控制器程序倒立擺為例
- 下一篇:數字信號處理--變聲器報告
評論
共有 條評論