神经网络遗传算法函数极值寻优-非线性函数极值_第1页
神经网络遗传算法函数极值寻优-非线性函数极值_第2页
神经网络遗传算法函数极值寻优-非线性函数极值_第3页
神经网络遗传算法函数极值寻优-非线性函数极值_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、% 清空环境变量clccleartic% 训练数据预测数据提取及归一化 %下载输入输出数据load data input output%从1到2000间随机排序k=rand(1,4000);m,n=sort(k);%找出训练数据和预测数据input_train=input(n(1:3900),:);output_train=output(n(1:3900),:);input_test=input(n(3901:4000),:);output_test=output(n(3901:4000),:);%选连样本输入输出数据归一化inputn,inputps=mapminmax(input_trai

2、n);outputn,outputps=mapminmax(output_train);% BP网络训练% %初始化网络结构net=newff(inputn,outputn,5);%网络训练net=train(net,inputn,outputn);% BP网络预测%预测数据归一化inputn_test=mapminmax(apply,input_test,inputps);%网络预测输出an=sim(net,inputn_test);%网络输出反归一化BPoutput=mapminmax(reverse,an,outputps);% 结果分析figure(1)plot(BPoutput,:o

3、g)hold onplot(output_test,-*);legend(预测输出,期望输出,fontsize,12)title(BP网络预测输出,fontsize,12)xlabel(样本,fontsize,12)ylabel(输出,fontsize,12)print -dtiff -r600 4-3%预测误差error=BPoutput-output_test;figure(2)plot(error,-*)title(神经网络预测误差)figure(3)plot(output_test-BPoutput)./BPoutput,-*);title(神经网络预测误差百分比)errorsum=s

4、um(abs(error)tocsave data net inputps outputps%Codefunction ret=Code(lenchrom,bound)%本函数将变量编码成染色体,用于随机初始化一个种群% lenchrom input : 染色体长度% bound input : 变量的取值范围% ret output: 染色体的编码值flag=0;while flag=0pick=rand(1,length(lenchrom);ret=bound(:,1)+(bound(:,2)-bound(:,1).*pick; %线性插值,编码结果以实数向量存入ret中flag=test

5、(lenchrom,bound,ret); %检验染色体的可行性end%Crossfunction ret=Cross(pcross,lenchrom,chrom,sizepop,bound)%本函数完成交叉操作% pcorss input : 交叉概率% lenchrom input : 染色体的长度% chrom input : 染色体群% sizepop input : 种群规模% ret output : 交叉后的染色体for i=1:sizepop %每一轮for循环中,可能会进行一次交叉操作,染色体是随机选择的,交叉位置也是随机选择的,%但该轮for循环中是否进行交叉操作则由交叉概

6、率决定(continue控制)% 随机选择两个染色体进行交叉pick=rand(1,2);while prod(pick)=0pick=rand(1,2);endindex=ceil(pick.*sizepop);% 交叉概率决定是否进行交叉pick=rand;while pick=0pick=rand;endif pickpcrosscontinue;endflag=0;while flag=0% 随机选择交叉位pick=rand;while pick=0pick=rand;endpos=ceil(pick.*sum(lenchrom); %随机选择进行交叉的位置,即选择第几个变量进行交叉,注意:两个染色体交叉的位置相同pick=rand; %交叉开始v1=chrom(index(1),pos);v2=chrom(index(2),pos);chrom(index(1),pos)=pick*v2+(1-pick)*v1;chrom(index(2),pos)=pick*v1+(1-pick)*v2; %交叉结束flag1=test(lenchrom,bound,chrom(index(1),:); %检验染色体1的可行性 flag2=test(lenchrom,boun

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论