0

There are huge amount of papers related to TSP heuristic algorithm and each of them might focus on different kinds of TSP problem. Could anyone recommend several well performed TSP heuristic algorithms under the property described as follow: The "city size" of the TSP problem is equal to 30.

tookoo
  • 11

3 Answers3

0

Tabu Search, Simulated Annealing and Late Acceptance all work well for me, for example.

Geoffrey De Smet
  • 26,223
  • 11
  • 73
  • 120
0

A space filling curve can solve it very fast. Then you can use k-opt or something to improve the edges. There is also the Ant Colony Optimization for example Gebweb tsp solver. It has also brute force and dynamic solution.

Micromega
  • 12,486
  • 7
  • 35
  • 72
-1

If the travelling salesman is metric (respects triangle inequality) than you might consider to use approximation algorithms that are polynomial and will always return a solution, which is at most X time worse than the optimal one. For example Christofides algorithm guarantees that the path will be at most 1.5 longer than the optimal one.

malejpavouk
  • 4,297
  • 6
  • 41
  • 67
  • Christofides algorithm is very difficult to write. – Micromega Jun 22 '13 at 02:43
  • Yep, but on the page is also a 2-proximation algorithm, which uses minimal spanning tree. And this algorithm is pretty easy to implement. I have mentioned just christofides, because it is afaik state-of-the-art for this purpose and the question is general (not: give me some easy-to-implement algorithm)... – malejpavouk Jun 22 '13 at 06:59
  • Apologize if I was rude but there is very few practical use for christofides. – Micromega Jun 22 '13 at 09:04
  • No offense was taken :-). I just wanted to state that there is another way of TSP solving, which was not mentioned in the other answers, and for which Christofides is the best algorithm I know. Actually, I myself would rather implement the 2-approx algorithm (its easy and gives comparable solutions to the christofides). – malejpavouk Jun 23 '13 at 17:58
  • Yes. 2-approx algo is quite simple. Did you have one? I can check against my code? – Micromega Jun 23 '13 at 21:28