利用Hopfield求解一个N6的TSP问题.docxVIP

  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文档。上传文档
查看更多
利用Hopfield求解一个N6的TSP问题

利用Hopfield求解一个N6的TSP问题此次设计考虑了N=10的情况,应用Hopfield神经网络求解思路为:利用n×n个神经元组成Hopfield神经网络,网络达到稳定状态时各个神经元之状态对应置换矩阵的各个元素值,各个城市间的距离作为一组约束信息决定神经元之间的连接强度wij。期望网络演变的最终结果给出最优解,也即以置换矩阵表明最短距离条件下路径之顺序。能量函数为:程序步骤如下:1.假设10个城市的位置坐标如表1所示,其中1-10表示10个城市的编号。表1 城市坐标城市12345678910X坐标0.10.20.40.50.70.80.20.50.70.9Y坐标0.60.30.10.50.20.40.80.90.60.82.载入城市坐标并计算各个城市之间的相互距离,设置参数N=10; %10个城市,城市间的坐标及距离的计算cityx=[0.1 0.2 0.4 0.5 0.7 0.8 0.2 0.5 0.7 0.9];cityy=[0.6 0.3 0.1 0.5 0.2 0.4 0.8 0.9 0.6 0.8]; for i=1:1:N for j=1:1:N d(i,j)=sqrt((cityx(i)-cityx(j))^2+(cityy(i)-cityy(j))^2); end end%参数设置 A=500; B=500; C=10; D=500; u0=0.002; lamda=0.0001;total=0;toend=0; time=clock; display([current time is ,num2str(time(1,4:6))])3.能量函数等相关函数的计算while toend==0 total=total+1; V=rand(N,N); U=atanh(2*V-1)*u0; for renew=1:1:1000 for ux=1:1:N for ui=1:1:N m1=0; m2=0; m3=0; m4=0; %求导 for j=1:1:N if j~=ui m1=m1+V(ux,j); end end m1=-A*m1; for y=1:1:N if y~=ux m2=m2+V(y,ui); end end m2=-B*m2; for x=1:1:N for j=1:1:N m3=m3+V(x,j); end end m3=-C*(m3-N); for y=1:1:N if y~=ux if ui==1 m4=m4+d(ux,y)*(V(y,ui+1)+V(y,N)); elseif ui==N m4=m4+d(ux,y)*(V(y,ui-1)+V(y,1)); else m4=m4+d(ux,y)*(V(y,ui+1)+V(y,ui-1)); end end end m4=-D*m4; Udao(ux,ui)=-U(ux,ui)+m1+m2+m3+m4; end end %状态更新 U=U+lamda*Udao; V=(1+tanh(U/u0))/2; for ux=1:1:N for ui=1:1:N if V(ux,ui)0.3 V(ux,ui)=0; end if V(ux,ui)0.7 V(ux,ui)=1; end end end end V;4.判断合法解 %合法解判断 test1=0; for ux=1:1:N for ui=1:1:N test1=test1+V(ux,ui); end endtest2=0; for x=1:1:N for i=1:1:N-1 for j=i+1:1:N test2=test2+V(x,i)*V(x,j); end end endtest3=0; for i=1:1:N for x=1:1:N-1 for y=x+1:1:N test3=test3+V(x,i)*V(y,i); end end end if test1==N test2==0 test3==0 toend = 1; else toend=0; end end time=clock; display([end time is ,num2str(time(1,4:6))]) V Total5.路径显示与长度计算%重排城市坐标 for j=1:1:N for i=1:1:N if V(i,j)==1 cityx_final(j)=cityx(i); cityy_final(j)=cityy(i); end end end cityx_final(N+1)=cityx_final(1); cityy_final(N+1)=cityy_final(1);%计算总长度 td=0; for i=1:1:N-1 td=td+sqrt((cityx_fi

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档