%遗传算法种群初始化函数
function f = initialize_variables(N,data,Number_input)
%N为初始种群个数,data为用于训练GDFNN网络的数据,Number_input为训练数据的输入量个数。
min = [1;0.2;0.001];%按顺序给定GDFNN三个主要参数的范围,一般不需要更改
max = [100;0.8;0.01];
M=3;K=3;
%M为遗传算法优化量的个数,即为GDFNN中的三个主要参数。
%K为种群中需要求取的量的个数,为rmse_fitting,rmse_generalization以及适应度函数值。
f=[];
for i = 1 : N
% Initialize the decision variables
for j = 1 : M
f(i,j) = min(j)+(max(j)-min(j))*rand; %在参数范围内随机初始化GDFNN训练参数
end
end
c=[];
rmse=[];
for i=1:N
[output_fitting1 output_generalization
rmse1]=GDFNN_operator(data,Number_input,f(i,1),f(i,2),f(i,3));
%调用GDFNN训练函数求得拟合的均方根误差和泛化的均方根误差。
a=rmse1(1);
b=rmse1(2);
c1=(sin(3.1415926/2*(a/(a+b))))^2*a+(sin(3.1415926/2*(b/(a+b))))^2*b;
%按照修改过的遗传算法适应度函数求得个体的适应度函数值
rmse=[rmse;rmse1];
c=[c;c1];%
end
for i=1:N