【HNN TSP】hopfield神经网络求解旅行商问题【含Matlab源码 408期】

该博客介绍了如何利用Hopfield神经网络解决旅行商问题,包括离散和连续Hopfield网络的概述,以及将最优化问题转化为网络能量函数的方法。提供了MATLAB源码实现,展示了网络的运行过程和结果。
摘要由CSDN通过智能技术生成

在这里插入图片描述

⛄一、简介

1 Hopfield神经网络
在这里插入图片描述
2 离散Hopfield网络
在这里插入图片描述
在这里插入图片描述
3 连续Hopfield网络
在这里插入图片描述
4
CHNN用非线性微分方程描述,网络的稳定性通过构造其能量函数(又称李雅谱诺夫函数),并用李雅谱诺夫第二稳定性定理进行判断。
说明:
(1)李雅谱诺夫函数并不唯一;
(2)若找不到网络的李雅谱诺夫函数,不能证明网络不稳定;
(3)目前没有统一的找李雅谱诺夫函数的方法;
(4)用能量函数的方法研究网络的稳定性,在数学上欠严谨。
如果把一个最优化问题的目标函数转换成网络的能量函数,把问题的变量对应于网络的状态,那么Hopfield神经网络就能够用于解决优化组合问题。
应用Hopfield神经网络来解决优化计算问题的一般步骤为:
(1)分析问题:网络输出与问题的解相对应;
(2)构造网络能量函数:使其最小值对应问题最佳解;
(3)设计网络结构:由能量函数和网络稳定条件设计网络参数,得到动力学方程;
(4)MATLAB软件模拟。

⛄二、部分源代码

clear;

CityNum=10;
[dislist,Clist]=tsp(CityNum);

A=500;
B=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;
end
z=-miu0/2log(9)ones(CityNum,CityNum);
delu=0.1
miu0
rand(CityNum,CityNum);

figure(1);
for k=1:EndNum
z=z+landelu;
for u=1:CityNum
for i=1:CityNum
y(u,i)=1/(1+exp(-2
z(u,i)/miu0));
end
end
for 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 i1
D1=D1+dislist(u,x)*(y(x,2)+y(x,CityNum));
elseif i
CityNum
D1=D1+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-AA1-BB1-CC1-D*D1;
end
end
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;0.6878 0.5219;0.8488 0.3609;0.6683 0.2536;0.6195 0.2634];%10 cities d’=2.691
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

if n==30
city30=[41 94;37 84;54 67;25 62;7 64;2 99;68 58;71 44;54 62;83 69;64 60;18 54;22 60;
83 46;91 38;25 38;24 42;58 69;71 71;74 78;87 76;18 40;13 40;82 7;62 32;58 35;45 21;41 26;44 35;4 50];%30 cities d’=423.741 by D B Fogel
for i=1:30
for j=1:30
DL30(i,j)=((city30(i,1)-city30(j,1))2+(city30(i,2)-city30(j,2))2)^0.5;
end
end
DLn=DL30;
cityn=city30;
end

if n==50
city50=[31 32;32 39;40 30;37 69;27 68;37 52;38 46;31 62;30 48;21 47;25 55;16 57;
17 63;42 41;17 33;25 32;5 64;8 52;12 42;7 38;5 25; 10 77;45 35;42 57;32 22;
27 23;56 37;52 41;49 49;58 48;57 58;39 10;46 10;59 15;51 21;48 28;52 33;
58 27;61 33;62 63;20 26;5 6;13 13;21 10;30 15;36 16;62 42;63 69;52 64;43 67];%50 cities d’=427.855 by D B Fogel
for i=1:50
for j=1:50
DL50(i,j)=((city50(i,1)-city50(j,1))2+(city50(i,2)-city50(j,2))2)^0.5;
end
end
DLn=DL50;
cityn=city50;
end

if n==75
city75=[48 21;52 26;55 50;50 50;41 46;51 42;55 45;38 33;33 34;45 35;40 37;50 30;
55 34;54 38;26 13;15 5;21 48;29 39;33 44;15 19;16 19;12 17;50 40;22 53;21 36;
20 30;26 29;40 20;36 26;62 48;67 41;62 35;65 27;62 24;55 20;35 51;30 50;
45 42;21 45;36 6;6 25;11 28;26 59;30 60;22 22;27 24;30 20;35 16;54 10;50 15;
44 13;35 60;40 60;40 66;31 76;47 66;50 70;57 72;55 65;2 38;7 43;9 56;15 56;
10 70;17 64;55 57;62 57;70 64;64 4;59 5;50 4;60 15;66 14;66 8;43 26];%75 cities d’=549.18 by D B Fogel
for i=1:75
for j=1:75
DL75(i,j)=((city75(i,1)-city75(j,1))2+(city75(i,2)-city75(j,2))2)^0.5;
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]王颖.基于Hopfield网络的TSP路径优化研究[J].赤峰学院学报(自然科学版). 2015,31(12)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值