Christofides algorithm
The Christofides algorithm is an algorithm for finding approximate solutions to the travelling salesman problem, on instances where the distances form a metric space (they are symmetric and obey the triangle inequality).[1] It is an approximation algorithm that guarantees that its solutions will be within a factor of 3/2 of the optimal solution length, and is named after Nicos Christofides, who published it in 1976.[2] As of 2017, this is the best approximation ratio that has been proven for the traveling salesman problem on general metric spaces, although better approximations are known for some special cases.
Algorithm
Let G = (V,w) be an instance of the travelling salesman problem. That is, G is a complete graph on the set V of vertices, and the function w assigns a nonnegative real weight to every edge of G. According to the triangle inequality, for every three vertices u, v, and x, it should be the case that w(uv) + w(vx) ≥ w(ux).
Then the algorithm can be described in pseudocode as follows.[1]
- Create a minimum spanning tree T of G.
- Let O be the set of vertices with odd degree in T. By the handshaking lemma, O has an even number of vertices.
- Find a minimum-weight perfect matching M in the induced subgraph given by the vertices from O.
- Combine the edges of M and T to form a connected multigraph H in which each vertex has even degree.
- Form an Eulerian circuit in H.
- Make the circuit found in previous step into a Hamiltonian circuit by skipping repeated vertices (shortcutting).
Approximation ratio
The cost of the solution produced by the algorithm is within 3/2 of the optimum. To prove this, let C be the optimal traveling salesman tour. Removing an edge from C produces a spanning tree, which must have weight at least that of the minimum spanning tree, implying that w(T) ≤ w(C). Next, number the vertices of O in cyclic order around C, and partition C into two sets of paths: the ones in which the first path vertex in cyclic order has an odd number and the ones in which the first path vertex has an even number. Each set of paths corresponds to a perfect matching of O that matches the two endpoints of each path, and the weight of this matching is at most equal to the weight of the paths. Since these two sets of paths partition the edges of C, one of the two sets has at most half of the weight of C, and its corresponding matching has weight that is also at most half the weight of C. The minimum-weight perfect matching can have no larger weight, so w(M) ≤ w(C)/2. Adding the weights of T and M gives the weight of the Euler tour, at most 3w(C)/2. Shortcutting does not increase the weight, so the weight of the output is also at most 3w(C)/2.[1]
Lower bounds
There exist inputs to the travelling salesman problem that cause the Christofides algorithm to find a solution whose approximation ratio is arbitrarily close to 3/2. One such class of inputs are formed by a path of n vertices, with the path edges having weight 1, together with a set of edges connecting vertices two steps apart in the path with weight 1 + ε for a number ε chosen close to zero but positive. All remaining edges of the complete graph have distances given by the shortest paths in this subgraph. Then the minimum spanning tree will be given by the path, of length n − 1, and the only two odd vertices will be the path endpoints, whose perfect matching consists of a single edge with weight approximately n/2. The union of the tree and the matching is a cycle, with no possible shortcuts, and with weight approximately 3n/2. However, the optimal solution uses the edges of weight 1 + ε together with two weight-1 edges incident to the endpoints of the path, and has total weight n + (n − 2)ε, close to n for small values of ε.[3]
Example
Given: complete graph whose edge weights obey the triangle inequality | |
Calculate minimum spanning tree T | |
Calculate the set of vertices O with odd degree in T | |
Form the subgraph of G using only the vertices of O | |
Construct a minimum-weight perfect matching M in this subgraph | |
Unite matching and spanning tree T ∪ M to form an Eulerian multigraph | |
Calculate Euler tour | |
Remove repeated vertices, giving the algorithm's output |
References
- 1 2 3 Goodrich, Michael T.; Tamassia, Roberto (2015), "18.1.2 The Christofides Approximation Algorithm", Algorithm Design and Applications, Wiley, pp. 513–514.
- ↑ Nicos Christofides, Worst-case analysis of a new heuristic for the travelling salesman problem, Report 388, Graduate School of Industrial Administration, CMU, 1976.
- ↑ Bläser, Markus (2008), "Metric TSP", in Kao, Ming-Yang, Encyclopedia of Algorithms}, Springer-Verlag, pp. 517–519, ISBN 9780387307701.