📄 mytsp.asv
字号:
function myTSP
%城市数目
N=10;
%城市坐标及城市间距离
cityx=[0.4,0.2439,0.1707,0.2293,0.5171,0.8732,0.6878,0.8488,0.6683,0.6195];
cityy=[0.4439,0.1463,0.2293,0.761,0.9414,0.6536,0.5219,0.3609,0.2536,0.2634];
for i=1:1:10
for j=1:1:10
d(i,j)=sqrt((cityx(i)-cityx(j))^2+(cityy(i)-cityy(j))^2);
end
end
%网络参数
A=500;
B=500;
C=200;
D=500;
u0=0.02;
tao=1;
lamda=0.0001;
%多次实验并统计结果
for count=1:1:1
%换位阵及初始化
V=rand(N,N)
U=atanh(2*V-1)*u0;
%状态更新
for renew=1:1:100
%同步更新
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
if j==ui
m1=m1;
end
end
m1=-1*A*m1
%求导公式第二项
for y=1:1:N
if y~=ux
m2=m2+V(y,ui);
end
if y==ux
m2=m2;
end
end
m2=-1*B*m2
%求导公式第三项
for x=1:1:N
for j=1:1:N
m3=m3+V(x,j);
end
end
m3=(m3-N);
m3=-1*C*m3
%求导公式第四项
for y=1:1:N
if y~=ux && ui<N && ui>1
m4=m4+d(ux,y)*(V(y,ui+1)+V(y,ui-1));
end
if y~=ux && ui==1
m4=m4+d(ux,y)*(V(y,ui+1)+V(y,N));
end
if y~=ux && ui==N
m4=m4+d(ux,y)*(V(y,ui-1)+V(y,1));
end
if y==ux
m4=m4;
end
end
m4=-2*D*m4
%导数及状态更新
Udao=-U(ux,ui)+m1+m2+m3+m4;
U(ux,ui)=U(ux,ui)+lamda*Udao;
V(ux,ui)=(1+tanh(U(ux,ui)/u0))/2 ;
V(ux,ui);
% if V(ux,ui)<0.001
% V(ux,ui)=0;
% end
% if V(ux,ui)>0.5
% V(ux,ui)=1;
% end
end
end
end
V
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -