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

📄 tsp_data.m

📁 解决TSP问题的TS算法MATLAB实现
💻 M
字号:
function [X, Y, Nonfit, xubest1]= TSP_DATA(citynum)
% 城市坐标10个、16, 48, 52

if citynum==10
    disp('您选择的是10个城市')
    % 标准数据 (10个,最佳2.6902)
    C1= [0.4000, 0.4439]; C2= [0.2439, 0.1463]; 
    C3= [0.1707, 0.2293]; C4= [0.2293, 0.7610]; 
    C5= [0.5171, 0.9414]; C6= [0.8732, 0.6536]; 
    C7= [0.6878, 0.5219]; C8= [0.8488, 0.3609]; 
    C9= [0.6683, 0.2536]; C10= [0.6159, 0.2623];
    % 合并城市坐标
    X= [C1(1), C2(1), C3(1), C4(1), C5(1), C6(1), C7(1), C8(1), C9(1), C10(1)];
    Y= [C1(2), C2(2), C3(2), C4(2), C5(2), C6(2), C7(2), C8(2), C9(2), C10(2)];
    xubest1=[1 7 6 5 9 10 3 2 4 8 1];
    disbest1=2.6902
    Nonfit= 0;
elseif citynum==16
    disp('您选择的是16个城市');
    % 标准数据 (bays29,最佳2020)
XY=[38.24 20.42
  39.57 26.15
  40.56 25.32
  36.26 23.12
  33.48 10.54
  37.56 12.19
  38.42 13.11
  37.52 20.44
  41.23 9.10
  41.17 13.05
  36.08 -5.21
  38.47 15.13
  38.15 15.35
  37.51 15.17
  35.49 14.32
  39.36 19.56];
xubest1=[1 14 13 12 7 6 15 5 11 9 10 16 3 2 4 8 1];
disbest1=68.59
   X= XY(:, 1); Y= XY(:, 2);
   Nonfit= 0;
elseif citynum==30
    disp('您选择的是30个城市');
    % 标准数据 (Oliver30,最佳424.86)   
   XY= [87,7;91,38;83,46;71,44;64,60;68,58;83,69;87,76;74,78;71,71;58,69;54,62;51,67;37,84;41,94;
        2,99;7,64;22,60;25,62;18,54;4,50;13,40;18,40;24,42;25,38;41,26;45,21;44,35;58,35;62,32]; 
    xubest1=[1  30  29   4   2   3   7   8   9  10   6   5  13  12  11  14  15  16  17  19  18  20  21  22  23  24  25  28  26  27   1];
    disbest1=424.86
   X= XY(:, 1); Y= XY(:, 2);
   Nonfit= 0;
elseif citynum==48
    disp('您选择的是48个城市');
    % 标准数据 (att48,最佳10628)
XY=[6734 1453;
     2233 10  ;
     5530 1424;
     401 841;
     3082 1644;
     7608 4458;
     7573 3716;
     7265 1268;
     6898 1885;
     1112 2049;
     5468 2606;
     5989 2873;
     4706 2674;
     4612 2035;
     6347 2683;
     6107 669;
     7611 5184;
     7462 3590;
     7732 4723;
     5900 3561;
     4483 3369;
     6101 1110;
     5199 2182;
     1633 2809;
     4307 2322;
     675 1006;
     7555 4819;
     7541 3981;
     3177 756;
     7352 4506;
     7545 2801;
     3245 3305;
     6426 3173;
     4608 1198;
     23 2216;
     7248 3779;
     7762 4595;
     7392 2244;
     3484 2829;
     6271 2135;
     4985 140;
     1916 1569;
     7280 4899;
     7509 3239;
     10 2676;
     6807 2993;
     5185 3258;
     3023 1942];
xubest1=[1 8 38 31 44 18 7 28 6 37 19 27 17 43 30 36 46 33 20 47 21 32 39 48 5 42 24 10 45 35 4 26 2 29 34 41 16 22 3 23 14 25 13 11 12 15 40 9 1];
disbest1=10628
    X= XY(:, 1); Y= XY(:, 2);
    Nonfit= 0;
elseif citynum==52
    disp('您选择的是52个城市')
    % 标准数据 (st70,最佳675)
pos=[565.0 575.0;
     25.0  185.0;
     345.0 750.0;
     945.0 685.0;
     845.0 655.0;
     880.0 660.0;
     25.0 230.0;
     525.0 1000.0;
     580.0 1175.0;
     650.0 1130.0;
     1605.0 620.0;
     1220.0 580.0;
     1465.0 200.0;
     1530.0 5.0;
     845.0 680.0;
     725.0 370.0;
     145.0 665.0;
     415.0 635.0;
     510.0 875.0; 
     560.0 365.0;
     300.0 465.0;
     520.0 585.0;
     480.0 415.0;
     835.0 625.0;
     975.0 580.0;
     1215.0 245.0;
     1320.0 315.0;
     1250.0 400.0;
     660.0 180.0;
     410.0 250.0;
     420.0 555.0;
     575.0 665.0;
     1150.0 1160.0;
     700.0 580.0;
     685.0 595.0;
     685.0 610.0;
     770.0 610.0;
     795.0 645.0;
     720.0 635.0;
     760.0 650.0;
     475.0 960.0;
     95.0 260.0;
     875.0 920.0;
     700.0 500.0;
     555.0 815.0;
     830.0 485.0;
     1170.0 65.0;
     830.0 610.0;
     605.0 625.0;
     595.0 360.0;
     1340.0 725.0;
     1740.0 245.0];
xubest1=[1 49 32 45 19 41 8 9 10 43 33 51 11 52 14 13 47 26 27 28 12 25 4 6 15 5 24 48 38 37 40 39 36 35 34 44 46 16 29 50 20 23 30 2 7 42 21 17 3 18 31 22 1];
disbest1=7542
    X= XY(:, 1); Y= XY(:, 2);
    Nonfit= 0;
else
    disp('对不起,没有这样的数据库!');
    X= []; Y= []; xubest1= []; disbest1= [];
    Nonfit= 1;
end;
    
    
    
    
    
    
    

⌨️ 快捷键说明

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