⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tsp.m

📁 Hopfield网络解决旅行商问题(TSP)
💻 M
字号:
clc;clear all;
Maxsize=100;MaxDis=100000;Em=0;Ep=0;
n=12;%n个城市
test=100+n^2;%训练次数
cycle=100+10*(n-5);%迭代训练次数
summin=0;dis=zeros(1,test);
%网络参数初始化
A=500;B=500;D=500;C=200;u0=0.02;lan=1.0000e-005;delta=0.1;
% 初始化城市位置
city=rand(2,n);%城市位置
place=city;%路过的城市位置
betterpath=ones(1,n+1);%更短的路径
for k=1:n
    d(k,k)=0;
    for k1=k+1:n
        d(k,k1)=sqrt((place(1,k)-place(1,k1))^2+(place(2,k)-place(2,k1))^2);
        d(k1,k)=d(k,k1);
    end
end
%______________下面开始训练_________________%
u=zeros(n);
for tk=1:test
   del_pre=0;
    %初始化神经元位置 n=5
    u=1/n+(2*rand(n)-1)*delta/n;
    v=zeros(n);
    %迭代训练
    for ck=1:cycle
         [del,v]=Newv(u,v,u0,n);%计算v矩阵
        if(abs(del-del_pre)<(1e-15))%判断误差是否足够小
            break;%一次训练完成
        end
        del_pre=del;
        %计算u矩阵
        %[u]=Newu(u,v,d,n);
        [u]=Newu_ad(u,v,d,n);
   end%ck=1:cycle
  [path,n_fre,n_ill,betterpath,dis(tk),summin]= Check(tk,ck,v,d,cycle,n,betterpath,summin);
  [Em,Ep]=Energy(d,v,n); %计算能量函数
end%tk=1:test
[n_zuiyou,n_ciyou]=Count(test,path,dis,summin,n_fre,n_ill);%计算最短路径
Em=Em/test;
Ep=Ep/test;
figure(1);hold on
for k=1:n
plot(city(1,k),city(2,k),'r*')
end
for k=1:n
    place(:,k)=city(:,betterpath(k));
end
place(:,n+1)=city(:,betterpath(1));
plot(place(1,:),place(2,:));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -