⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gadecod.m

📁 nnToolKit 神经网络工具包是基于 MATLAB 神经网络工具箱自行开发的一组神经网络算法函数库
💻 M
字号:
function [W1, B1, W2, B2, P, T, A1, A2, SE, val]=gadecod(x)
% 将遗传算法的编码分解为BP网络所对应的权值、阈值
%   x 为一个染色体
%输出:
%  W1 为输入层到隐层权值
%  B1 为输入层到隐层阈值
%  W2 为隐层到输出层权值
%  B2 为隐层到输出层阈值
%  P  为训练样本
%  T 为样本输出值
%  A1 为输入层到隐层误差
%  A2 为隐层到输出层误差
%  SE 为误差平方和
%  val 为遗传算法的适应值


[P,T,R,S1,S2,Q,S]=nninit;
% 前S1个编码为W1
 for i=1:S1,
    W1(i,1)=x(i);
end
% 接着的S1*S2个编码(即第R*S1个后的编码)为W2
for i=1:S2,
   W2(i,1)=x(i+S1);
end
% 接着的S1个编码(即第R*S1+S1*S2个后的编码)为B1
for i=1:S1,
   B1(i,1)=x(i+S1+S2);
end
% 接着的S2个编码(即第R*S1+S1*S2+S1个后的编码)为B2
for i=1:S2,
   B2(i,1)=x(i+S1+S2+S1);
end

% 计算S1与S2层的输出

[m n] = size(P) ;
sum=0; 
SE=0; 
for i=1:n 
   x1=W1*P(i)+B1; 
   A1=tansig(x1); 
   x2=W2*A1+B2; 
   A2=purelin(x2); 

    % 计算误差平方和 
    SE=sumsqr(T(i)-A2); 
    sum=sum+SE; 
end 
val=10/sum; % 遗传算法的适应值 

⌨️ 快捷键说明

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