Given a set of cities and distance between every pair of cities as an adjacency matrix, the problem is to find shortest route that visits all cities exactly once and returns to starting point.

1. Let city 1 be starting point and ending point. We can consider any point as a starting point since the route is cyclic. 2. Generate all possible permutations of cities which are (n-1)!.