📄 fitness.m
字号:
function y=fitness(chrom,p,aim)
global P_cross P_mutation
[Popsize len]=size(chrom);
fitness_gene=zeros(Popsize,1);
in_he=zeros(4,1);
out_he=zeros(4,1);
in_out=0;
out_out=0;
% 权值和阈值的分配设置
for i=1:Popsize
w_he=[chrom(i,1) chrom(i,5) chrom(i,9) chrom(i,13);
chrom(i,2) chrom(i,6) chrom(i,10) chrom(i,14);
chrom(i,3) chrom(i,7) chrom(i,11) chrom(i,15)];
w_out=[chrom(i,17) chrom(i,18) chrom(i,19) chrom(i,20)];
b_he=[chrom(i,4) chrom(i,8) chrom(i,12) chrom(i,16)];
b_out=chrom(i,21);
error=zeros(8,1);
for j=1:8
for s=1:4
% 隐层的输入与输出
in_he(s)=sum(w_he(:,s).*p(:,j))+b_he(s);%隐层的输入
% if in_he(s)>1.0e002
% out_he(s)=-1;
% else
out_he(s)=(1-exp(in_he(s)))/(1+exp(in_he(s))); %隐层的输出
% end
end
% 输出层的输入与输出
in_out=w_out*out_he+b_out;
out_out=1/(1+exp(-in_out));
error(j)=aim(j)-out_out;
end
fitness_gene(i)=8/sum(error.^2); % 染色体均方误差
end
y=fitness_gene;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -