Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
普通会员
注册日期: 2008-10-06
年龄: 25
帖子: 53
声望力: 18 ![]() |
![]()
遗传算法优化神经网络有两种情况,一种是把遗传算法用于神经网络的训练,充分利用遗传算法全局搜索的特性,得到一个初始的权值矩阵和初始的阈值向量,再用其它训练算法(如BP算法),得到最终的神经网络结构,另外一种情况,则是把训练好的神经网络作为黑箱函数,用遗传算法搜索该黑箱函数的最大值。本源码由GreenSim团队原创,转载请注明,有意购买源码或代写相关程序,请与GreenSim团队联系。
function [Yp,Xp,LC1,LC2]=MYGA(bpnet,M,N,Pm,LB,UB,XX,YY) %% % GreenSim团队原创作品,转载请注明 % 欢迎访问GreenSim——算法仿真团队→http://blog.sina.com.cn/greensim %% 输入参数列表 % bpnet 训练好的神经网络 % M 遗传进化迭代次数 % N 种群规模(取偶数) % Pm 变异概率 % LB 决策变量的下边界,1×5 % UB 决策变量的上边界,1×5 % XX 原始训练数据的输入部分 % YY 原始训练数据的输出部分 %% 输出参数列表 % Yp 最优个体对应输出值 % Xp 最优个体,1×5 % LC1 收敛曲线1,各代最优个体适应值的记录 % LC2 收敛曲线2,各代群体平均适应值的记录 %% --------------------------------------------------------------- %第一步:变量初始化 LC1=zeros(1,M);%收敛曲线1 LC2=LC1;%收敛曲线2 %第二步:随机产生初始钟群 farm=zeros(N,5); for i=1:N for j=1:5 farm(i,j)=(UB(j)-LB(j))+B(j); end end counter=0;%设置迭代计数器 while counter<M %第三步:交叉 newfarm=zeros(N,5);%新种群 Ser=randperm(N);%保证随机配对 for i=1:2:(N-1) AA=farm(Ser(i),:);% 待交叉的两个父代个体 BB=farm(Ser(i+1),:); p2=rand; pos=unidrnd(4); A=[p1*AA(1:pos)+(1-p1)*BB(1:pos),p2*AA((pos+1):5)+(1-p2)*BB((pos+1):5)]; newfarm(i,:)=A; newfarm(i+1,:)=B; end %新旧种群合并 FARM=[farm;newfarm]; %第四步:选择复制 FITNESS=zeros(1,2*N); fitness=zeros(1,N); for i=1:(2*N) X=FARM(i,:); FITNESS(i)=NETSIM(bpnet,X',XX,YY); end Ser=randperm(2*N);%选择复制采取两两随机配对竞争的方式,具有保留最优个体的能力 for i=1:N f2=FITNESS(Ser(2*i)); if f1>=f2 farm(i,:)=FARM(Ser(2*i-1),:); fitness(i)=FITNESS(Ser(2*i-1)); else farm(i,:)=FARM(Ser(2*i),:); fitness(i)=FITNESS(Ser(2*i)); end end %记录最佳个体和收敛曲线 maxfitness=max(fitness); meanfitness=mean(fitness); LC1(counter+1)=maxfitness;%收敛曲线1,各代最优个体适应值的记录 LC2(counter+1)=meanfitness;%收敛曲线2,各代群体平均适应值的记录 pos=find(fitness==maxfitness); Xp=farm(pos(1),:); Yp=maxfitness; %第五步:变异 for i=1:N if Pm>rand&&i~=pos(1);%变异概率为Pm X=farm(i,:); p1=unidrnd(5); farm(i,:)=X; end end counter=counter+1; disp(counter); end
__________________
算法设计、代写程序,欢迎访问GreenSim团队主页→ http://blog.sina.com.cn/greensim |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-06-01
年龄: 42
帖子: 4
声望力: 0 ![]() |
![]()
”遗传算法优化神经网络有两种情况,一种是把遗传算法用于神经网络的训练,充分利用遗传算法全局搜索的特性,得到一个初始的权值矩阵和初始的阈值向量,再用其它训练算法(如BP算法),得到最终的神经网络结构”
有没有 第一种情况的源码,谢谢。要求6个输入,1个输出。约40组训练样本。 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2010-04-08
年龄: 35
帖子: 1
声望力: 0 ![]() |
![]()
非常感谢
![]() ![]() ![]() ![]() |
![]() |
![]() |