Extensive testing on benchmark instances from the literature has shown that LKH-3 is effective. Best known solutions are often obtained, and in some cases, new best solutions are found. Instances and best solutions obtained by LKH-3 may be downloaded by clicking on the problem types above. Unpack a downloaded file, file_name.tgz, by executing

tar xvfz file_name.tgz

Run scripts are provided for Unix/Linux.

Installation

LKH-3 has been implemented in the programming language C. The software is entirely written in ANSI C and portable across a number of computer platforms and C compilers.

The code can be downloaded here: LKH-3.0.6.tgz (gzipped tar file, approximately 2 MB).

On a Unix/Linux machine execute the following commands:

tar xvfz LKH-3.0.5.tgz
cd LKH-3.0.5
make

An executable file called LKH will now be available in the directory LKH-3.0.6.

A stand-alone executable for Windows machines may be downloaded here. A Visual Studio 2019 project is available here.

The code is distributed for academic and non-commercial use. The author reserves all rights to the code.

Added code for solving the open close multiple traveling saleman problem (OCMTSP).
New keyword:

EXTERNAL_SALESMEN

CHANGES IN LKH-3.0.4:

Added code for solving the colored traveling saleman problem (CTSP). The node coloring is described in a

CTSP_SET_SECTION

New initial tour algorithm: CTSP

Added code for solving the minimum latency problem (MLP).

CHANGES IN LKH-3.0.3:

Candidate sets may now be created by means of POPMUSIC by giving the following specification in the parameter file for LKH:

CANDIDATE_SET_TYPE = POPMUSIC

The value of the parameter MAX_CANDIDATES is used to trim the candidate set. There are, however, some other POPMUSIC related parameters. If not specified, they will take their default values. These parameters are:

POPMUSIC_SAMPLE_SIZE = <int>
Sample size.
Default: 10

POPMUSIC_SOLUTIONS = <int>
Number of solutions to generate.
Default: 50

POPMUSIC_MAX_NEIGHBORS = <int>
Maximum number of nearest neighbors used as candidates in iterated 3-opt for
POPMUSIC.
Default: 5

POPMUSIC_TRIALS = <int>
Number of trials used in iterated 3-opt for POPMUSIC. If the value is zero, the number of trials is the size of the subpath to be optimized.
Default: 1

POPMUSIC_INITIAL_TOUR = { YES | NO }
Specifies whether the first generated POPMUSIC tour is used as initial tour for Lin-Kernighan.
Default: NO