
========================================================================
|                                                                      |
|                           TSPLIB  1.1                                |
|                                                                      |
|                     Version of December 10, 1990                     |
|                                                                      |
|                         Gerhard Reinelt                              |
|                     Institut fuer Mathematik                         |
|                      Universitaet Augsburg                           |
|                                                                      |
========================================================================


========================================================================
|                                                                      |
| 1. INTRODUCTION                                                      |
|                                                                      |
========================================================================

This directory contains TSPLIB, a library of traveling salesman and
related problem instances. All data is publicly available.

The purpose of this documentation is to define the format of the data 
files and to specify the computation of distances where not explicitly
given. All distances are required to be integral.

At present, the following problem classes are available.

1. Symmetric traveling salesman problems (TSP)

   Given a set of n nodes and distances for each pair of nodes, find a
   roundtrip of minimum total length visiting each node exactly once.
   The distance from node i to node j is the same as from node
   j to node i.

2. Asymmetric traveling salesman problems (ATSP)

   Given a set of n nodes and distances for each pair of nodes, find a
   roundtrip of minimum total length visiting each node exactly once.
   In this case the distance from node i to node j and the
   distance from node j to node i may be different.

3. Capacitated vehicle routing problems (CVRP)

   We are given n-1 nodes, one depot and distances from the nodes to
   the depot, as well as between nodes. All nodes have demands which 
   can be satisfied by the depot.
   For delivery to the nodes, trucks with identical capacities are
   available. The problem is to find tours for the trucks of minimum
   total length that satisfy the node demands without violating truck
   capacity constraint. The number of trucks is not
   specified. Each tour visits a subset of the nodes and starts and
   terminates at the depot. 
   Remark: In some data files a collection of alternate depots is given.
   A CVRP is then given by selecting one of these depots.

In the current version all problems are defined on a complete graph. 
Problems on sparse graphs can also be specified using our format.
Moreover, there is a possibility to require that certain edges appear in
the solution of a problem.

==========================================================================
|                                                                        |
| 2. THE FILE FORMAT                                                     |
|                                                                        |
==========================================================================

It is our intention not only to distribute problem data but also 
solutions, Lagrange multipliers or special subgraphs that might be of 
interest. The file format was designed with this goal in mind. In this 
section we describe the basic version. Future enhancements (especially 
for the definition of other problem classes) are possible.

Each file consists of basically two parts: a specification part and a 
data part. The specification part contains information on the file format 
and on its contents. The data part contains explicit data.

==========================================================================
| 2.1. The specification part                                            |
==========================================================================

All entries in this section consist of lines of the form

-----------------------------------------------
<keyword> : <value>
-----------------------------------------------

where <keyword> denotes an alphanumerical keyword and <value> denotes 
alphanumerical or numerical data. The terms <string>, <integer> and <real>
denote character string, integer or real data, respectively. Integer and
real numbers are given in free format. The order of specification of the 
keywords in the data file is arbitrary (in principle), but must be 
consistent, i. e. whenever a keyword is specified all necessary 
information for the correct interpretation of the keyword has to be 
known. 

Below we give a list of all available keywords.

-----------------------------------------------
NAME : <string>
-----------------------------------------------

Identifies the data file.

-----------------------------------------------
TYPE : <string>
-----------------------------------------------

Specifies the nature of the data. This is sometimes necessary to allow
for a correct interpretation of the data. Possible types are

    TSP         : Data for a symmetric traveling salesman problem

    ATSP        : Data for an asymmetric traveling salesman problem

    CVRP        : Capacitated vehicle routing problem data

    TOUR        : A collection of tours

    GRAPH       : The file specifies a graph

-----------------------------------------------
COMMENT : <string>
-----------------------------------------------

Additional comment(s) on the data. 

-----------------------------------------------
DIMENSION : <integer>
-----------------------------------------------

For a TSP, the dimension is the number of its nodes. For a CVRP, it is
the total number of nodes and depots.

-----------------------------------------------
CAPACITY : <integer>
-----------------------------------------------

Specifies the truck capacity in a CVRP.

-----------------------------------------------
GRAPH_TYPE : <string>
-----------------------------------------------

If the underlying graph is not complete, this entry must be specified.
If left unspecified, a complete graph is assumed.

    COMPLETE_GRAPH : The underlying graph is complete

    SPARSE_GRAPH   : The file contains a sparse subgraph

-----------------------------------------------
EDGE_TYPE : <string>
-----------------------------------------------

Specifies whether the edges are directed or undirected. If left
unspecified an undirected graph is assumed. The values are 

    UNDIRECTED : The edges are not directed

    DIRECTED   : The edges(arcs) are directed

-----------------------------------------------
EDGE_WEIGHT_TYPE : <string>
-----------------------------------------------

Specifies how the edge "weights" (or "lengths") are given if they are
given explicitly. The values are

    EXPLICIT : Weights are listed explicitly in the corresponding section

    EUC_2D   : Weights are given by the 2-dimensional Euclidean distance

    EUC_3D   : Weights are given by the 3-dimensional Euclidean distance

    MAX_2D   : Weights are given by the 2-dimensional maximum distance

    MAX_3D   : Weights are given by the 3-dimensional maximum distance

    MAN_2D   : Weights are given by the 2-dimensional Manhattan distance

    MAN_3D   : Weights are given by the 3-dimensional Manhattan distance
 
    GEO      : Weights are given by the geographical distance

    ATT      : Special distance function for att48 and att532

    XRAY1    : Crystallography problem distance (Version 1)

    XRAY2    : Crystallography problem distance (Version 2)

    SPECIAL  : There is a special distance function documented elsewhere

-----------------------------------------------
EDGE_WEIGHT_FORMAT : <string>
-----------------------------------------------

Describes the format of the edge weights if they are given explicitly.
The values are

    FULL_MATRIX    : Weights are given by a full matrix

    UPPER_ROW      : Weights are given by an upper triangular matrix
                     (row-wise without diagonal entries)

    LOWER_ROW      : Weights are given by a lower triangular matrix
                     (row-wise without diagonal entries)

    UPPER_DIAG_ROW : Weights are given by an upper triangular matrix
                     (row-wise including diagonal entries)

    LOWER_DIAG_ROW : Weights are given by a lower triangular matrix
                     (row-wise including diagonal entries)

    UPPER_COL      : Weights are given by an upper triangular matrix
                     (column-wise without diagonal entries)

    LOWER_COL      : Weights are given by a lower triangular matrix
                     (column-wise without diagonal entries)

    UPPER_DIAG_COL : Weights are given by an upper triangular matrix
                     (column-wise including diagonal entries)

    LOWER_DIAG_COL : Weights are given by a lower triangular matrix
                     (column-wise including diagonal entries)

    WEIGHT_LIST    : Weights are specified in a list

-----------------------------------------------
EDGE_DATA_FORMAT : <string>
-----------------------------------------------

Specifies how edges are given, if the file contains a graph that is not
complete. The values are

    ADJ_LIST       : The graph is given as an adjacency list

    EDGE_LIST      : The graph is given as an edge list

-----------------------------------------------
NODE_TYPE : <string>
-----------------------------------------------

Specifies whether the nodes have weights associated with them. If left
unspecified, unweighted nodes are assumed. The values are

    WEIGHTED_NODES   : The nodes have associated weights

    UNWEIGHTED_NODES : The nodes are unweighted

-----------------------------------------------
NODE_COORD_TYPE : <string>
-----------------------------------------------

Specifies whether coordinates are associated with each node (which, for
example may be used for either graphical display or distance 
computations). The values are

    TWOD_COORDS   : The nodes have 2-dimensional coordinates

    THREED_COORDS : The nodes have 3-dimensional coordinates

    NO_COORDS     : The nodes do not have associated coordinates

The default value is NO_COORDS.

Coordinates may also receive offsets and scalings. These data may be used
for modeling the possibly different speeds of a machine in the x - and 
y -directions.
The following six keywords specify offset and scaling for the 
coordinates. 

-----------------------------------------------
COORD1_OFFSET : <real>
-----------------------------------------------

-----------------------------------------------
COORD1_SCALE : <real>
-----------------------------------------------

-----------------------------------------------
COORD2_OFFSET : <real>
-----------------------------------------------

-----------------------------------------------
COORD2_SCALE : <real>
-----------------------------------------------

-----------------------------------------------
COORD3_OFFSET : <real>
-----------------------------------------------

-----------------------------------------------
COORD3_SCALE : <real>
-----------------------------------------------

The offsets (default values 0.0) specify numbers that are added to the 
respective coordinates. After addition of the offsets the coordinates 
are multiplied by the respective scaling factors (default values 1.0).

-----------------------------------------------
DISPLAY_DATA_TYPE : <string>
-----------------------------------------------

Specifies how a graphical display of the nodes can be obtained. The 
values are

    COORD_DISPLAY : Display is generated from the node coordinates

    TWOD_DISPLAY  : Explicit 2-dimensional coordinates are given

    NO_DISPLAY    : No graphical display is possible

The default value is NO_DISPLAY.

-----------------------------------------------
EOF 
-----------------------------------------------

Terminates the input data. This entry is optional.

==========================================================================
| 2.2. The data part                                                     |
==========================================================================

Depending on the choice of specifications some additional data (in 
specified format) may be required. These data are given in corresponding
data sections following the specification part. Each data section is
begun by the corresponding keyword. The length of the section is either 
implicitly known from the format specification, or the section is 
terminated by an appropriate end-of-section identifier.

-----------------------------------------------
NODE_COORD_SECTION 
-----------------------------------------------

Node coordinates are given in this section. Each line is of the form

<integer> <real> <real>

if NODE_COORD_TYPE is TWOD_COORDS, or

<integer> <real> <real> <real>

if NODE_COORD_TYPE is THREED_COORDS. The integers specify the
respective nodes. The real numbers give the associated coordinates.

-----------------------------------------------
DEPOT_SECTION 
-----------------------------------------------

Contains a list of possible alternate depot nodes. This list is terminated
by a -1.

-----------------------------------------------
DEMAND_SECTION 
-----------------------------------------------

The demands of all nodes of a CVRP are given in the form (per line)

<integer> <integer>

The first integer specifies a node number, the second its demand. The 
depot nodes must also occur in this section. Their demands are 0.

-----------------------------------------------
FIXED_EDGES_SECTION 
-----------------------------------------------

In this section edges are listed that are required to appear in each
solution to the problem. The edges to be fixed are given in the form
(per line)

<integer> <integer>

meaning that the edge (arc) from the first node to the second node has to
be contained in a solution. This section is terminated by a -1.

-----------------------------------------------
DISPLAY_DATA_SECTION 
-----------------------------------------------

If DISPLAY_DATA_TYPE is TWOD_DISPLAY, the 2-dimensional coordinates 
from which a display can be generated are given in the form (per line)

<integer> <real> <real>

The integers specify the respective nodes and the real numbers give
the associated coordinates.

-----------------------------------------------
NODE_WEIGHT_SECTION 
-----------------------------------------------

The non-zero node weights are given in the form (per line)

<integer> <real>

The integers specify the respective nodes and the real numbers
give the associated node weight. This section is terminated by a -1.

-----------------------------------------------
TOUR_SECTION 
-----------------------------------------------

A collection of tours is specified in this section. Each tour is given by
a list of integers giving the sequence in which the nodes are visited in
this tour. Every such tour is terminated by a -1. An additional -1
terminates this section.

-----------------------------------------------
EDGE_DATA_SECTION 
-----------------------------------------------

Edges of a graph are specified in either of the two formats allowed in 
the EDGE_DATA_TYPE entry. If the type is EDGE_LIST, then the edges are 
given as a sequence of lines of the form

<integer> <integer>

each entry giving the terminal nodes of some edge. The list is terminated by a -1.

If the type is ADJ_LIST, the section consists of a list of adjacency
lists for nodes. The adjacency list of a node x is specified as

<integer> <integer> .... <integer> -1 

where the first integer gives the number of node x and the following 
integers (terminated by -1 ) the numbers of nodes adjacent to x. The list of adjacency lists is terminated by an additional -1 .

-----------------------------------------------
EDGE_WEIGHT_SECTION 
-----------------------------------------------

The edge weights are given in the format specified by the
EDGE_WEIGHT_FORMAT entry. The matrix formats are self-explanatory, with  
implicitly known lengths. If the format WEIGHT_LIST is  specified,
a sequence of lines of the form

<integer> <integer> <integer>

must be specified, where the first two integers give the terminal nodes of
the edge and the third integer its edge weight. The list is terminated by 
a -1 .

==========================================================================
|                                                                        |
| 3. DISTANCE COMPUTATIONS                                               |
|                                                                        |
==========================================================================

In this section we describe the specific edge weight computations listed
under EGDE_WEIGHT_TYPE. In each case we give a (simplified) 
C-implementation for computing the distances from the input 
coordinates. All computations involving floating-point numbers are carried
out in double precision arithmetic. The integers are assumed to be 
represented in 32-bit words. Since distances are required to be integral,
some rounding may be necessary: we have used the C truncation function
"aint". Explicitly specified distances must be integral.

--------------------------------------------------------------------------
| 3.1 Euclidean distance                                                 |
--------------------------------------------------------------------------

For edge weight type EUC_2D and EUC_3D, floating point coordinates must be
specified for each node. Let x[i], y[i], and z[i] be the coordinates of
node i .

In the 2-dimensional case, the distance between two points i and j is 
computed as follows:

    xd = x[i] - x[j];
    yd = y[i] - y[j];
    dij = aint( sqrt( xd*xd + yd*yd) + 0.5 );

In the 3-dimensional case we have:

    xd = x[i] - x[j];
    yd = y[i] - y[j];
    zd = z[i] - z[j];
    dij = aint( sqrt( xd*xd + yd*yd + zd*zd) + 0.5 );

"Sqrt" is the C square root function.

--------------------------------------------------------------------------
| 3.2 Manhattan distance                                                 |
--------------------------------------------------------------------------

Distances are given as Manhattan distances if the edge weight type is
MAN_2D of MAN_3D. They are computed as follows.

2-dimensional case:

    xd = abs( x[i] - x[j] );
    yd = abs( y[i] - y[j] );
    dij = aint( xd + yd + 0.5 );

3-dimensional case:

    xd = abs( x[i] - x[j] );
    yd = abs( y[i] - y[j] );
    zd = abs( z[i] - z[j] );
    dij = aint( xd + yd + zd + 0.5 );

Note that a scaling factor for the coordinates may be given in the input
data file. This factor must be applied to the coordinates before doing
the computations.

--------------------------------------------------------------------------
| 3.3 Maximum distance                                                   |
--------------------------------------------------------------------------

Maximum distances are computed if the edge weight type is MAX_2D 
or MAX_3D. 

2-dimensional case:

    xd = abs( x[i] - x[j] );
    yd = abs( y[i] - y[j] );
    dij = max( aint( xd + 0.5 ), aint( yd + 0.5) ) );

3-dimensional case:

    xd = abs( x[i] - x[j] );
    yd = abs( y[i] - y[j] );
    zd = abs( z[i] - z[j] );
    dij = max( aint( xd + 0.5 ), aint( yd + 0.5), aint( zd + 0.5) );

If scaling factors are present, they must be applied before the distance
computations.

--------------------------------------------------------------------------
| 3.4 Geographical distance                                              |
--------------------------------------------------------------------------

If the traveling salesman problem is a geographical problem, the nodes
correspond to points on the earth and the distance between two points is 
their distance on the idealized sphere with radius 6378.388 kilometers. 
The node coordinates give the geographical latitude and longitude of the 
corresponding point on the earth. Latitude and longitude are given in the
form  DDD.MM where DDD are the degrees and MM the minutes. A positive 
latitude is assumed to be 'North', negative latitude means 'South'. 
Positive longitude means 'East', negative latitude is assumed to be 
'West'. For example, the input coordinates for Augsburg are 48.23 
and 10.53, meaning 48.23 North and 10.53 East.

Let  x[i] and  y[i] be coordinates for city i in the above format. First 
the input is converted to geographical latitude and longitude given in 
radians.

    PI = 3.141592;

    deg = aint( x[i] );
    min = x[i] - deg;
    latitude[i] = PI * (deg + 5.0 * min) / 3.0 ) / 180.0;
    deg = aint( y[i] );
    min = y[i] - deg;
    longitude[i] = PI * (deg + 5.0 * min) / 3.0 ) / 180.0;

The distance between two nodes i and j in kilometers is then computed as
follows:

    RRR = 6378.388;

    q1 = cos( longitude[i] - longitude[j] );
    q2 = cos( latitude[i] - latitude[j] );
    q3 = cos( latitude[i] + latitude[j] );
    dd = trunc( (RRR * acos( 0.5*((1.0+q1)*q2 - (1.0-q1)*q3) ) + 1.0);

"Acos' is the C inverse-cosine function.

--------------------------------------------------------------------------
| 3.5 Pseudo-Euclidean distance                                          |
--------------------------------------------------------------------------

The edge weight type ATT corresponds to a special 'pseudo-Euclidean' 
distance function. Let x[i] and y[i] be the coordinates of a node i. The 
distance between two points i and j is computed as follows:

    xd = x[i] - x[j];
    yd = y[i] - y[j];
    rij = sqrt( (xd*xd + yd*yd)/10.0 );
    tij = aint( rij );
    if (tij<rij) dij = tij + 1;
    else dij = tij;

--------------------------------------------------------------------------
| 3.6 Distance for crystallography problems                             |
--------------------------------------------------------------------------

We have included into TSPLIB the crystallography problems described in:

R. E. Bland & F.Shallcross
Large travelling salesman problems arising from experiments in X-ray
crystallography:  a preliminary report on computation
Technical Report No.~730, School of OR/IE, Cornell University, Ithaca,
New York, 1987

These problems are not explicitly given but subroutines are provided to 
generate the 12problems mentioned in this reference and subproblems 
thereof. More details can be found in section 4 of this file.

To compute distances for these problems the movement of three motors
has to be taken into consideration. There are two types of distance 
functions: one that assumes equal speed of the motors (XRAY1) and one
that uses different speeds (XRAY2). The corresponding distance functions
are given as FORTRAN implementations (files deq.f, resp. duneq.f) in
the distribution file.
 
Since we would like all distances to be integral we propose to multiply 
the distances computed by the original subroutines by~100.0 and round 
to the nearest integer.

We list our modified distance function for the case of equal motor
speeds in the FORTRAN version below.

  INTEGER FUNCTION ICOST(V,W)          
  INTEGER V,W                                  
  DOUBLE PRECISION DMIN1,DMAX1,DABS            
  DOUBLE PRECISION DISTP,DISTC,DISTT,COST           
  DISTP=DMIN1(DABS(PHI(V)-PHI(W)),DABS(DABS(PHI(V)-PHI(W))-360.0E+0))
  DISTC=DABS(CHI(V)-CHI(W))                                     
  DISTT=DABS(TWOTH(V)-TWOTH(W))                                 
  COST=DMAX1(DISTP/1.00E+0,DISTC/1.0E+0,DISTT/1.00E+0)  
C   *** Make integral distances ***
  ICOST=AINT(100.0E+0*COST+0.5E+0)        
  RETURN                                                        
  END                                                           

The numbers PHI(), CHI(), and TWOTH() are the respective x-, y-, and
z-coordinates of the points in the generated traveling salesman problems.

Note that on the distribution tape you will find only the original
distance computation without the above modification.

--------------------------------------------------------------------------
| 3.7 Verification                                                       |
--------------------------------------------------------------------------

To verify correctness of the distance function implementations, we
give the length of the 'canonical' tour 1,2,3,....,n for some problems:

  Euclidean distance
  ------------------

  The canonical tour for the problem pcb442 has length 221440.

  Geographical distance
  ---------------------

  The canonical tour for the problem gr666 has length 423710.

  ATT distance
  ---------------------

  The canonical tour for the problem att532 has length 309636.

  XRAY1 distance
  ---------------------

  The canonical tour for the problem xray14012 (see below) 
  has length 15429219.

  XRAY2 distance
  ---------------------

  The canonical tour for the problem xray14012 (see below) 
  has length 12943294.

==========================================================================
|                                                                        |
| 4. LIST OF FILES                                                       |
|                                                                        |
==========================================================================

We give a list of the data files that are available in TSPLIB in the 
above format. The number before the '.' in the file name always gives the
dimension of a problem, e. g. the file gr666.tsp  contains data of a TSP
on 666 cities.

--------------------------------------------------------------------------
| 4.1  Symmetrical TSPs                                                  |
--------------------------------------------------------------------------

The following Traveling Salesman problem data files are available:

ali535.tsp       gr120.tsp        lin318.tsp       rd100.tsp  
att48.tsp        gr137.tsp        linhp318.tsp     rd400.tsp  
att532.tsp       gr17.tsp         p654.tsp         rl11849.tsp  
bayg29.tsp       gr202.tsp        pcb1173.tsp      rl1304.tsp  
bays29.tsp       gr21.tsp         pcb3038.tsp      rl1323.tsp  
bier127.tsp      gr229.tsp        pcb442.tsp       rl1889.tsp  
d1291.tsp        gr24.tsp         pr1002.tsp       rl5915.tsp  
d1655.tsp        gr431.tsp        pr107.tsp        rl5934.tsp  
d198.tsp         gr48.tsp         pr124.tsp        st70.tsp  
d2103.tsp        gr666.tsp        pr136.tsp        u1060.tsp  
d493.tsp         gr96.tsp         pr144.tsp        u1432.tsp  
d657.tsp         hk48.tsp         pr152.tsp        u159.tsp  
dantzig42.tsp    kroA100.tsp      pr226.tsp        u1817.tsp  
dsj1000.tsp      kroA150.tsp      pr2392.tsp       u2152.tsp  
eil101.tsp       kroA200.tsp      pr264.tsp        u2319.tsp  
eil51.tsp        kroB100.tsp      pr299.tsp        u574.tsp  
eil76.tsp        kroB150.tsp      pr439.tsp        u724.tsp  
fl1400.tsp       kroB200.tsp      pr76.tsp         vm1084.tsp  
fl1577.tsp       kroC100.tsp      rat195.tsp       vm1748.tsp  
fl3795.tsp       kroD100.tsp      rat575.tsp  
fl417.tsp        kroE100.tsp      rat783.tsp  
gil262.tsp       lin105.tsp       rat99.tsp  

Some optimum tours are also provided. The corresponding files have names
of the form <problem-name>.opt.tour.

--------------------------------------------------------------------------
| 4.2  TSPs from X-ray crystallography                                   |
--------------------------------------------------------------------------

In the file xray.problems we distribute the routines written by Bland 
and Shallcross and the necessary data to generate the crystallography 
problems discussed in their paper. More details can also be found there.

The file xray.problems is one file into which the single files
mentioned in the sequel have been merged. These single files have to
be extracted from xray.problems using an editor.

The following original files are provided

read.me      deq.f      duneq.f     daux.f     gentsp.f
a.data       b.data     d.data      e.data       f.data

In addition we have included specially prepared data files to generate
the 12 problems mentioned the paper. These files have the names
xray1.data through xray12.data. Using these data files 12 symmetric
symmetric TSPs can be generated using the program gentsp.f. We propose 
to name the respective problem instances

xray4472     xray2950      xray7008      xray2762 
xray6922     xray9070      xray5888     xray14012 
xray5520    xray13804     xray14464     xray13590.

To verify the correct use of the generating routines we list part of
the file xray14012.tsp.

NAME : xray14012
COMMENT : Crystallography problem 8 (Bland/Shallcross)
TYPE : TSP
DIMENSION : 14012
EDGE_WEIGHT_TYPE : XRAY2
NODE_COORD_SECTION
      1  -91.802854544029  -6.4097888697337  176.39830490027
      2  -87.715643397938  -6.4659384343446  165.56800324542
      3  -83.587211962870  -6.4895404648110  163.53828545043
      4  -79.460007412434  -6.4797580053949  165.86438271158
  : 
  : 
  14009  100.539992581837   6.4797580053949  165.86438271158
  14010   96.412788031401   6.4895404648110  163.53828545043
  14011   92.284356596333   6.4659384343446  165.56800324542
  14012   88.197145450242   6.4097888697337  176.39830490027

--------------------------------------------------------------------------
| 4.3  Capacitated vehicle routing problems                              |
--------------------------------------------------------------------------

Capacitated vehicle routing problem data is contained in the files:

   att48.vrp       eil30.vrp       eil7.vrp        eilB76.vrp
   eil13.vrp       eil31.vrp       eilA101.vrp     eilC76.vrp
   eil22.vrp       eil33.vrp       eilA76.vrp      eilD76.vrp
   eil23.vrp       eil51.vrp       eilB101.vrp     gil262.vrp

--------------------------------------------------------------------------
| 4.4  Further files                                                     |
--------------------------------------------------------------------------

Further special files contained in the library are:

   TSPLIB_VERSION:  Gives the current version of the library

   TSPLIB_VALUES:   Provides information on optimum solution values.

   TSPLIB_CHANGES:  Changes from one version to the next one are 
                    documented here.

   READ_ME:         The documentation file you are currently reading

   NOTICE:          A note on the distribution policy

==========================================================================
|                                                                        |
| 5. FURTHER REMARKS                                                     |
|                                                                        |
==========================================================================

(1) The problem lin318 is originally a Hamiltonian path problem. One
    obtains this problem by adding the additional requirement that the
    edge from 1 to 214 is contained in the tour. The data is 
    given in linhp318.tsp.

(2) Some data sets are referred to by different names in the literature.
    Below we give the corresponding names used in:

    M.Groetschel/O.Holland: Solution of large-scale symmetric travelling 
    salesman problems, Report No. 73 Schwerpunktprogramm der Deutschen 
    Forschungsgemeinschaft, Universitaet Augsburg, Augsburg, 1988, 
    to appear in Mathematical Programming

    and

    M.W.Padberg/G.Rinaldi: A branch & cut algorithm for the resolution of
    large-scale symmetric traveling salesman problems, IASI Research 
    Report 247, 1988

    TSPLIB              P/R             G/H
    ------------------------------------------

    att48              ATT048              -
    att532             ATT532              -
    dantzig42            -                42
    eil101             EIL10               -
    eil51              EIL08               -
    eil76              EIL09               -
    gil262             GIL249              -
    gr120                -               120
    gr137              GH137             137
    gr202              GH202             202
    gr229              GH229             229
    gr431              GH431             431
    gr666              GH666             666
    gr96               GH096              96
    hk48                 -                48H
    kroA100            KRO124            100A
    kroB100            KRO125            100B
    kroC100            KRO126            100C
    kroD100            KRO127            100D
    kroE100            KRO128            100E
    kroA150            KRO30               -
    kroB150            KRO31               -
    kroA200            KRO32               -
    kroB200            KRO33               -
    lin105             LK105               -
    lin318             LK318             318
    pr1002             TK1002              -
    pr107              TK107               -
    pr124              TK124               -
    pr136              TK136               -
    pr144              TK144               -
    pr152              TK152               -
    pr226              TK226               -
    pr2392             TK2392              -
    pr264              TK264               -
    pr299              TK299               -
    pr439              TK439               -
    pr76               TK076               -
    st70               KRO070             70

(3) The vehicle routing problems are also available in a TSP version. Here
    the depots are just treated as normal nodes. The problem gil262 
    originally contained two identical nodes, of which one was eliminated.

(4) Contributions to this library are strongly encouraged. Potential 
    contributors should provide their data files in the above format and 
    contact

     Gerhard Reinelt
     Institut fuer Angewandte Mathematik
     Universitaet Heidelberg
     Im Neuenheimer Feld
     D-6900 Heidelberg
     Germany

     Tel.   (6221) 56 3171
     Fax    (6221) 56 5331
     E-Mail  reinelt@ares.iwr.Uni-Heidelberg.DE

    or

     Robert E. Bixby
     Center for Research on Parallel Computation
     Rice University
     P.O.Box 1892
     Houston, Texas 77251-1892
     USA

     Tel.    (713) 527 6077
     Fax     (713) 285 5136
     E-Mail  bixby@rice.edu

    Comments or error messages as well as new bounds or optimum solutions
    should also be reported to these addresses.
    
(5) The following instructions are provided by CRPC for obtaining
    TSPLIB via E-Mail.

========================================================================

                         Rice University
          Computer and Information Technology Institute

        CATALOGUE OF AVAILABLE SOFTWARE AND DOCUMENTATION

                   (This file:  CATALOGUE)
========================================================================
This file contains a list of the software and documentation that is 
currently available through the Software Distribution Center.  

There are three classes of software distributions available.  
The Catalogue Number of each entry indicates the class.

  * Public Domain (indicated by Catalogue Numbers preceded with PD ):
      Software can be freely copied, modified, and redistributed by anyone
      without obligation to authors or to Rice University.  Read the
      file entitled LICENSE.  To retrieve software or documentation listed
      as Public Domain:

       Send email to (softlib@rice.edu)
       In the Message body type:  "send <filename>"
       For example:
                    mail:           softlib@rice.edu
                    message line:   (nothing needed here)
                    (message body): send <filename>
                                    send README
                                    send INDEX
                                    send CATALOGUE

       Software is also available via anonymous ftp to softlib.cs.rice.edu 
       (128.42.1.127). Login as "anonymous" using your userid followed by 
       an @ followed by your machinename.domainname for the
       password. Once you have logged in you will need to switch to 
       the directory called pub and retrieve files using the ftp
       get command. 
       For example:
            % ftp softlib.cs.rice.edu
            Connected to softlib.cs.rice.edu.
            220 dawn FTP server (Version 4.19 Fri 
                                  Nov 6 12:42:48 CST 1992) ready. 
            Name (softlib.cs.rice.edu:sdc): anonymous
            331 Guest login ok, send ident as password.
            Password: sdc@softlib.cs.rice.edu
            230 Guest login ok, access restrictions apply.
            ftp> cd pub
            ftp> ls
            ftp> get CATALOGUE
       Please note that transfer of binary files will require the
       setting of the binary transfer mode flag via the "binary" command.

       If you require a tape, send an Order Form (ORDER), along
         with $150.00 (US) for handling, to:

                    Rice University
                    CITI/SDC
                    PO Box 1892
                    Houston, Texas  77251-1892
                         Phone Number (713) 527-6077

  * Internal Use Only (indicated by Catalogue Numbers preceded by IU ):

    Software is licensed for the internal use of the licensee only.  The
    licensee is not allowed to distribute copies of the software or
    modified versions of the software, without additional written approval
    from Rice University.  Copies of IU software can be obtained only
    by submitting a signed order form (in the file ORDER) to CITI together
    with the license fee.

  * Commercial Development (indicated by Catalogue Numbers preceded 
    by CM ):

    Software in this catagory is licensed on a case-by-case basis.  The
    license and order form included in these files do not apply.  For
    information about these software files, contact the CITI office at
    address (or phone numbers) listed above, or send email to:
           
             sdc@rice.edu

========================================================================

  Name:  tsplib.tar.Z or tsplib.sh
  Developed by:  Bob Bixby & Gerd Reinelt
  Version:  October 1990
  Catalogue #:  PD90003
  Description:  
     One of the results of the CRPC workshop on the Traveling
     Salesman Problem (TSP '90) was the establishment of this
     library of eighty four test problems, collected from a group
     of well-known international researchers working on solutions
     to the Traveling Salesman Problem.  The library was put
     together by Gerd Reinelt of the University of Augsburg and
     Bob Bixby at Rice University. It should prove a valuable
     resource to researchers in the field.
   Note:  The file must be uncompressed using uncompress. 
          That will leave a tar file tsplib.tar.  
          To extract the files: tar xvf tsplib.tar
          
 
