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

📄 main.m

📁 TSP问题,即旅行商问题,matlab环境下可以运行
💻 M
字号:
timebegin=cputime;
%初始化定义全局变量
global customer;
global depot;
global demand;
global bestx;
global bestl;
global bestSC;
global best_iter;
global UD;
global c;
global cm;
global h;
global A;
global hs;
global FC;
global W;
global Q;
global Max;
global ET;
global LT;
global S;
  global La;
global Ea;
global sudu;
La=10;
Ea=5;
sudu=20;
c=20;
cm=1;
h=1;
A=15;
hs=2;
Q=150;Max=1000;
depot=4;
customer=15;
demand=[12.8  8.5 245
18.4  3.4  345
15.4  16.6 360
15.5  11.6 451
10.6  7.6 523
12.5  2.1 396
13.8  5.2 589
6.7  16.9 492
14.8  4.6 450
1.8  8.7 360
17.1  11.0 389
0.2  2.8  461
11.9  19.8 574
6.4  5.6 326
9.6  14.8 465
18.9  15.2 0
8.6  8.4  0
7.4  1.0  0
13.2  15.1 0];

ELT=[4.7  10.5
1.5  6
4.7  10.2
3.7   8.9
6.7  12.3
0.6  5.7
2.6  6.8
2.5  8.1
4.1  10.1
3.4   8.1
2  6.0
2.1  6.3
6.8  12.0
6.0  10.4
5.4  9.6
0 12
0  12
0  12
0  12];
    ELT=ELT';
    ET=ELT(1,:);
    LT=ELT(2,:);
    S=zeros(depot+customer,0);
    for j=1:customer
        S(j)=0.05;
    end
UD=[5 4 8 9 6 7 6 5 8 7 5 6 8 7 9 ]; 
  


FC=[250 430 150 240];
W=[2 3 2 4];


x0=zeros(customer,2);
l0=zeros(1,customer);
%计算需求点和配送中心之间的距离
for j=1:depot
    for k=1:customer
        Dd(k,j)=sqrt((demand(k,1)-demand(j+customer,1))^2+(demand(k,2)-demand(j+customer,2))^2);
    end
end
for i=1:customer
   x0(i,2)=i;
   l0(i)=1;
   [dis,n]=min(Dd(i,:));
   x0(i,1)=n;
end


SCx0=SC(x0,l0);
%'1'
bestx=x0;
bestl=l0;
best_iter=1;
bestSC(best_iter)=SC(x0,l0);

    one=x0(:);
  tabu=zeros(7,length(one));
  tabu=updatetabu(x0,tabu);
for count1=1:10
    [x1,l1,tabu]=routing_improve(x0,l0,tabu);

    [x2,l2,tabu]=location_improve(x1,l1,tabu);

end

timeend=cputime;
time=timeend-timebegin
%tabu
bestx
bestl
vpa(bestSC)
 

⌨️ 快捷键说明

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