gadecod.m
上传用户:szhysm888
上传日期:2008-07-11
资源大小:35k
文件大小:1k
开发平台:

Matlab

  1. % 将遗传算法的编码分解为BP网络所对应的权值、阈值
  2. function [W1, B1, W2, B2, P, T, A1, A2, SE, val]=gadecod(x)
  3. [P,T,R,S1,S2,S]=nninit;
  4. % 前R*S1个编码为W1
  5.  for i=1:S1,
  6.     for k=1:R,
  7.       W1(i,k)=x(R*(i-1)+k);
  8.     end
  9. end
  10. % 接着的S1*S2个编码(即第R*S1个后的编码)为W2
  11. for i=1:S2,
  12.    for k=1:S1,
  13.       W2(i,k)=x(S1*(i-1)+k+R*S1);
  14.    end
  15. end
  16. % 接着的S1个编码(即第R*S1+S1*S2个后的编码)为B1
  17. for i=1:S1,
  18.    B1(i,1)=x((R*S1+S1*S2)+i);
  19. end
  20. % 接着的S2个编码(即第R*S1+S1*S2+S1个后的编码)为B2
  21. for i=1:S2,
  22.    B2(i,1)=x((R*S1+S1*S2+S1)+i);
  23. end
  24. % 计算S1与S2层的输出
  25. A1=tansig(W1*P,B1);
  26. A2=purelin(W2*A1,B2);
  27. % 计算误差平方和
  28. SE=sumsqr(T-A2);
  29. val=1/SE; % 遗传算法的适应值