📄 gadecod_test.m
字号:
% 将遗传算法的编码分解为BP网络所对应的权值、阈值
function [W1, shift_b1, W2, scale_a1, P, T, A1, A2, SE, val]=gadecod_test(x)
[P,T,R,S1,S2,S,Q]=nninit_test; %%%%%%%%%%%%% 修改
% 前R*S1个编码为W1
for i=1:S1,
for k=1:R,
W1(i,k)=x(R*(i-1)+k);
end
end
% 接着的S1*S2个编码(即第R*S1个后的编码)为W2
for i=1:S2,
for k=1:S1,
W2(i,k)=x(S1*(i-1)+k+R*S1);
end
end
% 接着的S1个编码(即第R*S1+S1*S2个后的编码)为 shift_b1
for k=1:S1,
shift_b1(k,1)=x((R*S1+S1*S2)+k);
end
% 接着的S1个编码(即第R*S1+S1*S2+S1个后的编码)为scale_a1
for k=1:S1,
scale_a1(k,1)=x((R*S1+S1*S2+S1)+k);
end
% 计算S1与S2层的输出
r=W1*P; Q=length(P);
for j =1:Q %%%% 所有的样本组
for i=1:S1 %%%% 每一组样本的输出 每列
A1(i,j)=hfun(r(i,j),shift_b1(i),scale_a1(i) );
% A1(j)= hfun(r(j),b1(j),a1(j));
end
end
A2=W2*A1;
%A2=sigmoid(A2);
% 计算误差平方和
SE=sumsqr(T-A2);
val=1/SE; % 遗传算法的适应值
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -