gaforbp.txt

来自「用GA训练BP网络,遗传算法与BP结合」· 文本 代码 · 共 43 行

TXT
43
字号
% 用GA训练BP网络的权值、阈值 
tic, % 开始计时 
[P,T,R,S1,S2,S]=nninit; % BP网络初始化 
aa=ones(S,1)*[-1 1]; 
popu=60; % 初始种群个数 
initPpp=initializega(popu,aa,'gabpEval'); 
gen=700; % 遗传代数 
[x endPop bPop trace]=ga(aa,'gabpEval',[],initPpp,[1e-6 1 1],'maxGenTerm',gen,... 
'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2 gen 3]); 
%%Lets take a look at the performance of the ga during the run 
subplot(2,1,1) 
plot(trace(:,1),1./trace(:,3),'r-') 
hold on 
plot(trace(:,1),1./trace(:,2),'b-') 
xlabel('Generation'); 
ylabel('Sum-Squared Error'); 
subplot(2,1,2) 
plot(trace(:,1),trace(:,3),'r-') 
hold on 
plot(trace(:,1),trace(:,2),'b-') 
xlabel('Generation'); 
ylabel('Fittness'); 
% 从编码x中解码出BP网络所对应的权值、阈值 
[W1 B1 W2 B2]=gadecod(x); 
% 仿真结果 
TT=simuff(P,W1,B1,'tansig',W2,B2,'purelin') 
toc % 结束计时 

其中,[x endPop bPop trace]=ga(aa,'gabpEval',[],initPpp,[1e-6 1 1],'maxGenTerm',gen,... 
'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2 gen 3]); 
%%Lets take a look at the performance of the ga during the run 
subplot(2,1,1) 
plot(trace(:,1),1./trace(:,3),'r-') 
hold on 
plot(trace(:,1),1./trace(:,2),'b-') 
xlabel('Generation'); 
ylabel('Sum-Squared Error'); 
subplot(2,1,2) 
plot(trace(:,1),trace(:,3),'r-') 
hold on 
plot(trace(:,1),trace(:,2),'b-') 
xlabel('Generation'); 
ylabel('Fittness');

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?