Cycles · Traveling Salesman Problem
Lesson 3
There are many approaches to solving the traveling salesman problem. Below we provide a very brief overview.
- Heuristic methods. These are methods that work well in practice but do not have provable guarantees.
- Branch-and-bound method. This is probably the most popular exhaustive method in situations where an optimal solution needs to be found. The results are impressive: they can find a provably optimal solution on graphs with tens of thousands of vertices. Linear programming solvers are used to optimize the search.

- Local search (in particular, the simulated annealing method). Used in situations where a good enough route needs to be found quickly. The idea is simple and natural: start with any cycle and try to improve it with local modifications. This finds a local (not global) optimum. It is often used in commercial logistics programs because it works fast, gives good results, and, unlike some other methods, easily adapts to additional constraints (e.g., when there are time windows during which points need to be visited).

- Nearest neighbor algorithm. This is a simple greedy algorithm: from the current point, go to the nearest unvisited one. It works very quickly and occasionally gives acceptable results, but there are datasets where it performs quite poorly.
- Branch-and-bound method. This is probably the most popular exhaustive method in situations where an optimal solution needs to be found. The results are impressive: they can find a provably optimal solution on graphs with tens of thousands of vertices. Linear programming solvers are used to optimize the search.

For the curious 🤓
Very recently, at the end of 2022, Karlin, Klein, and Gharan designed a \(\frac{3}{2}-\varepsilon\) approximation algorithm for metric TSP, for some \(\varepsilon>10^{-36}\). That is, they improved upon the Christofides–Serdyukov algorithm after 50 years.