Solving the Bottleneck Traveling Salesman Problem Using

Solving the Bottleneck Traveling Salesman Problem Using the
Lin-Kernighan-Helsgaun Algorithm
Keld Helsgaun
E-mail: [email protected]
Computer Science
Roskilde University
DK-4000 Roskilde, Denmark1
Abstract
The Bottleneck Traveling Salesman Problem (BTSP) is a variation of the Traveling Salesman Problem (TSP). The Bottleneck Traveling Salesman Problem asks for a tour in which
the largest edge is as small as possible. It is well known that any BTSP instance can be
solved using a TSP solver. This paper evaluates the performance of the state-of-the art TSP
solver Lin-Kernighan-Helsgaun (LKH) on a large number of benchmark instances. When
LKH was used as a black box, without any modifications, most instances with up to
115,475 vertices could be solved to optimality in a reasonable time. A small revision of
LKH made it possible to solve BTSP instances with up to one million vertices. The program, named BLKH, is free of charge for academic and non-commercial use and can be
downloaded in source code. The program is also applicable to the Maximum Scatter TSP
(MSTSP), which asks for a tour in which the smallest edge is as large possible.
Keywords: Bottleneck traveling salesman problem, BTSP, Maximum scatter traveling
salesman problem, MSTSP, Traveling salesman problem, TSP, Lin-Kernighan
Mathematics Subject Classification: 90C27, 90C35, 90C59
1. Introduction
The Bottleneck Traveling Salesman Problem (BTSP) is a variation of the Traveling Salesman
Problem (TSP). The BTSP asks for a tour in which the largest edge is as small as possible.
The problem has numerous applications, including transportation of perishable goods, workforce scheduling [1], and minimizing the makespan in a two-machine flowshop [2].
The BTSP is defined on a complete graph G = (V, E), where V={v1....vn} is the vertex set and
E={(vi,vj) : vi, vj ∈ V, i ≠ j} is the edge set. A non-negative cost cij is associated with each edge
(vi, vj). The BTSP can be stated as the problem of finding a Hamiltonian cycle whose largest
edge is as small as possible. If the cost matrix C = (cij) is symmetric, i.e., cij = cji for all i, j, i≠j,
the problem is called symmetric. Otherwise it is called asymmetric.
Just like the TSP, the BTSP is NP-hard [3].
_________
April 2014
1
Figure 1 shows the optimal BTSP tour for usa1097, an instance consisting of 1097 cities in
the adjoining 48 U.S. states, plus the District of Columbia. Its total length is 127,786,915 meters, and its bottleneck edge has a length of 175,360 meters. In comparison, the optimal TSP tour for
this instance has a total length of 71,109,602 meters and a bottleneck edge length of 195,002 meters.
Figure 1 Optimal BTSP tour for usa1097.
It is well known that any BTSP instance can be solved using a TSP solver [3], either after
transforming the BTSP instance into a standard TSP instance, or by solving the BTSP instance as a sequence of O(log n) standard TSP instances using Edmonds and Fulkerson’s well
known threshold algorithm for bottleneck problems [4]. The first approach, however, does not
have much practical value since the edge costs of the transformed instance grows exponentially. For this reason, the second approach has been chosen.
LKH [5, 6] is a powerful local search heuristic for the TSP based on the variable depth local
search of Lin and Kernighan [7]. Among its characteristics may be mentioned its use of 1-tree
approximation for determining a candidate edge set, extension of the basic search step, and
effective rules for directing and pruning the search. LKH is available free of charge for scientific and educational purposes from http://www.ruc.dk/~keld/research/LKH. The following
section describes how LKH can be used as a black box to solve the BTSP.
2
2. Implementing a BTSP Solver Based on LKH
Input to LKH is given in two files:
(1) A problem file in TSPLIB format [8], which contains a specification of the TSP
instance to be solved. A problem may be symmetric or asymmetric. In the latter
case, the problem is transformed by LKH into a symmetric one with 2n vertices.
(2) A parameter file, which contains the name of the problem file, together with
some parameter values that control the solution process. Parameters that are not
specified in this file are given suitable default values.
The BTSP solver, named BLKH, starts by reading the parameter file as well as the problem file. A lower bound for the bottleneck cost is then computed and used for solving
the BTSP. An outline of the main program (written in C) is given below.
int main(int argc, char *argv[]) {
int Bottleneck, Bound, LowerBound;
ReadParameters();
ReadProblem();
LowerBound = TwoMax();
if ((Bound = BBSSP(LowerBound)) > LowerBound)
LowerBound = Bound;
if (ProblemType == ATSP) {
if ((Bound = BBSSPA(LowerBound)) > LowerBound)
LowerBound = Bound;
if ((Bound = BSCSSP(LowerBound)) > LowerBound)
LowerBound = Bound;
if ((Bound = BAP(LowerBound)) > LowerBound)
LowerBound = Bound;
}
Bottleneck = SolveBTSP(LowerBound);
}
Comments:
1. The algorithms for computing a lower bound are similar to those used by John LaRusic et al. [9, 10].
•
•
•
•
The TwoMax function computes the 2-Max bound.
The BBSSP function attempts to improve this bound by solving the Bottleneck
Biconnected Spanning Subgraph Problem on a symmetric cost matrix. For
asymmetric instances, the following symmetric relaxation of the asymmetric
cost matrix is used: c’ij = min{cij,cji}.
The BBSSPA function attempts to improve the current lower bound for an
asymmetric instance by solving the Bottleneck Biconnected Spanning Subgraph Problem on a 2nx2n symmetric cost matrix constructed from the asymmetric nxn cost matrix using Jonker and Volgenant’s well known ATSP-toTSP transformation [11].
The BSCSSP function attempts to improve the current lower bound for an
asymmetric instance by solving the Bottleneck Strongly Connected Spanning
Subgraph Problem.
3
•
Finally, the BAP function attempts to improve the current lower bound for an
asymmetric instance by solving the Bottleneck Assignment Problem.
See [10] for a more precise description of these bounds.
The implementation in BLKH of the lower bound algorithms for the last four
bounds differs on three points from the implementation used in [10]:
(1) The current lower bound is used as an initial lower limit for the search
interval.
(2) The binary search is based on interval midpoints, in contrast to [10], which
uses binary search based on medians of edge costs.
(3) An initial test is made in order to decide whether it is possible to raise the
current lower bound. If not, the binary search is skipped.
Computational evaluation has shown that BLKH’s strategy is efficient in both
runtime and memory usage.
The four binary search algorithms follow the same pattern. Below is shown the
algorithm for the BBSSP function.
int BBSSP(int Low) {
int High = INT_MAX, Mid;
if (Biconnected(Low))
return Low;
Low++;
while (Low < High) {
Mid = Low + (High - Low) / 2;
if (Biconnected(Mid))
High = Mid;
else
Low = Mid + 1;
}
return Low;
}
3. After the lower bound has been computed, the SolveBTSP function is called in order to
solve the given BTSP instance (using LKH). The function returns the bottleneck cost of
the obtained tour.
4
The implementation of the SolveBTSP function is shown below.
int SolveBTSP(int LowerBound) {
int Low = LowerBound, High = INT_MAX, Bottleneck;
Bottleneck = High = SolveTransformedTSP(Low, High);
while (Low < High && Bottleneck != LowerBound) {
int B = SolveTransformedTSP(Low, High);
if (B < Bottleneck) {
Bottleneck = High = B;
if (High <= Low)
Low = LowerBound + (High - LowerBound) / 2;
} else
Low += (High - Low + 1) / 2;
}
return Bottleneck;
}
Comments:
1. As in the computation of the lower bound, binary search is also used here. The integers Low and High denote the current search interval for the bottleneck cost. The
algorithm differs from the one described in [10] on the following points:
•
•
•
•
The binary search is based on interval midpoints, in contrast to [10], which
uses binary search based on medians of edge costs.
LKH is used for solving the TSPs, whereas [10] uses Concorde’s implementation of the Lin-Kernighan algorithm [12].
Initially, an upper bound for the bottleneck cost is computed by executing
LKH. If this upper bound is equal to the lower bound, optimum has been found,
and the binary search is skipped. This is advantageous, since the lower bound
is often the true optimum.
The algorithm is simpler, since the ‘shake’ strategy of [9] and [10] is not used.
2. The SolveTransformedTSP function (1) transforms the original instance into a standard TSP instance according to the current values of Low and High, (2) solves this
transformed instance using LKH, and (3) returns the bottleneck cost for the obtained
tour. The TSP instances are constructed by the following transformation of the original cost matrix:
𝑐 ! !"
0 𝑖𝑓 𝑐!" ≤ 𝐿𝑜𝑤 𝑐!" 𝑖𝑓 𝐿𝑜𝑤 < 𝑐!" < 𝐻𝑖𝑔ℎ = 𝐼𝑁𝑇_𝑀𝐴𝑋
𝑐!" +
𝑖𝑓 𝑐!" ≥ 𝐻𝑖𝑔ℎ 4
The implementation of the SolveTransformedTSP function is shown below in pseudo code.
5
int SolveTransformedTSP(int Low, int High) {
Create problem file;
if (High == INT_MAX) {
Create parameter file with special values;
Create candidate file;
} else
Create parameter file based on the input parameter file;
SolveTSP();
return bottleneck cost of the obtained tour;
}
Comments:
1. First, the transformed cost matrix is written to a file that adheres to the TSPLIB file
format [8]. A suitable parameter file is then created, and the standard TSP instance is
solved by LKH.
2. When SolveTransformedTSP is called for the first time (High = INT_MAX), some
special parameter values are chosen and a file that specifies candidate edges is created.
The candidate edges are those edges that have a transformed cost of zero. However,
since the number of such edges may be very large, pruning may be necessary in order
to keep running time low. For symmetric instances, a maximum of 100 candidate
edges are allowed to emanate from any vertex. If pruning for a vertex is necessary, its
emanating candidate edges are chosen as the connections to its 100 nearest neighbor
vertices. For asymmetric instances, the maximum number of allowable emanating
candidate edges for any vertex is 1000.
The special parameter values are:
CANDIDATE_FILE = <name of candidate file>
GAIN23 = NO
MAX_CANDIDATES = 0
MOVE_TYPE = 3
OPTIMUM = 0
RESTRICTED_SEARCH = NO
SUBGRADIENT = NO
SUBSEQUENT_MOVE_TYPE = 2
These parameter settings cause LKH to use non-restricted 3-opt as its basic move type
(MOVE_TYPE = 3, RESTRICTED_SEARCH = NO). Non-sequential moves are not explored (Gain23 = NO), and in any variable k-opt move, all submoves following the
initial submove are 2-opt moves (SUBSEQUENT_MOVE_TYPE = 2). Only the edges in
the candidate file will be used as candidate edges (MAX_CANDIDATES = 0), and no attempt is made to improve the lower bound of the TSP by subgradient optimization
(SUBGRADIENT = NO). The setting OPTIMUM = 0 causes LKH to stop as soon as tour
cost of zero is found. Experiments have shown that these parameter settings work very
well, both when it comes to running time and tour quality.
3. For all subsequent calls of SolveTransformedTSP, the parameter settings are taken
from the input parameter file given to BLKH.
4. The generated TSP instance is solved by the SolveTSP function by executing LKH as
a child process (using the Standard C Library function popen()).
6
3. Improving the BTSP Solver
The solver described in the previous section performs well on instances with up to 100,000
vertices. However, for large instances the produced problem files are big, and LKH’s usage of
RAM is high (it grows a n2). For example, for the Euclidean 100,000-vertex instance E100k.0,
the problem file occupies 35 GB, and LKH uses 22 GB of RAM for solving the TSP instances.
For geometric instances specified by coordinates, like E100k.0, such excessive usage of
memory resources can be avoided by a minor revision of LKH. Two additional parameters,
LOW and HIGH, are introduced, which allows LKH to create the desired set of candidate
edges and compute transformed edge costs on the fly. This exempts BLKH from creating
problem files and candidate files. Not only does this make possible solution of very large
geometric instances, as seen in Table 1, running time is also reduced. The first column specifies the name of the instance, and the second the number of vertices. The C- and E-instances
are clustered and uniformly distributed Euclidean random instances, respectively [13]. The
instance usa115475 is taken from [14]. The last two columns give the total running times to
find optima when the original version of LKH is used (BLKH_O) and when the revised version of LKH is used (BLKH_R). Running times are measured in seconds on an iMac 3.4 GHz
Intel Core i7 with 32 GB RAM.
Name
Size
C1k.0
E1k.0
C3k.0
E3k.0
C10k.0
E10k.0
C31k.0
E31k.0
C100k.0
E100k.0
usa115475
1,000
1,000
3,162
3,126
10,000
10,000
31,623
31,623
100,000
100,000
115,475
BLKH_O
Total time
0.30
0.30
3.05
2.49
27.80
24.79
298.25
323.16
3,567.45
2,998.24
3,865.90
BLKH_R
Total time
0.10
0.08
0.75
0.16
4.86
1.77
56.37
78.39
848.44
280.10
404.64
Table 1 Running times for BLKH using the two versions of LKH.
7
4. Computational Evaluation
BLKH was coded in C and run under Linux on an iMac 3.4GHz Intel Core i7 with 32 GB
RAM. The implementation is based on version 2.0.7 of LKH, which was revised as described
in the previous section.
The performance of BLKH has been evaluated on 339 symmetric and 352 asymmetric benchmark instances. For all instances, the currently best known solutions were either found or improved.
4.1 Performance on Symmetric Instances
For all symmetric instances, the following parameter settings for BLKH were chosen:
PROBLEM_FILE = TSP_INSTANCES/<instance name>.tsp
INITIAL_PERIOD = 100
MAX_TRIALS = 100
MOVE_TYPE = 3
OPTIMUM = <best known cost>
RUNS = 1
An explanation is given below:
PROBLEM_FILE: The symmetric test instances have been placed in the directory
TSP_INSTANCES and have filename extension “.tsp”.
INITIAL_PERIOD: The candidate sets that are used in the Lin-Kernighan search process are found using a Held-Karp subgradient ascent algorithm based on minimum 1trees [16]. The parameter specifies the length of the first period in the Held-Karp ascent (default is n/2).
MAX_TRIALS: Maximum number of trials (iterations) to be performed by the iterated Lin-Kernighan procedure (default is n).
MOVE_TYPE: Basic k-opt move type used in the Lin-Kernighan search (default is 5).
LKH offers the possibility of using higher-order and/or non-sequential move types in
order to improve the solution quality. However, preliminary tests showed that 3-opt
moves were sufficient for solving the symmetric benchmark instances.
OPTIMUM: This parameter may be used to supply a best known solution cost. The
algorithm will stop if this value is reached during the search process.
RUNS: Number of runs to be performed by LKH. Set to 1, since preliminary tests
showed that optimum could be found for all benchmark instances using only one run
(default is 10).
8
Tables 2-9 show the test results for the same symmetric benchmark instances as were used by
John LaRusic et al. in [9]. Each test was repeated ten times. The column headers are as follows:
Name: the instance name.
Size: the number of vertices.
Lower bound: The lower bound (calculated by TwoMax and BBSSP).
Success: The number of tests in which the best value was found.
BLKH Best value: The best value found by BLKH.
BLKH Total time: The average CPU time, in seconds, used by BLKH for one test (includes the time for calculating the lower bound).
JLR Best value: The best value found John LaRusic et al.’s implementation (JLR).
JLR Total time: The average CPU time, in seconds, used by JLR for one test (includes
the time for calculating the lower bound).
As can be seen from the test results in Tables 2-9, BLKH and JLR find the same best values
for these instances, but BLKH uses much less CPU time than JLR, even when it is taken into
account that BLKH was run on a more powerful processor (3.4 GHz Intel i7) than the processor used for running JLR (2.8 GHz Intel Xeon). That BLKH finds solutions much faster than
JLR is particularly obvious from the test results for the specially constructed hard instances
(Tables 8-9).
Due to memory limitations, JLR was not able to solve instances with more than 31,623 vertices. This is not an obstacle for BLKH when using the slightly revised version of LKH. Table
10 gives the computational results for 30 instances with between 31,623 and 1,000,000 vertices. The column “Lower bound time” gives the time, in seconds, used to find the lower bound. All
runs required less than 1 GB of RAM. As can bee seen, optimum solutions were found for all instances.
9
Name
Size
a280
ali535
att48
att532
bayg29
bays29
berlin52
bier127
brazil58
brd14051
brg180
burma14
ch130
ch150
d1291
d15112
d1655
d18512
d198
d2103
d493
d657
dantzig42
dsj1000
eil101
eil51
eil76
fl1400
fl1577
fl3795
fl417
fnl4461
fri26
gil262
gr120
gr137
gr17
gr202
gr21
gr229
gr24
gr431
gr48
gr666
gr96
hk48
kroA100
kroA150
kroA200
kroB100
kroB150
kroB200
kroC100
kroD100
280
535
48
532
29
29
52
127
58
14,051
180
14
130
150
1,291
15,112
1,655
18,512
198
2,103
493
657
42
1,000
101
51
76
1,400
1,577
3,795
417
4,461
26
262
120
137
17
202
21
229
24
431
48
666
96
48
100
150
200
100
150
200
100
100
Lower
bound
20
3,889
519
229
111
154
475
7,486
2,149
1,306
30
418
142
93
1,289
1,370
1,476
476
1,380
1,133
2,008
1,368
35
295,939
13
13
16
530
431
528
472
132
93
23
220
2,132
282
2,230
355
4,027
108
4,027
227
4,264
2,807
534
475
392
408
530
436
344
498
491
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
20
3,889
519
229
111
154
475
7,486
2,149
1,306
30
418
142
93
1,289
1,370
1,476
476
1,380
1,133
2,008
1,368
35
295,939
13
13
16
530
431
528
472
132
93
23
220
2,132
282
2,230
355
4,027
108
4,027
227
4,264
2,807
534
475
392
408
530
436
344
498
491
BLKH
Total time
0.01
0.07
0.00
0.05
0.00
0.00
0.00
0.00
0.00
10.42
0.01
0.00
0.00
0.00
0.04
2.80
0.07
6.70
0.00
0.08
0.01
0.01
0.00
0.08
0.00
0.00
0.00
0.05
0.11
0.27
0.01
0.42
0.00
0.00
0.00
0.01
0.00
0.01
0.00
0.01
0.00
0.03
0.00
0.06
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.01
0.00
0.00
JLR
Best value
20
3,889
519
229
111
154
475
7,486
2,149
1,306
30
418
142
93
1,289
1,370
1,476
476
1,380
1,133
2,008
1,368
35
295,939
13
13
16
530
431
528
472
132
93
23
220
2,132
282
2,230
355
4,027
108
4,027
227
4,264
2,807
534
475
392
408
530
436
344
498
491
JLR
Total time
0.92
7.55
0.08
3.85
0.03
0.03
0.13
0.78
0.18
187.73
1.00
0.01
0.42
0.38
12.49
227.86
13.44
304.16
1.42
14.65
5.34
6.92
0.05
11.96
0.25
0.05
0.22
10.58
10.94
22.01
5.67
23.59
0.03
0.96
0.49
0.69
0.01
1.97
0.02
1.85
0.02
5.46
0.07
10.33
0.43
0.07
0.20
0.34
0.68
0.25
0.40
0.55
0.19
0.19
Table 2 Results for symmetric TSPLIB instances [8] (Part I).
10
Name
Size
kroE100
lin105
lin318
nrw1379
p654
pa561
pcb1173
pcb3038
pcb442
pla7397
pr1002
pr107
pr124
pr136
pr144
pr152
pr226
pr2392
pr264
pr299
pr439
pr76
rat195
rat575
rat783
rat99
rd100
rd400
rl11849
rl1304
rl1323
rl1889
rl5915
rl5934
si1032
si175
si535
st70
swiss42
ts225
tsp225
u1060
u1432
u159
u1817
u2152
u2319
u574
u724
ulysses16
ulysses22
usa13509
vm1084
vm1748
100
105
318
1,379
654
561
1,173
3,038
442
7,397
1,002
107
124
136
144
152
226
2,392
264
299
439
76
195
575
783
99
100
400
11,849
1,304
1,323
1,889
5,915
5,934
1,032
175
535
70
42
500
225
1,060
1,432
159
1,817
2,152
2,319
574
724
16
22
13,509
1,084
1,748
Lower
bound
490
487
487
105
1,223
16
243
198
500
81,438
2,129
7,050
3,302
2,976
2,570
5,553
3,250
481
4,701
498
2,384
3,946
21
23
26
20
221
104
842
1,535
2,489
896
602
896
362
177
227
24
67
1,000
36
2,378
300
800
234
105
224
345
170
1,504
1,504
16,754
998
1,017
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
490
487
487
105
1,223
16
243
198
500
81,438
2,129
7,050
3,302
2,976
2,570
5,553
3,250
481
4,701
498
2,384
3,946
21
23
26
20
221
104
842
1,535
2,489
896
602
896
362
177
227
24
67
1,000
36
2,378
300
800
234
105
224
345
170
1,504
1,504
16,754
998
1,017
BLKH
Total time
0.00
0.00
0.01
0.04
0.04
0.03
0.03
0.42
0.01
5.52
0.05
0.00
0.00
0.00
0.00
0.00
0.00
0.49
0.01
0.02
0.00
0.00
0.00
0.01
0.01
0.00
0.00
0.01
5.53
0.07
0.08
0.18
1.67
1.55
0.15
0.01
0.04
0.00
0.00
0.06
0.00
0.02
0.04
0.00
0.06
0.09
0.09
0.01
0.02
0.00
0.00
3.08
0.04
0.05
JLR
Best value
490
487
487
105
1,223
16
243
198
500
81,438
2,129
7,050
3,302
2,976
2,570
5,553
3,250
481
4,701
498
2,384
3,946
21
23
26
20
221
104
842
1,535
2,489
896
602
896
362
177
227
24
67
1,000
36
2,378
300
800
234
105
224
345
170
1,504
1,504
16,754
998
1,017
JLR
Total Time
0.19
0.28
1.41
8.44
5.40
3.44
8.30
13.58
2.94
181.79
7.07
0.42
0.48
0.54
0.51
0.67
0.94
12.03
1.83
2.41
3.07
0.20
0.51
2.82
5.46
0.10
0.30
1.94
149.59
9.35
10.87
9.72
229.82
60.29
21.84
0.68
4.35
0.15
0.06
2.99
0.75
8.39
7.21
0.52
8.61
25.66
10.03
3.73
4.00
0.01
0.03
211.14
6.91
9.47
Table 3 Results for symmetric TSPLIB instances [8] (Part II).
11
Name
Size
C10k.0
C10k.1
C10k.2
C1k.0
C1k.1
C1k.2
C1k.3
C1k.4
C1k.5
C1k.6
C1k.7
C1k.8
C1k.9
C31k.0
C3k.0
C3k.1
C3k.2
C3k.3
C3k.4
E10k.0
E10k.1
E10k.2
E1k.0
E1k.1
E1k.2
E1k.3
E1k.4
E1k.5
E1k.6
E1k.7
E1k.8
E1k.9
E31k.0
E31k.1
E3k.0
E3k.1
E3k.2
E3k.3
E3k.4
M10k.0
M1k.0
M1k.1
M1k.2
M1k.3
M3k.0
M3k.1
10,000
10,000
10,000
1,000
1,000
1,000
1,000
1,000
1,000
1,000
1,000
1,000
1,000
31,623
3,162
3,162
3,162
3,162
3,162
10,000
10,000
10,000
1,000
1,000
1,000
1,000
1,000
1,000
1,000
1,000
1,000
1,000
31,623
31,623
3,162
3,162
3,162
3,162
3,162
10,000
1,000
1,000
1,000
1,000
3,162
3,162
Lower
bound
161,062
94,139
121,209
290,552
335,184
225,295
416,768
318,930
260,389
175,740
301,366
246,519
208,091
84,302
252,245
167,466
194,007
180,852
180,583
20,174
22,883
20,208
64,739
67,476
88,522
59,220
68,259
61,406
68,777
70,389
57,597
68,420
12,419
15,169
39,854
37,500
35,145
44,428
36,621
1,189
9,328
8,856
11,282
11,617
3,289
3,034
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
161,062
94,139
121,209
290,552
335,184
225,295
416,768
318,930
260,389
175,740
301,366
246,519
208,091
84,302
252,245
167,466
194,007
180,852
180,583
20,174
22,883
20,208
64,739
67,476
88,522
59,220
68,259
61,406
68,777
70,389
57,597
68,420
12,419
15,169
39,854
37,500
35,145
44,428
36,621
1,189
9,328
8,856
11,282
11,617
3,289
3,034
BLKH
Total time
4.86
5.22
4.47
0.10
0.06
0.07
0.07
0.09
0.06
0.07
0.06
0.07
0.07
56.37
0.75
0.46
0.68
0.61
0.52
1.77
5.85
7.74
0.08
0.02
0.06
0.02
0.02
0.02
0.02
0.02
0.02
0.02
78.39
18.43
0.16
0.17
0.17
0.16
0.74
19.26
0.18
0.19
0.19
0.18
1.90
1.90
JLR
Best value
161,062
94,139
121,209
290,552
335,184
225,295
416,768
318,930
260,389
175,740
301,366
246,519
208,091
84,302
252,245
167,466
194,007
180,852
180,583
20,174
22,883
20,208
64,739
67,476
88,522
59,220
68,259
61,406
68,777
70,389
57,597
68,420
12,419
15,169
39,854
37,500
35,145
44,428
36,621
1,189
9,328
8,856
11,282
11,617
3,289
3,034
Table 4 Results for symmetric JM random instances [13].
12
JLR
Total time
225.32
178.63
173.08
13.44
12.12
10.18
27.66
10.86
30.25
10.94
12.28
10.75
10.22
1,680.74
32.21
74.67
27.43
41.94
29.63
119.03
121.10
119.04
6.09
6.50
8.08
5.73
6.54
5.85
6.70
6.77
5.92
6.58
1,192.12
1,194.92
17.68
16.97
16.57
18.42
16.96
255.15
17.77
17.42
20.11
19.91
47.56
46.57
Name
Size
ar9152
ca4663
dj89
eg7146
ei8246
fi10639
gr9882
ho14473
it16862
ja9847
kz9976
lu980
mo14185
mu1979
nu3496
pm8079
qa194
rw1621
sw24978
tz6117
uy734
vm22775
wi29
ym7663
zi929
9,152
4,663
89
7,146
8,246
10,639
9,882
14,473
16,862
9,847
9,976
980
14,185
1,979
3,496
8,079
194
1,621
24,978
6,117
734
22,775
29
7,663
929
Lower
bound
4,871
13,768
437
2,150
124
768
1,399
440
1,499
6,413
1,602
44
939
1,153
650
331
370
150
1,068
486
389
388
2,250
3,113
887
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
4,871
13,768
437
2,150
124
768
1,399
440
1,499
6,413
1,602
44
939
1,153
650
331
370
150
1,068
486
389
388
2,250
3,113
887
BLKH
Total time
1.77
1.21
0.00
2.27
1.44
1.73
1.99
7.66
10.71
4.71
1.89
0.02
10.88
0.09
0.35
2.39
0.00
0.09
37.19
0.74
0.04
9.94
0.00
2.74
0.02
JLR
Best value
4,871
13,768
437
2,150
124
768
1,399
440
1,499
6,413
1,602
44
939
1,153
650
331
370
150
1,068
486
389
388
2,250
3,113
887
Table 5 Results for National TSP instances [14].
13
JLR
Total time
102.02
35.18
0.29
65.86
65.69
106.56
97.15
208.38
431.88
101.17
103.94
5.97
180.20
14.10
24.84
75.56
1.13
11.46
8,270.68
40.26
5.04
477.76
0.02
66.67
8.12
Name
Size
bbz25234
bch2762
bck2217
bcl380
beg3293
bgb4355
bgd4396
bgf4475
bnd7168
boa28924
bva2144
dbj2924
dca1389
dcb2086
dcc1911
dea2382
dga9698
dhb3386
dja1436
djb2036
djc1785
dka1376
dkc3938
dkd1973
dke3097
dkf3954
dkg813
dlb3694
fdp3256
fea5557
fjr3672
fjs3649
fma21553
fnb1615
fnc19402
fqm5087
fra1488
frh19289
frv4410
fyg28534
25,234
2,762
2,217
380
3,293
4,355
4,396
4,475
7,168
28,924
2,144
2,924
1,389
2,086
1,911
2,382
9,698
3,386
1,436
2,036
1,785
1,376
3,938
1,973
3,097
3,954
813
3,694
3,256
5,557
3,672
3,649
21,553
1,615
19,402
5,087
1,488
19,289
4,410
28,534
Lower
bound
15
15
16
16
24
13
28
25
15
18
15
16
18
21
16
25
15
17
15
15
24
15
16
14
19
20
18
19
20
15
21
21
16
45
18
16
13
28
15
15
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
15
15
16
16
24
13
28
25
15
18
15
16
18
21
16
25
15
17
15
15
24
15
16
14
19
20
18
19
20
15
21
21
16
45
18
16
13
28
15
15
BLKH
Total time
12.10
0.15
0.19
0.00
0.20
0.35
0.35
0.36
2.49
16.29
0.09
0.16
0.07
0.18
0.07
0.10
1.74
0.51
0.04
0.08
0.06
0.04
0.30
0.08
0.37
0.72
0.01
1.18
0.45
1.89
0.23
0.22
22.41
0.10
17.58
0.51
0.04
5.91
0.83
43.24
JLR
Best value
15
15
16
16
24
13
28
25
15
18
15
16
18
21
16
25
15
17
15
15
24
15
16
14
19
20
18
19
20
15
21
21
16
45
18
16
13
28
15
15
Table 6 Results for VLSI instances [14] (Part I).
14
JLR
Total time
467.37
11.83
10.27
2.15
15.00
23.01
21.27
21.28
41.90
641.48
9.93
12.99
8.39
10.00
9.45
11.75
70.74
14.87
7.72
9.54
9.63
8.16
17.53
9.61
13.75
17.57
5.46
55.45
16.46
36.32
17.65
17.01
354.83
11.46
274.10
25.19
8.23
271.25
19.00
587.37
Name
Size
icw1483
icx28698
ida8197
ido21215
ird29514
irw2802
irx28268
lap7454
ley2323
lim963
lsb22777
lsm2854
lsn3119
lta3140
ltb3729
mlt2597
pbd984
pbk411
pbl395
pbm436
pbn423
pds2566
pia3056
pjh17845
pka379
pma343
rbu737
rbv1583
rbw2481
rbx711
rby1599
xia16928
xit1083
xmc10150
xpr2308
xqc2175
1,483
28,698
8,197
21,215
29,514
2,802
28,268
7,454
2,323
963
22,777
2,854
3,119
3,140
3,729
2,597
984
411
395
436
423
2,566
3,056
17,845
379
343
737
1,583
2,481
711
1,599
16,928
1,083
10,150
2,308
2,175
Lower
bound
21
18
14
16
16
15
15
16
27
13
23
19
16
17
13
21
13
14
13
15
14
15
15
14
11
15
13
18
27
15
18
15
11
17
14
15
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
21
18
14
16
16
15
15
16
27
13
23
19
16
17
13
21
13
14
13
15
14
15
15
14
11
15
13
18
27
15
18
15
11
17
14
15
BLKH
Total time
0.08
16.39
1.24
7.50
17.70
0.33
36.75
1.02
0.19
0.04
26.73
0.15
0.18
0.19
0.31
0.12
0.02
0.01
0.01
0.01
0.01
0.26
0.18
5.07
0.00
0.00
0.02
0.11
0.23
0.01
0.12
4.59
0.02
1.56
0.10
0.20
JLR
Best value
21
18
14
16
16
15
15
16
27
13
23
19
16
17
13
21
13
14
13
15
14
15
15
14
11
15
13
18
27
15
18
15
11
17
14
15
Table 7 Results for VLSI instances [14] (Part II).
15
JLR
Total time
9.07
594.93
55.20
345.75
629.35
12.52
575.07
45.54
11.47
6.98
374.12
12.85
13.89
13.95
17.97
11.98
7.17
2.54
2.31
2.70
2.46
11.14
13.57
231.96
1.75
1.77
4.62
8.68
11.96
4.35
9.58
310.45
6.46
239.83
10.09
10.18
Beta
Gamma
r
Seed
500
500
500
500
500
500
500
500
500
1,000
1,000
1,000
1,000
1,000
1,000
1,000
1,000
1,000
2,500
2,500
2,500
2,500
2,500
2,500
2,500
2,500
2,500
5,000
5,000
5,000
7,500
7,500
7,500
10,000
10,000
10,000
5,000
5,000
5,000
7,500
7,500
7,500
10,000
10,000
10,000
5,000
5,000
5,000
7,500
7,500
7,500
10,000
10,000
10,000
125
250
375
125
250
375
125
250
375
125
250
375
125
250
375
125
250
375
125
250
375
125
250
375
125
250
375
6,125
6,250
6,375
8,625
8,750
8,875
11,125
11,250
11,375
6,625
6,750
6,875
9,125
9,250
9,375
11,625
11,750
11,875
8,125
8,250
8,375
10,625
10,750
10,875
13,125
13,250
13,375
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
Lower
bound
29
17
35
31
22
36
53
20
30
56
26
73
59
40
55
70
34
99
175
88
156
174
106
170
171
83
161
BLKH
Best value
525
17
524
538
22
537
547
20
551
1,022
26
1,019
1,031
40
1,034
1,052
34
1,047
2,514
88
2,513
2,530
106
2,528
2,534
83
2,536
BLKH
Total time
4.33
0.03
6.43
5.82
0.03
10.47
13.68
0.03
7.24
4.66
0.03
8.41
5.66
0.03
5.41
12.55
0.03
13.50
6.95
0.04
6.21
7.71
0.04
7.38
9.43
0.04
6.32
JLR
Best value
525
17
524
538
22
537
547
20
551
1,022
26
1,019
1,031
40
1,034
1,052
34
1,047
2,514
88
2,513
2,530
106
2,528
2,534
83
2,536
Table 8 Results for hard instances with n = 500 [9].
16
JLR
Total time
6,190.58
5.94
5,491.03
5,709.70
5.77
5,272.00
4,749.93
5.98
5,471.06
6,573.59
5.60
6,061.48
6,697.39
5.99
6,396.32
5,721.51
5.98
5,336.26
6,897.77
6.18
7,088.92
6,446.26
5.79
6,493.24
6,874.99
6.11
6,539.55
Beta
Gamma
r
Seed
500
500
500
500
500
500
500
500
500
1,000
1,000
1,000
1,000
1,000
1,000
1,000
1,000
1,000
2,500
2,500
2,500
2,500
2,500
2,500
2,500
2,500
2,500
5,000
5,000
5,000
7,500
7,500
7,500
10,000
10,000
10,000
5,000
5,000
5,000
7,500
7,500
7,500
10,000
10,000
10,000
5,000
5,000
5,000
7,500
7,500
7,500
10,000
10,000
10,000
625
1,250
1,875
625
1,250
1,875
625
1250
1875
625
1,250
1,875
625
1,250
1,875
625
1,250
1,875
625
1,250
1,875
625
1,250
1,875
625
1,250
1,875
8,625
9,250
9,875
11,125
11,750
12,375
13,625
14,250
14,875
9,125
9,750
10,375
11,625
12,250
12,875
14,125
14,750
15,375
10,625
11,250
11,875
13,125
13,750
14,375
15,625
16,250
16,875
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
Lower
bound
7
4
9
9
4
8
6
4
7
16
6
16
14
8
16
17
6
17
39
21
40
46
22
35
38
17
37
BLKH
Best value
505
4
505
508
4
507
510
4
510
1,005
6
1,005
1,007
8
1,007
1,009
6
1,009
2,503
21
2,503
2,506
22
2,506
2,509
17
2,508
BLKH
Total time
189.12
0.81
306.22
239.56
0.81
192.47
179.83
0.81
176.55
171.32
0.82
200.40
191.53
0.85
268.91
256.42
0.84
253.63
205.60
0.89
174.84
256.41
0.89
196.41
264.72
1.01
273.14
JLR
Best value
505
4
505
508
4
507
510
4
510
1,005
6
1,005
1,007
8
1,007
1,009
6
1,009
2,503
21
2,503
2,506
22
2,506
2,509
17
2,508
Table 9 Results for hard instances with n = 2,500 [9].
17
JLR
Total time
24,305.76
32.01
21,989.61
23,334.92
32.55
22,762.23
23,854.55
32.44
23,708.87
25,242.82
35.85
25,255.14
25,724.98
34.84
24,531.80
23,909.13
35.28
24,152.90
27,607.44
33.17
26,995.48
25,895.66
36.52
27,706.35
26,657.82
37.25
26,699.86
Name
Size
pla33810
pla85900
ch71009
usa115475
C31k.1
C100k.0
C316k.0
E100k.0
E316k.0
E1M.0
ara238025
bby34656
bna56769
dan59296
fht47608
fna52057
fry33203
ics39603
lra498378
lrb744710
pbh30440
rbz43748
sra104815
xib32892
mona-lisa100K
vangogh120K
venus140K
pareja160K
courbet180K
earring200K
33,810
85,900
71,009
115,475
31,623
100,000
316,228
100,000
316,228
1,000,000
238,025
34,656
56,769
59,296
47,608
52,057
33,203
39,603
498,378
744,710
30,440
43,748
104,815
32,892
100,000
120,000
140,000
160,000
180,000
200,000
Lower
bound
30,266
51,006
1,509
1,110
65,079
44,745
23,159
7,169
4,382
2,396
161
18
16
23
16
16
20
18
1,341
86
26
14
194
19
340
218
185
283
230
394
Lower
bound time
96.64
723.77
345.69
115.80
46.16
560.56
8,855.63
73.84
960.17
10,605.88
6,004.04
8.67
145.53
30.67
93.52
119.42
45.03
62.29
27,596.81
54,586.40
6.15
82.55
662.00
41.43
36.74
78.84
120.95
133.94
194.70
214.12
BLKH
Best value
30,266
51,006
1,509
1,110
65,079
44,745
23,159
7,169
4,382
2,396
161
18
16
23
16
16
20
18
1,341
86
26
14
194
19
340
218
185
283
230
394
BLKH
Total time
119.46
953.31
454.82
404.64
68.61
848.44
11,137.78
280.10
3,203.02
33,543.05
7,304.01
26.02
201.92
93.19
130.93
165.59
60.43
86.10
34,519.57
67,586.45
18.52
112.90
909.87
56.39
241.80
379.79
537.75
687.35
900.96
1,096.22
Table 10 Results for very large symmetric instances [8][13][14].
18
4.2 Performance on Asymmetric Instances
For all asymmetric instances, the following parameter settings for BLKH were chosen:
PROBLEM_FILE = ATSP_INSTANCES/<instance name>.atsp
INITIAL_PERIOD = 1000
MAX_CANDIDATES = 30
MAX_TRIALS = 1000
MOVE_TYPE = 3
OPTIMUM = <best known cost>
RUNS = 1
An explanation is given below:
PROBLEM_FILE: The symmetric test instances have been placed in the directory
ATSP_INSTANCES and have filename extension “.atsp”.
INITIAL_PERIOD: This parameter specifies the length of the first period in the HeldKarp ascent [16] (default is n/2).
MAX_CANDIDATES: This parameter is used to specify the size of the candidate sets
used during the Lin-Kernighan search. Its value specifies the maximum number of
candidate edges emanating from each vertex. The default value in LKH is 5. After
some preliminary experiments, the value 30 was chosen.
MAX_TRIALS: Maximum number of trials (iterations) to be performed by the iterated Lin-Kernighan procedure (default is n).
MOVE_TYPE: Basic k-opt move type used in the Lin-Kernighan search (default is 5).
As for symmetric instances, preliminary tests showed that 3-opt moves were sufficient
for solving the asymmetric benchmark instances.
OPTIMUM: This parameter may be used to supply a best known solution cost. The
algorithm will stop if this value is reached during the search process.
RUNS: Number of runs to be performed by LKH. Set to 1, since preliminary tests
showed that optimum could be found for all benchmark instances using only one run
(default is 10).
Tables 11-24 show the test results for the same asymmetric benchmark instances as were used
by John LaRusic et al. in [10]. Each test was repeated ten times. The table column headers are
the same as for the symmetric instances. As can be seen from the tables, BLKH was able to
find new best values for 51 of the 332 instances. New best values are emphasized. Among the
new best values, 44 are optimal (as they are equal to the calculated lower bounds). Notice also
that BLKH runs considerably faster than JLR.
Table 25 shows computational results for some asymmetric real world instances not used in
[10]. As can bee seen, BLKH found optimum solutions for all these instances.
19
Name
Size
amat100.0
amat100.1
amat100.2
amat100.3
amat100.4
amat100.5
amat100.6
amat100.7
amat100.8
amat100.9
amat316.10
amat316.11
amat316.12
amat316.13
amat316.14
amat316.15
amat316.16
amat316.17
amat316.18
amat316.19
amat1000.20
amat1000.21
amat1000.22
amat3162.30
100
100
100
100
100
100
100
100
100
100
316
316
316
316
316
316
316
316
316
316
1,000
1,000
1,000
3,162
Lower
bound
50,981
26,551
50,821
21,695
63,674
17,539
62,994
19,952
55,534
20,779
17,207
59,291
43,608
55,462
9,978
49,928
10,624
21,896
6,715
20,451
44,548
26,165
72,650
2,985
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
50,981
26,551
50,821
21,695
63,674
17,539
62,994
19,952
55,534
20,779
17,207
59,291
43,608
55,462
9,978
49,928
10,624
21,896
6,715
20,451
44,548
26,165
72,650
2,985
BLKH
Total time
0.01
0.01
0.01
0.01
0.02
0.01
0.01
0.01
0.01
0.01
0.04
0.10
0.04
0.07
0.04
0.04
0.04
0.04
0.04
0.04
0.39
0.39
0.40
3.99
JLR
Best value
50,981
50,821
63,674
62,994
55,534
44,548
72,650
59,291
55,462
49,928
21,896
20,451
26,551
21,695
17,539
19,952
20,779
26,165
17,207
43,608
9,978
10,624
6,715
47,237
JLR
Total time
0.13
0.16
0.13
0.17
0.15
0.15
0.15
0.15
0.13
0.13
0.98
1.25
0.88
1.04
2.64
2.07
1.18
0.95
1.71
2.36
15.35
15.81
29.15
5,760.72
Table 11 Results for random asymmetric instances (amat) [13].
20
Name
Size
coin100.0
coin100.1
coin100.2
coin100.3
coin100.4
coin100.5
coin100.6
coin100.7
coin100.8
coin100.9
coin316.10
coin316.11
coin316.12
coin316.13
coin316.14
coin316.15
coin316.16
coin316.17
coin316.18
coin316.19
coin1000.20
coin1000.21
coin1000.22
coin3162.30
100
100
100
100
100
100
100
100
100
100
316
316
316
316
316
316
316
316
316
316
1,000
1,000
1,000
3,162
Lower
bound
253
219
203
232
214
244
239
265
198
243
227
238
225
245
278
282
243
277
277
259
278
327
245
260
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
253
219
203
232
214
244
239
265
198
243
227
238
225
245
278
282
243
277
277
259
278
327
245
260
BLKH
Total time
0.01
0.01
0.23
0.01
0.01
0.01
0.00
0.00
0.12
0.01
0.04
0.04
0.05
0.14
0.03
0.04
0.06
0.03
0.04
0.03
0.34
0.32
0.33
3.85
JLR
Best value
253
219
203
232
214
244
239
265
198
243
227
238
225
245
278
282
243
277
277
259
278
327
249
649
JLR
Total time
14.49
18.85
16.18
20.84
0.16
18.60
9.68
20.47
15.54
21.38
82.78
87.09
72.60
66.07
88.84
56.75
47.92
88.05
66.54
0.53
341.00
422.52
279.33
4,075.57
Table 12 Results for pay phone collection instances (coin) [13].
21
Name
Size
crane100.0
crane100.1
crane100.2
crane100.3
crane100.4
crane100.5
crane100.6
crane100.7
crane100.8
crane100.9
crane316.10
crane316.11
crane316.12
crane316.13
crane316.14
crane316.15
crane316.16
crane316.17
crane316.18
crane316.19
crane1000.20
crane1000.21
crane1000.22
crane3162.30
100
100
100
100
100
100
100
100
100
100
316
316
316
316
316
316
316
316
316
316
1,000
1,000
1,000
3,162
Lower
bound
173,390
152,923
214,843
145,622
171,484
205,739
185,071
200,173
205,258
192,987
119,345
108,045
132,750
102,898
145,963
128,548
111,939
102,571
106,821
133,399
56,343
61,720
58,091
41,751
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
173,390
152,923
214,843
145,622
171,484
205,739
185,071
200,173
205,258
192,987
119,345
108,045
132,750
102,898
145,963
128,548
111,939
102,571
106,821
133,399
56,343
64,450
58,466
41,751
BLKH
Total time
0.01
0.14
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.99
0.04
0.04
0.05
0.04
0.05
0.04
0.04
0.05
0.04
0.42
28.83
4.01
4.31
JLR
Best value
173,390
180,146
214,843
145,622
171,484
205,739
185,071
200,173
205,258
192,987
120,333
108,045
132,750
102,898
145,963
128,548
111,939
102,571
106,821
133,399
56,343
64,450
58,466
76,894
JLR
Total time
0.12
30.65
0.14
0.28
0.26
0.12
0.17
0.12
0.18
23.40
136.68
1.08
2.34
0.95
0.73
192.00
1.71
1.42
1.92
0.86
19.44
722.66
489.04
6,234.88
Table 13 Results for random Euclidean stacker crane instances (crane) [13].
22
Name
Size
disk100.0
disk100.1
disk100.2
disk100.3
disk100.4
disk100.5
disk100.6
disk100.7
disk100.8
disk100.9
disk316.10
disk316.11
disk316.12
disk316.13
disk316.14
disk316.15
disk316.16
disk316.17
disk316.18
disk316.19
disk1000.20
disk1000.21
disk1000.22
disk3162.30
100
100
100
100
100
100
100
100
100
100
316
316
316
316
316
316
316
316
316
316
1,000
1,000
1,000
3,162
Lower
bound
508,034
473,495
382,677
453,657
415,696
553,069
432,563
550,543
396,159
426,697
309,801
259,308
273,516
236,394
226,920
271,724
249,590
305,813
246,356
320,680
190,741
190,665
171,509
114,028
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
508,034
473,495
382,677
453,657
415,696
553,069
432,563
550,543
396,159
426,697
309,801
259,308
273,516
236,394
226,920
271,724
249,590
305,813
246,356
320,680
190,741
190,665
171,509
114,028
BLKH
Total time
0.01
0.01
0.11
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.05
0.08
0.05
0.18
0.05
0.05
0.15
0.05
0.19
0.18
0.46
0.45
3.79
8.52
JLR
Best value
508,034
473,495
386,809
453,657
415,696
553,069
432,563
550,543
396,159
426,697
309,801
259,308
273,516
236,394
226,920
271,724
249,590
305,813
246,356
320,680
190,741
190,665
195,825
275,891
Table 14 Results for disk drive instances (disk) [13].
23
JLR
Total time
0.12
0.10
10.39
0.15
0.19
0.21
0.13
0.16
0.40
0.22
0.82
1.33
1.41
32.21
2.64
1.50
7.44
1.01
1.37
1.16
975.74
746.68
1,537.19
5,957.56
Name
Size
rect100.0
rect100.1
rect100.2
rect100.3
rect100.4
rect100.5
rect100.6
rect100.7
rect100.8
rect100.9
rect316.10
rect316.11
rect316.12
rect316.13
rect316.14
rect316.15
rect316.16
rect316.17
rect316.18
rect316.19
rect1000.20
rect1000.21
rect1000.22
rect3162.30
100
100
100
100
100
100
100
100
100
100
316
316
316
316
316
316
316
316
316
316
1,000
1,000
1,000
3,162
Lower
bound
223,717
296,349
198,319
252,297
246,494
270,406
226,069
245,457
259,347
199,114
160,358
133,083
143,209
116,995
140,437
144,858
142,029
121,054
166,616
142,134
88,925
82,241
73,643
47,063
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
223,717
296,349
198,319
252,297
246,494
270,406
226,069
245,457
259,347
199,114
160,358
133,083
143,209
116,995
140,437
144,858
142,029
121,054
166,616
142,134
88,925
82,241
73,643
47,063
BLKH
Total time
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.24
0.04
0.07
0.05
0.05
0.05
0.05
0.05
0.05
0.05
0.05
0.44
0.45
0.47
5.21
JLR
Best value
223,717
296,349
198,319
252,297
246,494
270,406
226,069
245,457
259,347
200,000
160,358
133,083
143,209
116,995
140,437
144,858
142,029
121,054
166,616
142,134
88,925
82,241
73,643
123,706
JLR
Total time
12.40
28.72
22.94
24.45
27.80
22.01
18.40
21.60
27.80
22.88
168.87
121.94
134.99
104.04
158.32
118.90
110.67
110.10
217.73
151.49
521.58
543.19
398.07
5,241.82
Table 15 Results for random two-dimensional rectilinear instances (rect) [13].
24
Name
Size
rtilt100.0
rtilt100.1
rtilt100.2
rtilt100.3
rtilt100.4
rtilt100.5
rtilt100.6
rtilt100.7
rtilt100.8
rtilt100.9
rtilt316.10
rtilt316.11
rtilt316.12
rtilt316.13
rtilt316.14
rtilt316.15
rtilt316.16
rtilt316.17
rtilt316.18
rtilt316.19
rtilt1000.20
rtilt1000.21
rtilt1000.22
rtilt3162.30
100
100
100
100
100
100
100
100
100
100
316
316
316
316
316
316
316
316
316
316
1,000
1,000
1,000
3,162
Lower
bound
260,342
291,040
227,248
236,920
294,367
238,332
276,224
361,152
368,500
198,376
152,510
139,280
162,936
141,912
157,594
181,676
173,991
128,217
147,764
133,664
86,549
86,828
92,692
47,152
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
260,342
291,040
227,248
236,920
294,367
238,332
276,224
361,152
368,500
198,376
152,510
139,280
162,936
141,912
157,594
181,676
173,991
128,217
147,764
133,664
86,549
86,828
92,692
47,152
BLKH
Total time
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
1.55
0.05
0.07
0.07
0.06
0.06
0.05
0.07
1.23
0.06
0.11
0.68
0.70
0.60
9.35
JLR
Best value
286,962
291,040
270,913
288,191
307,304
280,052
276,947
361,152
368,500
307,809
261,362
240,201
272,157
249,325
281,467
231,232
273,055
317,338
263,831
270,363
287,949
323,513
319,739
391,531
JLR
Total time
38.31
33.51
43.60
47.37
45.41
42.26
33.44
0.33
1.24
50.76
431.86
392.59
337.92
335.80
361.11
395.26
358.35
276.98
334.85
387.19
1,130.05
1,329.22
1,218.79
3,980.61
Table 16 Results for tilted drilling machine instances, additive norm (rtilt) [13].
25
Name
Size
shop100.0
shop100.1
shop100.2
shop100.3
shop100.4
shop100.5
shop100.6
shop100.7
shop100.8
shop100.9
shop316.10
shop316.11
shop316.12
shop316.13
shop316.14
shop316.15
shop316.16
shop316.17
shop316.18
shop316.19
shop1000.20
shop1000.21
shop1000.22
shop3162.30
100
100
100
100
100
100
100
100
100
100
316
316
316
316
316
316
316
316
316
316
1,000
1,000
1,000
3,162
Lower
bound
2,232
2,608
3,620
2,526
2,792
2,679
2,314
2,665
2,621
2,276
2,311
2,907
2,541
2,970
2,235
2,459
2,806
2,298
2,204
2,811
2,041
2,709
2,057
2,407
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
2,232
2,608
3,620
2,526
2,792
2,679
2,314
2,665
2,621
2,276
2,311
2,907
2,541
2,970
2,235
2,459
2,806
2,298
2,204
2,811
2,041
2,709
2,057
2,407
BLKH
Total time
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.04
0.05
0.10
0.05
0.09
0.05
0.04
0.04
0.04
0.04
0.48
7.28
2.16
5.49
JLR
Best value
2,232
2,608
3,620
2,526
2,792
2,679
2,314
2,665
2,621
2,276
2,311
2,907
2,541
2,970
2,235
2,459
2,806
2,298
2,204
2,811
2,190
2,709
2,184
2,407
Table 17 Results for no-wait flowshop instances (shop) [13].
26
JLR
Total time
8.89
0.16
0.10
0.40
0.10
0.09
1.01
0.09
0.11
7.46
119.55
0.42
0.40
0.42
4.38
0.70
0.43
5.34
4.23
0.44
719.28
1.83
730.85
127.45
Name
Size
smat100.0
smat100.1
smat100.2
smat100.3
smat100.4
smat100.5
smat100.6
smat100.7
smat100.8
smat100.9
smat316.10
smat316.11
smat316.12
smat316.13
smat316.14
smat316.15
smat316.16
smat316.17
smat316.18
smat316.19
smat1000.20
smat1000.21
smat1000.22
smat3162.30
100
100
100
100
100
100
100
100
100
100
316
316
316
316
316
316
316
316
316
316
1,000
1,000
1,000
3,162
Lower
bound
70,175
69,636
59,186
73,104
58,962
89,297
57,248
67,624
66,698
71,811
21,672
23,998
34,266
27,251
23,203
24,252
28,690
27,313
29,449
25,414
10,371
9,360
8,817
2,959
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
70,175
69,636
59,186
73,104
58,962
89,297
57,248
67,624
66,698
71,811
21,672
23,998
34,266
27,251
23,203
24,252
28,690
27,313
29,449
25,414
10,371
9,360
8,817
2,959
BLKH
Total time
0.01
0.01
0.01
0.01
0.01
0.01
0.11
0.01
0.01
0.01
0.05
0.05
0.04
0.04
0.04
0.04
0.04
0.04
0.04
0.05
0.43
0.42
0.43
4.56
JLR
Best value
70,175
69,636
59,186
73,104
58,962
89,297
61,904
67,624
66,698
71,811
21,672
23,998
34,266
27,251
23,203
24,252
28,690
27,313
29,449
25,414
10,371
9,360
8,817
49,035
JLR
Total time
24.42
20.17
28.64
24.16
18.51
30.22
18.74
28.50
22.76
25.26
147.15
147.35
152.54
130.37
119.50
152.07
180.38
157.42
144.71
117.88
826.19
636.71
572.56
6,963.29
Table 18 Results for random symmetric matrix instances (smat) [13].
27
Name
Size
stilt100.0
stilt100.1
stilt100.2
stilt100.3
stilt100.4
stilt100.5
stilt100.6
stilt100.7
stilt100.8
stilt100.9
stilt316.10
stilt316.11
stilt316.12
stilt316.13
stilt316.14
stilt316.15
stilt316.16
stilt316.17
stilt316.18
stilt316.19
stilt1000.20
stilt1000.21
stilt1000.22
stilt3162.30
100
100
100
100
100
100
100
100
100
100
316
316
316
316
316
316
316
316
316
316
1,000
1,000
1,000
3,162
Lower
bound
382,208
491,416
377,720
401,976
347,440
456,788
417,056
494,360
522,748
321,884
226,504
235,910
291,320
179,462
198,152
232,104
290,738
196,896
244,688
212,268
121,812
117,542
127,000
66,552
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
382,208
491,416
377,720
401,976
347,440
456,788
417,056
494,360
522,748
334,622
226,504
235,910
291,320
186,488
205,084
235,092
290,738
204,572
244,688
219,880
121,812
118,344
127,000
66,552
BLKH
Total time
0.01
0.01
0.01
0.03
0.02
0.01
0.01
0.01
0.01
0.21
0.21
0.07
0.05
2.78
7.80
1.10
0.05
2.80
0.05
1.22
0.56
19.97
1.39
7.42
JLR
Best value
404,808
491,416
392,728
410,408
389,296
456,788
417,056
494,360
522,748
383,838
401,968
424,144
432,260
365,846
430,308
379,108
370,896
391,892
418,088
367,686
466,364
460,732
456,270
569,890
JLR
Total time
31.09
3.34
35.26
35.13
45.20
1.64
1.10
2.12
0.49
38.75
336.37
268.78
386.30
302.48
281.13
298.41
372.58
247.78
355.59
287.51
986.35
1,295.38
1,236.09
4,127.88
Table 19 Results for tilted drilling machine instances, sup norm (stilt) [13].
28
Name
Size
super100.0
super100.1
super100.2
super100.3
super100.4
super100.5
super100.6
super100.7
super100.8
super100.9
super316.10
super316.11
super316.12
super316.13
super316.14
super316.15
super316.16
super316.17
super316.18
super316.19
super1000.20
super1000.21
super1000.22
super3162.30
100
100
100
100
100
100
100
100
100
100
316
316
316
316
316
316
316
316
316
316
1,000
1,000
1,000
3,162
Lower
bound
10
11
10
10
10
10
10
10
10
10
9
9
9
9
9
9
9
9
9
9
8
8
8
7
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
10
11
10
10
10
10
10
10
10
10
9
9
9
9
9
9
9
9
9
9
8
8
8
7
BLKH
Total time
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.02
0.02
0.02
0.02
0.02
0.04
0.02
0.02
0.02
0.02
0.19
0.19
0.20
1.95
JLR
Best value
10
11
10
10
10
10
10
10
10
10
9
9
9
9
9
9
9
9
9
9
8
8
8
9
JLR
Total time
0.09
0.09
0.09
0.09
0.09
0.09
0.09
0.09
0.09
0.09
0.49
0.47
0.48
0.48
0.48
0.52
0.48
0.47
0.49
0.49
12.07
12.07
10.63
1,905.87
Table 20 Results for approximate shortest common superstring instances (super) [13].
29
Name
Size
tmat100.0
tmat100.1
tmat100.2
tmat100.3
tmat100.4
tmat100.5
tmat100.6
tmat100.7
tmat100.8
tmat100.9
tmat316.10
tmat316.11
tmat316.12
tmat316.13
tmat316.14
tmat316.15
tmat316.16
tmat316.17
tmat316.18
tmat316.19
tmat1000.20
tmat1000.21
tmat1000.22
tmat3162.30
100
100
100
100
100
100
100
100
100
100
316
316
316
316
316
316
316
316
316
316
1,000
1,000
1,000
3,162
Lower
bound
50,981
50,821
63,674
62,994
55,534
35,793
72,650
59,291
55,462
49,928
21,896
18,240
26,551
20,090
17,539
19,952
20,779
26,165
17,207
43,608
9,978
10,624
6,715
2,985
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
50,981
50,821
63,674
62,994
55,534
35,793
72,650
59,291
55,462
49,928
21,896
18,240
26,551
20,090
17,539
19,952
20,779
26,165
17,207
43,608
9,978
10,624
6,715
2,985
BLKH
Total time
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.06
0.04
0.07
0.05
0.04
0.05
0.05
0.07
0.04
0.08
1.34
1.48
0.44
5.91
JLR
Best value
50,981
50,821
63,674
62,994
55,534
35,793
72,650
59,291
55,462
49,928
21,896
18,240
26,551
20,090
17,539
19,952
20,779
26,165
17,207
43,608
9,978
10,624
6,715
2,985
JLR
Total time
0.11
0.12
0.11
0.13
0.15
0.12
0.22
0.11
0.14
0.17
0.58
0.59
0.48
0.62
0.70
0.59
0.61
0.56
0.62
0.48
2.02
1.84
2.11
12.95
Table 21 Results for shortest-path closure of amat (tmat) [13].
30
Name
Size
tsmat100.0
tsmat100.1
tsmat100.2
tsmat100.3
tsmat100.4
tsmat100.5
tsmat100.6
tsmat100.7
tsmat100.8
tsmat100.9
tsmat316.10
tsmat316.11
tsmat316.12
tsmat316.13
tsmat316.14
tsmat316.15
tsmat316.16
tsmat316.17
tsmat316.18
tsmat316.19
tsmat1000.20
tsmat1000.21
tsmat1000.22
tsmat3162.30
100
100
100
100
100
100
100
100
100
100
316
316
316
316
316
316
316
316
316
316
1,000
1,000
1,000
3,162
Lower
bound
44,258
42,415
37,786
40,608
48,184
54,108
54,157
45,189
64,065
61,244
20,537
22,643
21,337
24,463
21,042
21,767
28,690
27,099
24,829
15,023
8104
6823
7578
2544
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
44,258
42,415
37,786
40,608
48,184
54,108
54,486
45,189
64,065
61,244
20,537
22,643
21,337
24,463
21,042
21,767
28,690
27,099
24,829
15,023
8,104
6,823
7,578
2,544
BLKH
Total time
0.01
0.01
0.01
0.01
0.01
0.01
6.16
0.01
0.01
0.01
0.06
0.06
0.06
0.06
0.06
0.05
0.07
0.07
0.07
0.04
1.03
0.51
0.61
6.08
JLR
Best value
44,258
42,415
37,786
40,608
48,184
54,108
54,486
45,189
64,065
61,244
20,537
22,643
21,337
24,463
21,042
21,767
28,690
27,099
24,829
15,023
8,104
6,823
7,578
2,544
Table 22 Results for shortest-path closure of smat (tsmat) [13].
31
JLR
Total time
44.31
43.65
34.48
36.24
40.81
42.30
46.66
41.46
29.83
43.66
239.36
287.11
276.18
206.42
240.87
208.61
225.90
247.76
178.47
263.81
291.85
886.82
658.42
1,885.18
Name
Size
br17
ft53
ft70
ftv33
ftv35
ftv38
ftv44
ftv47
ftv55
ftv64
ftv70
ftv90
ftv100
ftv110
ftv120
ftv130
ftv140
ftv150
ftv160
ftv170
kro124p
p43
rbg323
rbg358
rbg403
rbg443
ry48p
17
53
70
34
36
39
45
48
56
65
71
91
101
111
121
131
141
151
161
171
100
43
323
358
403
443
48
Lower
bound
5
379
976
143
154
154
162
168
154
160
161
148
155
165
165
172
172
178
178
180
2,347
17
23
21
19
18
1,232
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
5
379
976
143
154
154
162
168
154
160
161
148
155
165
165
172
172
178
178
180
2,347
17
23
21
19
18
1,232
BLKH
Total time
0.00
0.00
0.01
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.01
0.00
0.00
0.01
0.01
0.02
0.01
0.20
0.26
0.20
0.01
0.00
0.09
0.09
0.21
0.26
0.84
JLR
Best value
5
379
976
143
154
154
162
168
154
160
161
148
155
165
165
172
172
178
178
180
2,347
17
23
21
19
18
1,232
Table 23 Results for asymmetric TSPLIB instances [8].
32
JLR
Total time
0.02
0.06
9.81
0.02
0.02
0.03
0.03
0.03
0.05
0.05
0.09
22.67
23.17
21.22
0.87
0.17
0.46
0.23
0.19
0.94
0.15
2.12
78.19
4.49
43.47
8.90
11.43
Name
Size
balas84
balas108
balas120
balas160
balas200
ran500.0
ran500.1
ran500.2
ran500.3
ran500.4
ran1000.0
ran1000.1
ran1000.2
ran1000.3
ran1000.4
ftv180
uk66
84
108
120
160
200
500
500
500
500
500
1,000
1,000
1,000
1,000
1,000
181
66
Lower
bound
18
13
22
13
13
24
22
23
23
28
18
17
17
19
19
35
170
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
BLKH
Best value
18
13
22
13
13
24
22
23
23
28
18
17
17
19
19
37
170
BLKH
Total time
0.00
0.01
0.01
0.01
0.02
0.17
0.17
0.17
0.17
0.17
0.67
0.67
0.67
0.67
0.67
0.25
0.00
JLR
Best value
18
13
22
13
13
24
22
23
23
28
18
17
17
19
19
37
170
JLR
Total time
0.07
0.09
0.11
0.17
0.39
1.23
3.73
2.73
2.43
1.89
4.61
7.52
9.46
8.25
7.61
25.08
0.05
Table 24 Results for 5 asymmetric scheduling instances created by Egon Balas, and 10
asymmetric random and 2 real world instances created by Fischetti [15].
33
Name
Size
Success
atex1
atex3
atex4
atex5
atex8
big702
code198
code253
dc112
dc126
dc134
dc176
dc188
dc563
dc849
dc895
dc932
td100.1
td316.10
td1000.20
16
32
48
72
600
702
198
253
112
126
134
176
188
563
849
895
932
101
317
1,001
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
Lower
bound
747
306
306
306
306
358
3,210
12,220
155
3,084
69
159
192
143
63
833
2,699
5,095
5,036
4,824
BLKH
Best value
747
306
306
306
306
358
3,210
12,220
155
3,084
69
159
192
143
63
833
2,699
5,095
5,036
4,824
BLKH
Total time
0.00
0.00
0.00
0.00
0.12
4.91
0.02
0.04
0.01
0.01
0.01
0.02
0.02
0.32
1.03
1.22
1.34
0.01
0.04
0.47
Table 25 Results for 20 asymmetric real world instances [13].
34
5. The Maximum Scatter Traveling Salesman Problem
A problem closely related to the BTSP is the Maximum Scatter Traveling Salesman Problem
(MSTSP). The MSTSP asks for a Hamiltonian cycle in which the smallest edge is as large
possible. Applications of MSTSP include medical image processing [17].
Figure 2 shows an MSTSP tour for usa1097. Its total length is 2,251,150,121 meters, and its
smallest edge has a length of 2,353,533 meters.
Figure 1 MSTSP tour for usa1097.
It is well known that the MSTSP on cost matrix cij can be formulated as a BTSP using the
transformation c’ij = M - cij, where M is max{cij }. Thus, BLKH can be used for solving the
MSTSP after a minor revision.
The performance of this revised version, called MBLKH, has been evaluated on the same
asymmetric instances as used by John LaRusic et al. [10]. The computational results are compared in Tables 26-27. As can be seen, the same best values are found, but MBLKH uses
much less CPU time.
The performance of MBLKH has also been evaluated on symmetric instances. The computational results for all symmetric TSPLIB instances with up to 18,512 vertices are shown in Tables 28-29. It is to be noted that whereas the asymmetric instances were quickly solved by
MBLKH, solution of some of the symmetric instances consume considerably long CPU time,
and the best value is found in only 1 out of 10 tests (Success = 1/10). Symmetric MSTSP instances are challenging for MBLKH and further research is needed if very large instances of
this type are to be solved in a reasonable time.
35
Name
Size
coin100.0
coin100.1
coin100.2
coin100.3
coin100.4
coin316.10
crane100.0
crane100.1
crane100.2
crane100.3
crane100.4
crane316.10
disk100.0
disk100.1
disk100.2
disk100.3
disk100.4
disk316.10
rtilt100.0
rtilt100.1
rtilt100.2
rtilt100.3
rtilt100.4
rtilt316.1
shop100.0
shop100.1
shop100.2
shop100.3
shop100.4
shop316.10
stilt100.0
stilt100.1
stilt100.2
stilt100.3
stilt100.4
stilt316.10
super100.0
super100.1
super100.2
super100.3
super100.4
super316.10
ftv180
uk66
100
100
100
100
100
316
100
100
100
100
100
316
100
100
100
100
100
316
100
100
100
100
100
316
100
100
100
100
100
316
100
100
100
100
100
316
100
100
100
100
100
316
181
66
Upper
bound
896
858
974
890
903
1684
647,354
627,751
645,372
629,932
619,054
664,713
4,767,083
4,882,684
4,959,789
4,663,663
49,971
4,947,068
529,202
546,234
494,714
500,897
517,383
509,367
1939
1786
2466
2044
2104
1966
1,011,282
1,071,396
957,076
997,468
985,154
990,472
16
16
1
16
16
17
180
609
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
MBLKH
Best value
891
858
974
890
903
1684
647,354
627,751
645,372
629,932
619,054
664,713
4,767,083
4,882,684
4,959,789
4,663,663
4,849,971
4,947,068
529,202
546,234
494,714
500,897
517,383
509,367
1939
1786
2466
2044
2104
1966
1,011,282
1,071,396
957,076
997,468
985,154
990,472
16
16
61
16
16
17
180
604
MBLKH
Total time
10.81
0.02
0.03
0.01
0.01
0.11
0.01
0.01
0.01
0.01
0.01
0.10
0.98
0.99
0.01
0.08
0.02
0.27
0.01
0.01
0.01
0.01
0.01
0.13
0.01
0.01
0.02
0.01
0.01
0.15
0.01
0.01
0.01
0.01
0.01
0.12
0.01
0.01
0.01
0.01
0.01
0.04
0.05
0.47
JLR
Best value
891
858
974
890
903
1684
647,354
627,751
645,372
629,932
619,054
664,713
4,767,083
4,882,684
4,959,789
4,663,663
4,849,971
4,947,068
529,202
546,234
494,714
500,897
517,383
509,367
1939
1786
2466
2044
2104
1966
1,011,282
1,071,396
957,076
997,468
985,154
990,472
16
16
61
16
16
17
180
604
JLR
Total time
40.99
14.51
34.58
34.12
10.90
293.33
0.30
0.11
0.22
36.57
0.23
385.49
78.04
31.31
1.24
57.06
57.94
416.43
0.24
0.13
0.16
0.13
0.12
1.06
6.12
0.10
57.33
0.37
4.07
1.06
0.11
0.14
0.11
0.12
0.12
0.85
0.09
0.09
0.09
0.09
0.10
0.49
0.34
12.52
Table 26 Results for asymmetric MSTSP instances [10] (Part I).
36
Name
Size
balas84
balas108
balas120
balas160
balas200
ran500.0
ran500.1
ran500.2
ran500.3
ran500.4
ran1000.0
ran1000.1
ran1000.2
ran1000.3
ran1000.4
br17
ft53
ft70
ftv33
ftv35
ftv38
ftv44
ftv47
ftv55
ftv64
ftv70
ftv90
ftv100
ftv110
ftv120
ftv130
ftv140
ftv150
ftv160
ftv170
kro124p
p43
rbg323
rbg358
rbg403
rbg443
ry48p
84
108
120
160
200
500
500
500
500
500
1,000
1,000
1,000
1,000
1,000
17
53
70
34
36
39
45
48
56
65
71
91
101
111
121
131
141
151
161
171
100
43
323
358
403
443
48
Upper
bound
84
108
120
160
200
500
500
500
500
500
1,000
1,000
1,000
1,000
1,000
17
53
70
34
36
39
45
48
56
65
71
91
101
111
121
131
141
151
161
171
100
43
323
358
403
443
48
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
MBLKH
Best value
29
24
29
31
32
1,000
997
997
998
996
1,000
1,005
1,004
1,004
1,006
5
379
976
143
154
154
162
168
154
160
161
148
155
165
165
172
172
178
178
180
2,347
17
23
21
19
18
1,232
MBLKH
Total time
0.01
0.01
0.01
0.02
0.03
0.12
0.11
0.11
0.11
0.12
0.45
0.44
0.44
0.44
0.44
0.00
0.00
0.01
0.00
0.00
0.00
0.00
0.00
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.02
0.02
0.02
0.02
0.03
0.01
0.00
0.11
0.15
0.21
0.27
0.01
JLR
Best value
29
24
29
31
32
1,000
997
997
998
996
1,000
1,005
1,004
1,004
1,006
5
379
976
143
154
154
162
168
154
160
161
148
155
165
165
172
172
178
178
180
2,347
17
23
21
19
18
1,232
JLR
Total time
0.06
0.09
1.04
0.18
0.23
2.06
1.28
1.43
1.92
1.08
9.79
7.55
5.82
2.60
50.92
0.02
0.06
9.81
0.02
0.02
0.03
0.03
0.03
0.05
0.05
0.09
22.67
23.17
21.22
0.87
0.17
0.46
0.23
0.19
0.94
0.15
2.12
78.19
4.49
43.47
8.90
11.43
Table 27 Results for asymmetric MSTSP instances [10] (Part II).
37
Name
Size
a280
ali535
att48
att532
bayg29
bays29
berlin52
bier127
brazil58
brd14051
brg180
burma14
ch130
ch150
d1291
d15112
d1655
d18512
d198
d2103
d493
d657
dantzig42
dsj1000
eil101
eil51
eil76
fl1400
fl1577
fl3795
fl417
fnl4461
fri26
gil262
gr120
gr137
gr17
gr202
gr21
gr229
gr24
gr431
gr48
gr666
gr96
hk48
kroA100
kroA150
kroA200
kroB100
kroB150
kroB200
kroC100
kroD100
280
535
48
532
29
29
52
127
58
14,051
180
14
130
150
1,291
15,112
1,655
18,512
198
2,103
493
657
42
1,000
101
51
76
1,400
1,577
3,795
417
4,461
26
262
120
137
17
202
21
229
24
431
48
666
96
48
100
150
200
100
150
200
100
100
Upper
bound
148
14,464
1,103
1,423
189
235
859
9,656
3,289
4,470
9,000
514
458
454
1,916
12,527
1,741
4,453
1,918
2,095
1,449
1,836
102
808,681
46
41
41
1,299
1,203
1,287
1,262
2,641
129
131
563
7,618
364
3,250
495
11,066
185
11,066
584
15,882
4,971
1,397
2,101
2,153
2,264
2,110
2,203
2,118
2,294
2,134
Success
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
1/10
10/10
10/10
10/10
10/10
2/10
2/10
10/10
4/10
10/10
6/10
10/10
2/10
10/10
6/10
10/10
10/10
10/10
10/10
1/10
1/10
10/10
1/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
MBLKH
Best value
148
5,741
1,103
897
189
231
541
4,828
1,906
3,808
9,000
498
458
454
1,785
11,783
1,741
4,269
738
2,042
824
1,781
73
716,294
45
39
41
1,261
1,051
1,175
1,262
2,537
102
129
563
5,398
239
1,463
370
6,896
164
3,942
559
8,187
4,817
1,098
2,101
2,153
2,249
1,942
2,082
2,107
2,253
2,069
MBLKH
Total time
0.03
156.87
0.34
183.57
0.00
0.02
0.57
4.83
1.22
32,101.38
0.02
0.00
0.01
0.01
182.68
20,281.49
0.73
17,146.56
22.18
50.25
108.93
26.28
0.16
349.22
0.02
0.06
0.00
14.32
546.45
1,173.81
0.06
716.99
0.02
0.14
0.01
3.13
0.02
8.45
0.02
26.99
0.03
168.64
0.11
261.60
0.87
0.12
0.01
0.01
0.06
2.15
1.41
0.08
0.17
0.40
Table 28 Results for symmetric MSTSP instances, TSPLIB [8] (Part I).
38
Name
Size
kroE100
lin105
lin318
nrw1379
p654
pa561
pcb1173
pcb3038
pcb442
pla7397
pr1002
pr107
pr124
pr136
pr144
pr152
pr226
pr2392
pr264
pr299
pr439
pr76
rat195
rat575
rat783
rat99
rd100
rd400
rl11849
rl1304
rl1323
rl1889
rl5915
rl5934
si1032
si175
si535
st70
swiss42
ts225
tsp225
u1060
u1432
u159
u1817
u2152
u2319
u574
u724
ulysses16
ulysses22
usa13509
vm1084
vm1748
100
105
318
1,379
654
561
1,173
3,038
442
7,397
1,002
107
124
136
144
152
226
2,392
264
299
439
76
195
575
783
99
100
400
11,849
1,304
1,323
1,889
5,915
5,934
1,032
175
535
70
42
500
225
1,060
1,432
159
1,817
2,152
2,319
574
724
16
22
13,509
1,084
1,748
Upper
bound
2,165
1,594
2,441
1,480
3,157
94
1,656
2,417
2,202
491,806
8,917
8,254
7,377
8,237
7,836
8,387
9,510
8,668
6,626
3,480
6,502
11,607
152
268
313
111
672
698
10,970
10,690
10,654
10,774
10,661
10,776
429
304
396
63
156
8,485
262
9,224
3,538
3,406
1,568
1,568
3,466
1,719
1,561
941
941
247,403
10,337
10,896
Success
10/10
10/10
7/10
10/10
10/10
8/10
10/10
4/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
1/10
3/10
2/10
10/10
1/10
1/10
10/10
10/10
9/10
10/10
10/10
10/10
8/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
10/10
1/10
4/10
10/10
MBLKH
Best value
2,002
1,477
2,408
1,382
3,157
84
1,636
2,412
2,202
491,806
8,296
6,826
7,377
8,237
7,224
8,265
9,360
8,668
6,569
3,480
3,909
9,214
152
268
313
111
672
698
10,130
9,849
10,289
10,709
10,110
9,725
429
304
282
63
129
8,485
233
8,345
3,500
3,406
1,557
1,563
3,421
1,568
1,561
677
687
171,745
10,337
10,896
MBLKH
Total time
1.61
0.80
3.87
206.03
0.11
14.47
16.41
90.18
0.06
33.59
61.97
0.02
0.01
0.01
0.66
0.06
0.58
1.50
4.80
0.04
88.54
0.47
0.01
0.09
0.18
0.01
0.01
0.05
28,339.12
272.61
158.66
11.01
5,793.81
7,874.85
0.24
0.01
28.56
0.00
0.08
0.02
3.57
177.94
7.20
0.01
26.42
1.94
6.94
45.14
0.14
0.03
0.04
261,458.72
7.05
0.74
Table 29 Results for symmetric MSTSP instances, TSPLIB [8] (Part II).
39
6. Conclusion
This paper has evaluated the performance of LKH on the BTSP and the MSTSP. Extensive
tests have shown that the performance is quite impressive. For all BTSP instances either the
best known solution were found or improved, and it was possible to find optimum solutions
for a series of large-scale instances with up to one million vertices.
The developed software is free of charge for academic and non-commercial use and can be
downloaded in source code via http://www.ruc.dk/~keld/research/BLKH/.
40
References
1. Vairaktarakis, G. L., On Gilmore-Gomory’s open question for the bottleneck TSP. Oper.
Res. Lett. 31:483-491 (2003)
2. Kao, M.-Y. and Sanghi, M., An approximation algorithm for a bottleneck traveling salesman problem. J. Discrete Algorithms 7:315-326 (2009)
3. Kabadi, S. and Punnen A. P., The Bottleneck TSP. In: Gutin G. and Punnen A. P., editors.
The traveling salesman problem and its variations. Kluwer Academic Publishers, Chapter
15, pp. 489-584 (2002)
4. Edmonds J. and Fulkerson F., Bottleneck extrema. J. Comb. Theory 8:435–48 (1970)
5. Helsgaun, K.: An Effective Implementation of the Lin-Kernighan Traveling Salesman
Heuristic. Eur. J. Oper. Res., 126(1):106-130 (2000)
6. Helsgaun, K.: General k-opt submoves for the Lin-Kernighan TSP heuristic. Math. Prog.
Comput., 1(2-3):119-163 (2009)
7. Lin, S, Kernighan, B.W.: An effective heuristic algorithm for the traveling salesman problem. Oper. Res., 21(2):498-516 (1973)
8. Reinelt, G.: TSPLIB - a traveling salesman problem library. ORSA J. Comput., 3(4):376384 (1991)
9. LaRusic, J., Punnen, A. P., Aubanel, E.: Experimental analysis of heuristics for the bottleneck traveling salesman problem. J. Heuristics 18:473-503 (2012)
10. LaRusic, J., Punnen, A. P.: The asymmetric bottleneck traveling salesman problem: Algorithms, complexity and empirical analysis. Comput. Oper. Res. 43:20-35 (2014)
11. Jonker R. and Volgenant T., Transforming asymmetric into symmetric traveling salesman
problems. Oper. Res. Lett. 2:161–163 (1983)
12. Applegate D. L., Bixby R. E., Chvátal V., Cook W.J., Concorde TSP solver.
http://www.math.uwaterloo.ca/tsp/concorde/ (Last updated: October 2005)
13. Johnson, D. S., McGeoch, L. A.: Benchmark Code and Instance Generation Codes.
http://dimacs.rutgers.edu/Challenges/TSP/download.html (Last updated: December 2008)
14. Cook, W.: The traveling salesman problem.
http://www.math.uwaterloo.ca/tsp/index.html (Last updated: September 2013)
15. Fischetti M, Lodi A, Toth P. Exact methods for the asymmetric traveling salesman
problem. In: Gutin G. and Punnen A. P., editors. The traveling salesman problem and its
variations. Kluwer Academic Publishers, Chapter 4, pp. 169-205 (2002)
41
16. Held, M, Karp, R.M.: The traveling salesman problem and minimum spanning trees. Oper.
Res., 18(6):1138-1162 (1970)
17. Penavic, K.: Optimal firing sequences for CAT scans. Manuscript, Dept. Appl. Math.,
SUNY, Stony Brook (1994)
42