基因算法 人工神经元网络 matlab

来源:百度知道 编辑:UC知道 时间:2024/05/28 13:07:24
这是一个基因算法在人工神经元网络中的应用的matlab程序,那位仁兄能告诉我这个程序是计算了个什么?还有程序框图怎么画啊!多谢啦!

clear
Popsize=40;
P_mutation=0.1;
P_cross=0.6;
real chrom;
real currentbest_value;
m=25; %权值和阈值的初始化范围
chrom=2*m.*rand(Popsize,21)-m; % 产生初始种群
temchrom=zeros(size(chrom));
p=[0 0 0 0 1 1 1 1;0 0 1 1 0 0 1 1;1 0 1 0 1 0 1 0]; %输入值
aim=[0 1 1 0 1 0 0 1]'; % 输出值

ecope=100;
currentbest=zeros(ecope,21);
currentbest_value=zeros(ecope,1);

fitness_gene=fitness(chrom,p,aim); %计算的染色体均方误差 fitness=8/sum(error.^2)

[c_value c_order]=max(fitness_gene);

for k=1:ecope
%保留当前最好染色体
[c_value c_order]=max(fitness_gene);
currentbest(k,:)=chrom(c_order,:);
currentbest_value(k)=c_value;

% 选择过程
fit=cumsum(fitness_gene)/sum(fitness_gene);

N=Popsize;
s=select(fit,N);
temchrom=chrom(s,:);
%交叉

你给出了遗传算法的MATLAB程序(Genetic Agorithm),最好别叫它为基因算法,这不是标准翻译。
程序里有遗传算法完整的过程(选择、交叉、变异、计算适应度值,目标就是要fitness=8/sum(error.^2)最大,那么sum(error.^2)也就是均方误差最小,这也实现了训练的目的。
看来这个程序只是用遗传算法代替了传统的误差反射传播算法,以均方误差最小作为收敛条件。这不是真正的遗传算法和人工神经网络相结合。有一种模式是用遗传算法来调整网络的连接权值。

只是算出来了遗传的图谱