智能计算结课大作业

上传人:哈**** 文档编号:137634970 上传时间:2020-07-10 格式:DOC 页数:29 大小:268.50KB
返回 下载 相关 举报
智能计算结课大作业_第1页
第1页 / 共29页
智能计算结课大作业_第2页
第2页 / 共29页
智能计算结课大作业_第3页
第3页 / 共29页
智能计算结课大作业_第4页
第4页 / 共29页
智能计算结课大作业_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《智能计算结课大作业》由会员分享,可在线阅读,更多相关《智能计算结课大作业(29页珍藏版)》请在金锄头文库上搜索。

1、 用Hopfield网络实现联想记忆1问题描述设有n个城市记为D=d1,d2,d3。,dn,用dxy表示 dx和dy之间的距离。一个旅行商从某一城市出发,访问各个城市一次且仅一次,再回到原出发城市,且要求总路径最短。2算法理论用神经网络解决组合优化问题是神经网络应用的一个重要方面。所谓组合优化问题,就是在给定约束条件下,使目标函数极小(或极大)的变量组合问题。将Hopfield网络应用于求解组合优化问题,把目标函数转化为网络的能量函数,把问题的变量对应到网络的状态。这样,当网络的能量函数收敛于极小值时,问题的最优解也随之求出。由于神经网络是并行计算的,其计算量不随维数的增加而发生指数性“爆炸”

2、,因而对于优化问题的高速计算特别有效。利用连续的Hopfield网络求解TSP问题。Hopfield神经网络主要是模拟生物神经网络的记忆机理,是一种全连接型的神经网络,对于每个神经元来说,自己输出的信号通过其他神经元又反馈到自身,所以Hopfield神经网络是一种反馈型神经网络。连续的Hopfield神经网络状态的演变过程是一个非线性动力学系统,可以用一组非线性微分方程来描述。系统的稳定性可用所谓的下“能量函数”(即李雅普诺夫或哈密顿函数)进行分析。在满足一定条件下,某种“能量函数”的能量在网络运行过程中不断地减小,最后趋于稳定的平衡状态。反馈网络达稳定状态时可以使系统的能量达极小,因而可用于

3、一些最优化问题的计算,如何把实际问题的目标函数表达成下述二次型的能量函数是一个关键问题。3求解步骤可设计一个矩阵描述旅行路线,假设只有5个目的地。城市 | 次序12345C100010C210000C300100C401000C500001则路线为:C2C4C3C1C51) 满足矩阵每行不多于一个“1”,即每个城市只能访问一次;E1=(1/2)*A*Vxi*Vyi;2) 满足矩阵每列不多于一个”1”,即一次只能访问一个城市; E2=(1/2)*B*Vxi*Vyi;3) 元素为“1”的个数为n,即共有n个城市; E3=(1/2)*C*(Vxi - N) ;4) 保证路线最短 E4=(1/2)*D

4、*Dxy * ( Vxi,Vy,i+ 1 ) + ( Vxi,Vy,i - 1 ) ;综上所述,可得TSP问题的能量函数如下: E=E1 + E2 + E3 + E4;使E其达到极小值即为最佳路径。4运行结果程序运行结果:routeLen = 2.8394最小路径变化过程5结果分析Hopfield网络很快得出十个城市的最佳路径。通过实验前后的对比,我们发现Hopfield联想记忆网络处理该问题有很好的效果,运行效率也高,值得借鉴。6源程序%Hopfield_neuro_net.m主程序:clear; CityNum=10;dislist,Clist=tsp(CityNum); A=500;B=

5、500;C=200;D=500;arf=1;miu0=0.02;lan=0.00001;EndNum=1000; y=zeros(CityNum,CityNum);for i=1:CityNum y(i,i)=1;endz=-miu0/2*log(9)*ones(CityNum,CityNum);delu=0.1*miu0*rand(CityNum,CityNum); figure(1);for k=1:EndNum z=z+lan*delu; for u=1:CityNum for i=1:CityNum y(u,i)=1/(1+exp(-2*z(u,i)/miu0); end end fo

6、r u=1:CityNum for i=1:CityNum A1=0; B1=0; for aa=1:CityNum A1=A1+y(u,aa); B1=B1+y(aa,i); end A1=A1-y(u,i); B1=B1-y(u,i); C1=0; for aa=1:CityNum for bb=1:CityNum C1=C1+y(aa,bb); end end C1=C1-CityNum; D1=0; for x=1:CityNum if x=u if i=1 D1=D1+dislist(u,x)*(y(x,2)+y(x,CityNum); elseif i=CityNum D1=D1+

7、dislist(u,x)*(y(x,1)+y(x,CityNum-1); else D1=D1+dislist(u,x)*(y(x,i+1)+y(x,i-1); end end end delu(u,i)=-z(u,i)*arf-A*A1-B*B1-C*C1-D*D1; end end for i=1:CityNum x n=max(y(:,i); S(i)=n; end for i=1:CityNum-1 for j=i+1:CityNum if S(i)=S(j) ff=1; else ff=0; break; end if ff=0 break; end end if ff=0 brea

8、k; end end if ff=1 bsf=CalDist(dislist,S); else bsf=4; end Arrbsf(k)=bsf; drawTSP(Clist,S,bsf,k,0); %pause;endfigure(2);plot(Arrbsf,r); hold on;title(搜索过程);legend(最优解);%tsp.m城市位置function DLn,cityn=tsp(n) if n=10 city10=0.4 0.4439;0.2439 0.1463;0.1707 0.2293;0.2293 0.761;0.5171 0.9414; 0.8732 0.6536;

9、0.6878 0.5219;0.8488 0.3609;0.6683 0.2536;0.6195 0.2634; for i=1:10 for j=1:10 DL10(i,j)=(city10(i,1)-city10(j,1)2+(city10(i,2)-city10(j,2)2)0.5; end end DLn=DL10; cityn=city10;end%Caldist.m建立函数脚本function F=CalDist(dislist,s) DistanV=0;n=size(s,2);for i=1:(n-1) DistanV=DistanV+dislist(s(i),s(i+1);en

10、dDistanV=DistanV+dislist(s(n),s(1);F=DistanV;%drawTSP.m画图function m=drawTSP(Clist,BSF,bsf,p,f)CityNum=size(Clist,1);for i=1:CityNum-1 plot(Clist(BSF(i),1),Clist(BSF(i+1),1),Clist(BSF(i),2),Clist(BSF(i+1),2),ms-,LineWidth,2,MarkerEdgeColor,k,MarkerFaceColor,g); hold on;endplot(Clist(BSF(CityNum),1),C

11、list(BSF(1),1),Clist(BSF(CityNum),2),Clist(BSF(1),2),ms-,LineWidth,2,MarkerEdgeColor,k,MarkerFaceColor,g);title(num2str(CityNum),城市TSP);if f=0 text(0,1,第 ,int2str(p), 步, 最短距离为 ,num2str(bsf);else text(0,1,最终搜索结果:最短距离 ,num2str(bsf);endhold off;pause(0.05);用SOFM网络对输入样本进行分类1问题描述利用SOFM网络实现对0-9数字及26个小写英文字

12、母的分类。用SOFM实现分类,将数字和小写字母由5*7黑白点矩阵表示,黑点为1,白点为0,输入层神经元为36个,形成35*36的输入矩阵。采用matlab工具箱中的SOFM神经网络对应函数newsom,将输入向量分为25类。2算法理论SOFM 的主要算法是一种无教师示范的聚类方法,能将任意输入模式在输出层映射成一维或二维离散图形,并保持其拓扑结构不变,即在无教师示范的情况下,通过对输入模式的自组织学习,在竞争层将分类结果表示出来。此外,网络通过对输入模式的反复学习,可以使连接权矢量空间分布密度和输入模式的概率分布趋于一致,即连接权矢量空间分布能反映输入模式的统计特征。总之,SOFM 神经网络能够将高维模式映射到一平面上,而保持其拓扑结构不变,亦即距离相近的模

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号