所用数据同“2 - 较复杂的BP神经网络实现”
GAMain.m
clc
clear
close all
%% 加载神经网络的训练样本 测试样本每列一个样本 输入P 输出T
%样本数据就是前面问题描述中列出的数据
load dataa
% warning('off')
% 初始隐层神经元个数
%hiddennum=31;
hiddennum=13;
inputnum=size(P1,1); % 输入层神经元个数
outputnum=size(T1,1); % 输出层神经元个数
w1num=inputnum*hiddennum; % 输入层到隐层的权值个数=输入层*隐含层节点个数
w2num=outputnum*hiddennum;% 隐层到输出层的权值个数=输出层*隐含层节点个数
N=w1num+hiddennum+w2num+outputnum; %待优化的变量的个数=权值+阈值(隐含层+输出层节点个数)
%% 定义遗传算法参数
NIND=40; %个体数目,种群大小 #可修改该值来调整优化效果
MAXGEN=100; %最大遗传代数 #可修改该值来调整优化效果
PRECI=10; %变量的二进制位数,个体长度 ??如何确定,对优化结果有何影响
GGAP=0.95; %代沟,95%的父代复制给了子代。GGAP缺省或NaN表示=1,GGAP也可大于1。传统遗传算子包括:选择,交叉,变异;新的遗传算子,如代沟,人工选择等等
px=0.7; %交叉概率
pm=0.01; %变异概率
trace=zeros(N+1,MAXGEN); %寻优结果的初始值,初始权值和阈值
FieldD=[repmat(PRECI,1,N);repmat([-0.5;0.5],1,N);repmat([1;0;1;