蚁群算法的改进神经网络程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

%蚁群算法的改进神经网络程序%这是某个硕士论文中附带的程序,经过试用,完全不能用。%蚁群算法优化神经网络%参数值%ant_amount,蚂蚁总数%quanzhi_amount,权值总数%xuanzhi_amount,可选值总数%k,蚂蚁k%i,权值j%j,选值j%tao,信息素矩阵%zeng_tao,信息素增量%NC,最大迭代%rou,信息挥发度;%Q,信息总量:为蚂蚁循环一周时释放在所经过的路径上的信息素总量%zuixiaowucha,最小误差%shijiwucha实际误差%conter迭代次数%sum_tao,tao和%p,信息素概率%4个矩阵:%iwb(i,j),权值矩阵(i*j)%tao(i,j),信息素矩阵(i*j)%mayi_xuanzhi(k,i),每只蚂蚁选的权值矩阵(k*i)%mayi_xuanwei(k*i),每只蚂蚁选的权值位置矩阵(k*i)%网络主程序Clear;yangben_yuanshi=[7.81117011292.8;45168330823.1;58103251516;56144164361.8;82161406798.9;101519.550;18135208590;129181244440;12239890;1642444971038.3;16237470920;15125574297;4941.612425.115.7;217.696.34.726.73;6526.141.610.157.8;642251.720.795.1;297.5214.85.55.4;6.37.873.036.9711.1;4136.84.640.48.15;23.414.39.717.123.44;15.22.44.54.827.2;454315172102;6515054450;470.72117618.9;22126.34.67.4;130.448.893.416.3123.4;19854.3107.16.4148.8;521.1107177.19.2144.7;217.54051.84.967.5;637.4171.86.2;5478.67.45.4;15027633.690;16210920111183;592870915;20136.132.3647.2];%训练样本初值fori=1:35%训练样本归一化yangben_guiyi(i,:)=0.1+0.8*(yangben_yuanshi(i,:)-min(yangben_yuanshi(i,:)))/(max(yangben_yuanshi(i,:))-min(yangben_yuanshi(i,:)));endyangben_shuchu=[10000;10000;10000;10000;10000;10000;10000;10000;10000;10000;10000;10000;01000;01000;01000;01000;00100;00100;00100;00100;00100;00010;00010;00010;00010;00001;00001;00001;00001;00001;00001;00001;00001;00001;00001];%训练样本故障输出值yangben_guiyi=yangben_guiyi';yangben_shuchu=yangben_shuchu';net=newff(minmax(yangben_guiyi),[11,5],{'tansig','logsig'},'traingd');%生成原始神经网络XX=yangben_guiyi;YY=yangben_shuchu;P=XX;T=YY;R=size(P,1);S2=size(T,1);S1=11;%隐含层节点数S=R*S1+S1*S2+S1+S2;%蚁群算法编码长度%start初始化ant_amount=40;%蚂蚁总数quanzhi_amount=S;%权值总数xuanzhi_amount=30;%可选值总数rand('state',0);tao=rand(quanzhi_amount,xuanzhi_amount);%tao,信息素矩阵NC=1000;%最大迭代次数rou=0.7;%信息持久性Q=30;%信息总量p=zeros(xuanzhi_amount,1);%p,信息素概率zuixiaowucha=0.001;%最小误差counter=1;%迭代计数shijiwucha=0.1;%实际误差iwb=rand(S,xuanzhi_amount)*(-20)+10;%权值矩阵mayi_xuanzhi=zeros(ant_amount,quanzhi_amount);%每只蚂蚁选的权值矩阵(k*i)初始化mayi_xuanwei=zeros(ant_amount,quanzhi_amount);%每只蚂蚁选的权值位置矩阵(k*i)初始化whileshijiwuchazuixiaowuchaifcounterNCbreak;end%蚂蚁选参fork=1:ant_amount%蚂蚁k,ant_amount:蚂蚁总数fori=1:quanzhi_amountsum_tao=0;forj=1:xuanzhi_amountsum_tao=sum_tao+tao(i,j);endforj=1:xuanzhi_amountp(j,1)=tao(i,j)/sum_tao;end%选krand('state',0);random=rand(1);sum_p=p(1,1);j=0;whilesum_prandomifj=xuanzhi_amountbreak;endj=j+1;sum_p=sum_p+p(j,1);endtaowei=j;mayi_xuanzhi(k,i)=iwb(i,taowei);mayi_xuanwei(k,i)=taowei;endendP=XX;T=YY;R=size(P,1);S2=size(T,1);S1=11;%隐含层节点数S=R*S1+S1*S2+S1+S2;%蚁群算法编码长度%前R*S1个编码为Wlfori=1:S1fork=1:RW1(i,k)=iwb(R*(i-1)+k);endend%接着的S1*S2个编码(即第R*S1个后的编码)为W2fori=1:S2fork=1:S1W2(i,k)=iwb(S1*(i-1)+k+R*S1);endend%接着的S1个编码(即第R*S1+S1*S2个后的编码)为B1fori=1:S1B1(i,1)=iwb((R*S1+S1*S2)+i);end%接着的S2个编码(即第R*S1+S1*S2+S1个后的编码)为B2fori=1:S2B2(i,1)=iwb((R*S1+S1*S2+S1)+i);endnet.IW{1,1}=W1;%权值iwnet.LW{2,1}=W2;%权值lwnet.b{1,1}=B1;%权值bnet.b{2,1}=B2;%权值bXX=P;YY=T;o=sim(net,XX);e=abs(o-YY);shijiwucha=max(e);shijiwucha=max(shijiwucha);zeng_tao=zeros(quanzhi_amount,xuanzhi_amount);zeng_tao=zeng_tao+Q/shijiwucha;tao=rou*tao+zeng_tao;counter=counter+1;endP=XX;T=YY;R=size(P,1);S2=size(T,1);S1=11;S=R*S1+S1*S2+S1+S2;fori=1:S1fork=1:RW1(i,k)=iwb(R*(i-1)+k);endendfori=1:S2fork=1:S1W2(i,k)=iwb(S1*(i-1)+k+R*S1);endendfori=1:S1B1(i,1)=iwb((R*S1+S1*S2)+i);endfori=1:S2B2(i,1)=iwb((R*S1+S1*S2+S1)+i);endnet.IW{1,1}=W1;net.LW{2,1}=W2;net.b{1,1}=B1;net.b{2,1}=B2;XX=P;YY=T;yangbenx_yuanshi=[1924551140;70.469.5241.228.910.4;981232963316;20537053526805;448931457637;1253904972020.69;1609017275;43711384990;36010023016380];%故障辨识样本初值fori=1:9%故障样本归一化yangbenx_guiyi(i,:)=0.1+0.8*(yangbenx_yuanshi(i,:)-min(yangbenx_yuanshi(i,:)))/(max(yangbenx_yuanshi(i,:))-min(yangbenx_yuanshi(i,:)));endyangbenx_guiyi=yangbenx_guiyi';yangbenx_shuchu=sim(net,yangbenx_guiyi);%辨识故障样本,输出辨识结果yangbenx_shuchu=yangbenx_shuchu';end

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功