

Given a graph with weighted edges, you need to find the shortest cycle visiting each vertex exactly once.

In this problem we shall deal with a classical NP-complete problem called Traveling Salesman Problem. Improving the runtime of the Travelling Salesman Problem with Dynamic Programming Few of the problems discussed here appeared as programming assignments in the Coursera course Advanced Algorithms and Complexity and some of the problem statements are taken from the course. In this blog we shall discuss on the Travelling Salesman Problem (TSP) - a very famous NP-hard problem and will take a few attempts to solve it (either by considering special cases such as Bitonic TSP and solving it efficiently or by using algorithms to improve runtime, e.g., using Dynamic programming, or by using approximation algorithms, e.g., for Metric TSP and heuristics, to obtain not necessarily optimal but good enough solutions, e.g., with Simulated Annealing and Genetic Algorithms) and work on the corresponding python implementations.
