遗传算法优化BP神经网络实现代码.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
遗传算法优化BP神经 络实现代码 -CAL-FENGHAI.-(YICAI)-Company One 1 %馈取数据 data=xlsread(); %训练预测数据 data_train=data(l:113/:); data_test=data(ll 8:123〃:); input_train=data_trai n(:,l:9)‘; output_train=data_train(:/10); input_test=data_test(:/l-9)1; output_test=data_test(:/10)1; %数据归i化 [inputn/mininput/maxinput/outputn/minoutput/maxoutput]=premnmx(input_train,output_train); %对 p 和t进行字标准化预处理 net=newff(minmax(inputn)f[10/lJ/{tansig7purelin,}/,trainlm,); %网络训练 n et=train( net,input n,o utputn); %数据归i化 input n_test = tramnm x(input_t€Slmininput,maxinput); an二 sim(netjnputn); test_simu=postmnmx(an/minoutput/maxoutput); error=test_simu-output_train; plot(error) k=error./output_train function ret=Cross(pcross/lenchrom/chrom/sizepop/bound) %本函数完成交叉操作 % pcorss input :交叉概率 % lenchrom input :染色体的长度 % chrom input :染色体群 % sizepop input :种群规模 % ret output:交叉后的染色体 for i=l:sizepop %每•轮for循坏屮,町能会进行•次交叉操作,染色体是随机选择的,交叉位置也 是随机选择的,%但该轮for循环中是否进行交叉操作则由交叉槪率决定(continue控制) %随机选择两个染色体进行交叉 pick=rand(lz2); while prod(pick)==0 pick=rand(l/2); end in dex=ceil(pick.*sizepop); %交叉槪率决定是否进行交叉 pick=rand; while pick==O pick=rand; end if pickpcross continue; end flag=O; while flag==O %随机选择交叉位 pick=ra nd; while pick==O pick=ra nd; end pos=ceil(pick.*sum(lenchrom)); %随机选择进行•交叉的位置,即选邛第几个变量进行交叉,注 意:两个染色体交叉的位置相同 pick=rand; %交叉开始 vl=chrom(index(l),pos); v2=chrom(i ndex(2),pos); chrom(index(l)/pos)=pick*v2+(l-pick)#vl; chrom(index(2)/pos)=pick*vl+(l-pick)#v2; %交叉结束 flagl二test(lenchrom,bound〃chrom(indGX(“:)); %检验染色体 1 的可行性 flag2=test(lenchrom/bound/chrom(index(2)/:)); %检验染色体 2 旳可彳 j•性 if flagl*flag2==O flag=O; else flag=l; end %如果两个染色体不是都可行,则重新交叉 end end ret=chrom; %淸空环境变量 clc clear % %%网络结构建立 %读取数据 load data input output %节点个数 in putnum=2; hidde nn um=5; output num=l; %训练数据和预测数据 input_train=input(l:1900/:); input_test=input(1901:2000,:)1; output_train=output(l::1900); output_test=output(1901:2000); %选连样本输入输出数据归•化 [in putnzinputps]=mapmi nmax(i nput_trai n); (outputn/outputps]=mapminmax(output_train); %构建网络 net 二 n ewff(i nput n

文档评论(0)

kunpeng1241 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档