Home | Research Interests | Publications | Positions | Personal | Models | Seminar Abstracts | Powerpoint Talks
 

 

» Agprice
» Constraint
» Curve
» Decent
» Distrib
» Economy
» Efficient
» Factory
» Farm
» Food
» Hydro
» Logic
» Manpower
» Market
» Milk
» Mining
» OandX
» Opencast
» Refinery
» Tariff
  TSP
» Yield
 

Model TSP

  MODEL TSP10A
  ! Conventional formulation of assymmetric TSP
  ! due to Dantzig,Fulkerson and Johnson (1954).
  ! Append subtour elimination constraints on "as needed basis"
  SET
    cities = {1 .. 10},
    ! Violated subtours added as they arise
    sub1 = {1,3},
    sub2 = {2,7},
    sub3 = {4,9},
    sub4 = {5,10},
    sub5 = {6,8},
    sub6 = {1,3,6,8,10},
    sub7 = {2,7,9},
    sub8 = {4,5},
    sub9 = {1,3,6,8,5,10},
 

 

sub10 ={2,7,4,9};
  DATA
 

 

dist[cities,cities] << "ndist10.dat";
  VARIABLES
 

 

x[cities,cities] integer;
  OBJECTIVE
 

 

MINIMIZE cost = sum{i in cities,j in cities,i<j}dist[i,j]*x[i,j]+sum{i in cities,j in cities,j>i} dist[i,j]*x[j,i];
  CONSTRAINTS
    ! Each city entered exactly once
 

 

In{i in cities}: sum{j in cities,i<>j} x[j,i] =
    ! Each city left exactly once
 

 

Out{i in cities}: sum{j in cities,i<>j} x[i,j] = 1,
 

 

! Second stage, subtour elimination constraints
 

 

S1: sum{i in sub1,j in sub1,i<>j} x[i,j]<=1,
 

 

S2: sum{i in sub2,j in sub2,i<>j} x[i,j]<=1,
 

 

S3: sum{i in sub3,j in sub3,i<>j} x[i,j]<=1,
 

 

S4: sum{i in sub4,j in sub4,i<>j} x[i,j]<=1,
 

 

! Third stage
 

 

S6: sum{i in sub6,j in sub6,i<>j} x[i,j]<=4,
 

 

S7: sum{i in sub7,j in sub7,i<>j} x[i,j]<=2,
 

 

S8: sum{i in sub8,j in sub8,i<>j} x[i,j]<=1,
 

 

! Fourth stage
 

 

S9: sum{i in sub9,j in sub9,i<>j} x[i,j]<=5,
 

 

S10: sum{i in sub10,j in sub10,i<>j} x[i,j]<=3;
 

 

!Bounds{i in cities,j in cities,i<>j}: x[i,j] <= 1;
  END MODEL
   

solve TSP10A;

   

print solution for TSP10A >> "tsp10a.sol";

   

quit;


     
  MODEL tsp10b
  ! Sequential formulation of assymmetric TSP
  ! due to Miller,Tucker and Zemlin (1960)
  SET
    cities = {1 .. 10};
  DATA
    dist[cities,cities] << "ndist10.dat";
  VARIABLES
    x[cities,cities] integer,
    u[cities];
  OBJECTIVE
    MINIMIZE cost = sum{i in cities,j in cities,i<j} dist[i,j]*x[i,j]+sum{i in cities,j in cities,j>i}dist[i,j]*x[j,i];
  CONSTRAINTS
    In{i in cities}: sum{j in cities,i<>j} x[j,i] = 1,
    Out{i in cities}: sum{j in cities,i<>j} x[i,j] = 1,
    ! Breaks subtours which do not contain city 1
    sq{i in cities,j in cities,i>1,j>1,i<>j}: u[i] - u[j] + cities*x[i,j]<=cities-1,
    Bounds{i in cities,j in cities,i<>j}: x[i,j] <= 1;
  END MODEL
    solve tsp10b;
    print solution for tsp10b >> "tsp10b.sol";
    quit;

     
  MODEL tsp10c
  ! Single commodity network flow formulation
  ! due to Gavish and Graves (1978)
  SET
    cities = {1 .. 10};
  DATA
    dist[cities,cities] << "ndist10.dat";
  VARIABLES
    x[cities,cities] integer,
    y[cities,cities];
  OBJECTIVE
    MINIMIZE cost = sum{i in cities,j in cities,i<j} dist[i,j]*x[i,j] +sum{i in cities,j in cities,j>i}dist[i,j]*x[j,i];
  CONSTRAINTS
    In{i in cities}: sum{j in cities,i<>j} x[j,i] = 1,
    Out{i in cities}: sum{j in cities,i<>j} x[i,j] = 1,
    Source: sum{j in cities,j>1} y[1,j] = (cities -1),
    Bal{j in cities,j>1}: sum{i in cities,j<>i} y[i,j] -sum{i in cities,j<>i} y[j,i] = 1,
    Limit{i in cities,j in cities,i<>j}: y[i,j] <= (cities-1)*x[i,j],
    Bounds{i in cities,j in cities,i<>j}: x[i,j] <= 1;
  END MODEL
    solve tsp10c;
    print solution for tsp10c >> "tsp10c.sol";
    quit;

     
  MODEL tsp10cc  
  ! Single commodity network flow formulation
  ! due to Gavish and Graves (1978) modified to give upper bound on
  flows, apart from those out of city 1, n-2 instead of n-1.
  ! This tightens LP relaxation.
  SET
    cities = {1 .. 10};
  DATA
    dist[cities,cities] << "ndist10.dat";
  VARIABLES
    x[cities,cities] integer,
    y[cities,cities];
  OBJECTIVE
    MINIMIZE cost = sum{i in cities,j in cities,i<j}dist[i,j]*x[i,j]+sum{i in cities,j in cities,j>i}dist[i,j]*x[j,i];
  CONSTRAINTS
    In{i in cities}: sum{j in cities,i<>j} x[j,i] = 1,
    Out{i in cities}: sum{j in cities,i<>j} x[i,j] = 1,
    Source: sum{j in cities,j>1} y[1,j] = (cities -1),
    Bal{j in cities,j>1}: sum{i in cities,j<>i} y[i,j] -sum{i in cities,j<>i} y[j,i] = 1,
    Limit1{j in cities,j>1}: y[1,j] <= (cities-1)*x[1,j],
    Limit{i in cities,j in cities,i>1,j>1,i<>j}: y[i,j] <= (cities-2)*x[i,j],
    Bounds{i in cities,j in cities,i<>j}: x[i,j] <= 1;
  END MODEL
    solve tsp10cc.mgc;
    print solution for tsp10cc >> "tsp10cc.sol";
    quit;

  MODEL tsp10d
  ! Multi commodity network flow formulation
  ! due to Claus (1984)
  SET
    cities = {1 .. 10};
  DATA
    dist[cities,cities] << "ndist10.dat";
  VARIABLES
    x[cities,cities] integer,
    y[cities,cities,cities];
  OBJECTIVE
    MINIMIZE cost = sum{i in cities,j in cities,i<j} dis t[i,j]*x[i,j]+sum{i in cities,j in cities,j>i}dist[i,j]*x[j,i];
  CONSTRAINTS
    In{i in cities}: sum{j in cities,i<>j} x[j,i] = 1,
    Out{i in cities}: sum{j in cities,i<>j} x[i,j] = 1,
    Sourcea{k in cities,k>1}: sum{j in cities,j>1} y[1,j,k] = 1,
    Sourceb{k in cities,k>1}: sum{i in cities,i>1,i<>k} y[i,1,k] = 0,
    Sinka{k in cities,k>1}: sum{i in cities,i<>k} y[i,k,k] = 1,
    Sinkb{k in cities,k>1}: sum{j in cities,j<>k} y[k,j,k] = 0,
    Bal{j in cities,k in cities,k>1,j>1,j<>k}: sum{i in cities,j<>i,i<>k} y[i,j,k] = sum{i in cities,j<>i} y[j,i,k],
    Limit{i in cities,j in cities,k in cities,i<>j,i<>k,k>1}: y[i,j,k] <= x[i,j],
    Bounds{i in cities,j in cities,i<>j}: x[i,j] <= 1;
  END MODEL
    solve tsp10d;
    print solution for tsp10d >> "tsp10d.sol";
    quit;

     
  MODEL tsp10e
  ! Stage dependent formulation
  ! due to Fox,Gavish,Graves(1980)
  SET
    cities = {1 .. 10},
    stages = {1 .. 10};
  DATA
    dist[cities,cities] << "ndist10.dat";
  VARIABLES
    x[cities,cities,stages] integer;
  OBJECTIVE
    MINIMIZE cost = sum{i in cities,j in cities,k in stages,i<j} dist[i,j]*x[i,j,k]+sum{i in cities,j in cities,k in stages,j>i}dist[i,j]*x[j,i,k];
  CONSTRAINTS
    In{j in cities}: sum{i in cities,k in stages,i<j} x[i,j,k]=1,
    Out{i in cities}: sum{j in cities,k in stages,i<j} x[i,j,k]=1,
    Stg{k instages}: sum {i in cities, j in cities, i<j} x[i,j,k] = 1;
    Seq{i in cities,i>1}: sum{j in cities,k in stages,k>1,i<>j} k*x[i,j,k] -sum{j in cities,l in stages,i<>j} l*x[j,i,l] = 1;
    Bounds{i in cities,j in cities,k in stages,i<>j}: x[i,j,k] <= 1;
  END MODEL
    solve tsp10e;
    print solution for tsp10e >> "tsp10e.sol";
    quit;

     
  MODEL tsp10f
  ! Stage dependent formulation.
  ! Do not know who to attribute to.First shown to me by Steven Vajda
  SET
    cities = {1 .. 10},
    stages = {1 .. 10};
  DATA
    dist[cities,cities] << "ndist10.dat";
  VARIABLES
    x[cities,cities,stages] integer;
  OBJECTIVE
    MINIMIZE cost = sum{i in cities,j in cities,k in stages,i<j}dist[i,j]*x[i,j,k] +sum{i in cities,j in cities,k in stages,j>i}dist[i,j]*x[j,i,k];
  CONSTRAINTS
    In{j in cities}: sum{i in cities,k in stages,i<>j} x[i,j,k] = 1,
    Out{i in cities}: sum{j in cities,k in stages,i<>j} x[i,j,k] = 1,
    Beg: sum{j in cities,j>1} x[1,j,1]=1,
    Fin: sum{i in cities,i>1} x[i,1,stages]=1,
    Seq{i in cities,k in stages,i>1,k>1}: sum{j in cities,i<>j} x[i,j,k] = sum{l in cities,l<>i} x[l,i,k-1];
  END MODEL
    solve tsp10f.mgc;
    print solution for tsp10f >> "tsp10f.mgc";
    quit;

     
  MODEL tsp10g
  ! Two commodity network flow formulation
  ! due to Finke,Claus,Gunn(1983)
  SET
    cities = {1 .. 10};
  DATA
    dist[cities,cities] << "ndist10.dat";
  VARIABLES
    x[cities,cities] integer,
    y[cities,cities],
    z[cities,cities];
  OBJECTIVE
    MINIMIZE cost = sum{i in cities,j in cities,i<j} dist[i,j]*x[i,j]sum{i in cities,j in cities,j>i}dist[i,j]*x[j,i];
  CONSTRAINTS
    Sourcea: sum{j in cities,j>1} (y[1,j] - y[j,1]) = cities-1,
    Sinka{j in cities,j>1}: sum{i in cities,i<>j} (y[i,j] - y[j,i]) = 1,
    Sourceb: sum{j in cities,j>1} (z[1,j] - z[j,1]) = -(cities-1),
    Sinkb{j in cities,j>1}: sum{i in cities,i<>j} (z[i,j] - z[j,i]) = -1,
    Total{i in cities}: sum{j in cities,i<>j} (y[i,j] + z[i,j]) = cities -1,
    Act{i in cities,j in cities,i<>j}: (y[i,j] + z[i,j]) = (cities-1)*x[i,j],
    Bounds{i in cities,j in cities,i<>j}: x[i,j] <= 1;
  END MODEL
    solve tsp10g;
    print solution for tsp10g >> "tsp10g.sol";
    quit;

  dist.dat
  DATA
    n_city = 44;
  SET
    CITY = {1 .. n_city};
  DATA
    TSP_type = symmetric,
    dist[CITY,CITY] =
    [ 0, 145, 31, 76, 95, 57, 271, 64, 152, 80,
    122, 244, 164, 73, 37, 159, 100, 42, 69, 87,
    116, 168, 42, 80, 152, 113, 225, 260, 208, 35,
    124, 94, 23, 184, 30, 121, 103, 134, 81, 251,
    155, 55, 66, 77,
     
    0, 0, 125, 90, 179, 135, 130, 176, 75, 224,
    236, 99, 252, 142, 159, 57, 178, 184, 76, 230,
    53, 74, 179, 210, 37, 34, 83, 116, 64, 111,
    155, 52, 147, 61, 172, 93, 69, 222, 185, 322,
    10, 103, 202, 117,
     
    0, 0, 0, 76, 120, 31, 254, 57, 147, 107,
    152, 221, 193, 92, 34, 131, 82, 59, 52, 105,
    89, 161, 54, 86, 139, 97, 201, 237, 186, 23,
    97, 74, 50, 172, 60, 122, 98, 161, 109, 279,
    135, 57, 97, 87,
     
    0, 0, 0, 0, 90, 103, 203, 132, 76, 145,
    146, 187, 165, 53, 106, 128, 156, 118, 39, 161,
    90, 93, 118, 156, 83, 56, 173, 203, 153, 53,
    158, 53, 67, 112, 95, 46, 28, 134, 95, 241,
    100, 22, 118, 28,
     
    0, 0, 0, 0, 0, 150, 281, 156, 142, 105,
    60, 275, 76, 38, 130, 217, 195, 116, 120, 140,
    177, 160, 123, 158, 165, 146, 262, 290, 242, 106,
    217, 141, 72, 188, 82, 102, 112, 44, 22, 159,
    189, 85, 72, 63,
     
    0, 0, 0, 0, 0, 0, 264, 41, 169, 120,
    178, 225, 221, 123, 35, 128, 53, 68, 72, 108,
    90, 182, 59, 78, 155, 112, 203, 240, 190, 51,
    68, 87, 78, 188, 82, 148, 121, 190, 138, 308,
    144, 86, 118, 117,
     
    0, 0, 0, 0, 0, 0, 0, 306, 139, 347,
    341, 65, 340, 249, 288, 154, 305, 311, 203, 357,
    178, 121, 308, 340, 121, 158, 85, 62, 84, 238,
    275, 180, 268, 93, 296, 178, 175, 316, 292, 391,
    121, 222, 322, 223,
     
    0, 0, 0, 0, 0, 0, 0, 0, 204, 97,
    170, 266, 220, 137, 28, 168, 43, 47, 108, 74,
    131, 218, 37, 38, 194, 151, 244, 282, 231, 79,
    83, 127, 87, 227, 76, 179, 155, 191, 140, 307,
    185, 112, 106, 139,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 219,
    203, 143, 203, 112, 180, 131, 220, 194, 97, 238,
    115, 18, 194, 231, 39, 66, 137, 157, 117, 125,
    211, 88, 142, 47, 170, 40, 50, 177, 155, 262,
    79, 98, 190, 88,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    86, 323, 142, 113, 86, 238, 139, 53, 147, 40,
    195, 236, 63, 75, 226, 191, 304, 339, 287, 114,
    179, 173, 79, 256, 52, 182, 173, 121, 84, 226,
    234, 125, 33, 132,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 333, 56, 94, 149, 267, 212, 123, 169, 126,
    225, 220, 133, 158, 224, 201, 319, 348, 299, 146,
    244, 193, 104, 248, 96, 163, 170, 42, 51, 141,
    245, 135, 64, 120,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 343, 239, 253, 101, 258, 280, 175, 326,
    135, 130, 275, 302, 110, 134, 23, 16, 36, 209,
    223, 150, 246, 99, 271, 177, 163, 315, 282, 405,
    89, 202, 302, 212,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 113, 196, 292, 261, 174, 197, 182,
    253, 220, 184, 212, 233, 219, 332, 358, 312, 181,
    289, 217, 143, 250, 143, 166, 183, 32, 83, 88,
    261, 161, 117, 136,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 110, 179, 172, 106, 84, 140,
    140, 130, 110, 148, 131, 109, 225, 254, 205, 74,
    188, 104, 51, 155, 73, 73, 76, 81, 44, 194,
    152, 48, 81, 26,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 159, 66, 33, 86, 75,
    119, 194, 24, 52, 173, 131, 232, 269, 217, 54,
    97, 108, 59, 205, 53, 152, 130, 166, 114, 283,
    168, 85, 86, 112,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 156, 190, 98, 234,
    43, 130, 183, 206, 93, 77, 79, 116, 71, 126,
    122, 76, 168, 113, 189, 144, 115, 261, 217, 368,
    55, 133, 223, 156,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 90, 123, 112,
    127, 232, 80, 72, 203, 160, 235, 272, 225, 104,
    47, 135, 124, 235, 118, 201, 173, 232, 180, 349,
    185, 138, 149, 169,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 108, 46,
    148, 210, 10, 43, 193, 153, 260, 296, 245, 73,
    127, 132, 56, 225, 34, 162, 145, 147, 97, 262,
    193, 96, 59, 115,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 154,
    57, 110, 105, 138, 87, 45, 157, 191, 140, 34,
    120, 26, 72, 119, 96, 80, 50, 165, 119, 277,
    87, 36, 128, 65,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    193, 254, 51, 41, 239, 199, 306, 342, 291, 120,
    156, 178, 96, 270, 69, 203, 189, 160, 119, 266,
    240, 140, 69, 155,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 120, 142, 168, 85, 50, 114, 151, 100, 83,
    103, 37, 125, 113, 146, 116, 85, 221, 176, 331,
    59, 92, 180, 118,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 209, 246, 37, 74, 126, 143, 106, 14
    219, 97, 159, 32, 187, 58, 65, 194, 173, 276,
    76, 114, 208, 106,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 39, 191, 150, 255, 291, 240, 71,
    117, 128, 60, 223, 42, 163, 144, 156, 106, 271,
    189, 96, 69, 118,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 225, 183, 281, 318, 267, 106,
    117, 160, 98, 257, 77, 201, 181, 186, 139, 298,
    219, 134, 95, 156,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 44, 101, 125, 80, 120,
    186, 68, 148, 33, 175, 67, 55, 204, 174, 297
    40, 102, 201, 104,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 118, 150, 99, 79,
    146, 25, 113, 76, 139, 68, 39, 189, 150, 293,
    45, 69, 168, 83,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 38, 21, 190,
    200, 132, 228, 96, 253, 168, 150, 303, 268, 398,
    73, 186, 285, 199,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 52, 225,
    237, 166, 262, 111, 287, 192, 178, 330, 298, 419,
    105, 218, 318, 228,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 173,
    193, 114, 211, 77, 236, 147, 130, 283, 248, 377,
    54, 167, 267, 179,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    114, 59, 43, 152, 64, 100, 76, 149, 99, 266,
    121, 35, 98, 66,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 123, 146, 216, 148, 200, 169, 258, 205, 375,
    161, 146, 183, 178,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 97, 100, 122, 81, 49, 185, 142, 294,
    62, 58, 153, 81,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 178, 28, 107, 95, 112, 60, 229,
    157, 46, 56, 60,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0
    0, 0, 0, 0, 206, 85, 83, 224, 199, 308,
    59, 132, 230, 130,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 135, 123, 115, 64, 231,
    182, 74, 36, 86,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 32, 139, 115, 231,
    100, 67, 152, 50,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 153, 120, 254,
    78, 49, 147, 50,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 52, 118,
    231, 129, 92, 105,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 170,
    194, 84, 51, 70,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    330, 241, 204, 213,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 113, 213, 126,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 100, 32,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 102,
     
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0 ];

 

dist6.dat

    [0,42,62,53,96,105,
    52,0,49,29,54,84,
    70,42,0,77,65,129,
    42,35,56,0,57,56,
    105,63,81,41,0,80,
    101,93,111,72,75,0]

  Ndist.dat
    [0, 145, 31, 76, 95, 57, 271, 64, 152, 80, 122, 244, 164, 73, 37, 159, 100, 42, 69, 87, 116, 168, 42, 80, 152, 113, 225, 260, 208, 35, 124, 94, 23, 184, 30, 121, 103, 134, 81, 251, 155, 55, 66, 77,
    0, 0, 125, 90, 179, 135, 130, 176, 75, 224, 236, 99, 252, 142, 159, 57, 178, 184, 76, 230, 53, 74, 179, 210, 37, 34, 83, 116, 64, 111, 155, 52, 147, 61, 172, 93, 69, 222, 185, 322, 10, 103, 202, 117,
    0, 0, 0, 76, 120, 31, 254, 57, 147, 107, 152, 221, 193, 92, 34, 131, 82, 59, 52, 105, 89, 161, 54, 86, 139, 97, 201, 237, 186, 23, 97, 74, 50, 172, 60, 122, 98, 161, 109, 279, 135, 57, 97, 87,
    0, 0, 0, 0, 90, 103, 203, 132, 76, 145, 146, 187, 165, 53, 106, 128, 156, 118, 39, 161, 90, 93, 118, 156, 83, 56, 173, 203, 153, 53, 158, 53, 67, 112, 95, 46, 28, 134, 95, 241, 100, 22, 118, 28,
    0, 0, 0, 0, 0, 150, 281, 156, 142, 105, 60, 275, 76, 38, 130, 217, 195, 116, 120, 140, 177, 160, 123, 158, 165, 146, 262, 290, 242, 106, 217, 141, 72, 188, 82, 102, 112, 44, 22, 159, 189, 85, 72, 63,
    0, 0, 0, 0, 0, 0, 264, 41, 169, 120, 178, 225, 221, 123, 35, 128, 53, 68, 72, 108, 90, 182, 59, 78, 155, 112, 203, 240, 190, 51, 68, 87, 78, 188, 82, 148, 121, 190, 138, 308, 144, 86, 118, 117,
    0, 0, 0, 0, 0, 0, 0, 306, 139, 347, 341, 65, 340, 249, 288, 154, 305, 311, 203, 357, 178, 121, 308, 340, 121, 158, 85, 62, 84, 238, 275, 180, 268, 93, 296, 178, 175, 316, 292, 391, 121, 222, 322, 223,
    0, 0, 0, 0, 0, 0, 0, 0, 204, 97, 170, 266, 220, 137, 28, 168, 43, 47, 108, 74, 131, 218, 37, 38, 194, 151, 244, 282, 231, 79, 83, 127, 87, 227, 76, 179, 155, 191, 140, 307, 185, 112, 106, 139,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 219, 203, 143, 203, 112, 180, 131, 220, 194, 97, 238, 115, 18, 194, 231, 39, 66, 137, 157, 117, 125, 211, 88, 142, 47, 170, 40, 50, 177, 155, 262, 79, 98, 190, 88,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 323, 142, 113, 86, 238, 139, 53, 147, 40, 195, 236, 63, 75, 226, 191, 304, 339, 287, 114, 179, 173, 79, 256, 52, 182, 173, 121, 84, 226, 234, 125, 33, 132,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 56, 94, 149, 267, 212, 123, 169, 126, 225, 220, 133, 158, 224, 201, 319, 348, 299, 146, 244, 193, 104, 248, 96, 163, 170, 42, 51, 141, 245, 135, 64, 120,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 343, 239, 253, 101, 258, 280, 175, 326, 135, 130, 275, 302, 110, 134, 23, 16, 36, 209, 223, 150, 246, 99, 271, 177, 163, 315, 282, 405, 89, 202, 302, 212,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 196, 292, 261, 174, 197, 182, 253, 220, 184, 212, 233, 219, 332, 358, 312, 181, 289, 217, 143, 250, 143, 166, 183, 32, 83, 88, 261, 161, 117, 136,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 179, 172, 106, 84, 140, 140, 130, 110, 148, 131, 109, 225, 254, 205, 74, 188, 104, 51, 155, 73, 73, 76, 81, 44, 194, 152, 48, 81, 26,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 66, 33, 86, 75, 119, 194, 24, 52, 173, 131, 232, 269, 217, 54, 97, 108, 59, 205, 53, 152, 130, 166, 114, 283, 168, 85, 86, 112,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 190, 98, 234, 43, 130, 183, 206, 93, 77, 79, 116, 71, 126, 122, 76, 168, 113, 189, 144, 115, 261, 217, 368, 55, 133, 223, 156,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 123, 112, 127, 232, 80, 72, 203, 160, 235, 272, 225, 104, 47, 135, 124, 235, 118, 201, 173, 232, 180, 349, 185, 138, 149, 169,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 46, 148, 210, 10, 43, 193, 153, 260, 296, 245, 73, 127, 132, 56, 225, 34, 162, 145, 147, 97, 262, 193, 96, 59, 115,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, 57, 110, 105, 138, 87, 45, 157, 191, 140, 34, 120, 26, 72, 119, 96, 80, 50, 165, 119, 277, 87, 36, 128, 65,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 254, 51, 41, 239, 199, 306, 342, 291, 120, 156, 178, 96, 270, 69, 203, 189, 160, 119, 266, 240, 140, 69, 155,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 142, 168, 85, 50, 114, 151, 100, 83, 103, 37, 125, 113, 146, 116, 85, 221, 176, 331, 59, 92, 180, 118,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 246, 37, 74, 126, 143, 106, 140, 219, 97, 159, 32, 187, 58, 65, 194, 173, 276, 76, 114, 208, 106,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 191, 150, 255, 291, 240, 71, 117, 128, 60, 223, 42, 163, 144, 156, 106, 271, 189, 96, 69, 118,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 183, 281, 318, 267, 106, 117, 160, 98, 257, 77, 201, 181, 186, 139, 298, 219, 134, 95, 156,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 101, 125, 80, 120, 186, 68, 148, 33, 175, 67, 55, 204, 174, 297, 40, 102, 201, 104,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 150, 99, 79, 146, 25, 113, 76, 139, 68, 39, 189, 150, 293, 45, 69, 168, 83,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 21, 190, 200, 132, 228, 96, 253, 168, 150, 303, 268, 398, 73, 186, 285, 199,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 225, 237, 166, 262, 111, 287, 192, 178, 330, 298, 419, 105, 218, 318, 228,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 193, 114, 211, 77, 236, 147, 130, 283, 248, 377, 54, 167, 267, 179,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 59, 43, 152, 64, 100, 76, 149, 99, 266, 121, 35, 98, 66,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 146, 216, 148, 200, 169, 258, 205, 375, 161, 146, 183, 178,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 100, 122, 81, 49, 185, 142, 294, 62, 58, 153, 81,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 28, 107, 95, 112, 60, 229, 157, 46, 56, 60,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 85, 83, 224, 199, 308, 59, 132, 230, 130,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 123, 115, 64, 231, 182, 74, 36, 86,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 139, 115, 231, 100, 67, 152, 50,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 120, 254, 78, 49, 147, 50,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 118, 231, 129, 92, 105,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 194, 84, 51, 70,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 330, 241, 204, 213,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 213, 126,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 32,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

  Ndist10.dat
    [0, 145, 31, 76, 95, 57, 271, 64, 152, 80,
    0, 0, 125, 90, 179, 135, 130, 176, 75, 224,
    0, 0, 0, 76, 120, 31, 254, 57, 147, 107,
    0, 0, 0, 0, 90, 103, 203, 132, 76, 145,
    0, 0, 0, 0, 0, 150, 281, 156, 142, 105,
    0, 0, 0, 0, 0, 0, 264, 41, 169, 120,
    0, 0, 0, 0, 0, 0, 0, 306, 139, 347,
    0, 0, 0, 0, 0, 0, 0, 0, 204, 97,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 219,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

 

 

 

 

 

 

 

 
         
 
Site updated December 2021 | email: h.p.williams@lse.ac.uk