?? fitness.asv
字號:
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,17) chrom(i,18)];
b_out=chrom(i,9);
error=zeros(4,1);
for j=1:4
for s=1:2
% 隱層的輸入與輸出
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)=1/sum(error.^2); % 染色體均方誤差
end
y=fitness_gene;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -