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
© Copyright 2025 Paperzz