it depends on your problem, on what do you need, ... there are heuristics for trying to finde the best results, some are optimized for speed...
i have never seen a better heuristic than the k-opt-heuristic (implemented in LKH), not for speed, not for the results. there are some genetic algorithms, but they are much slower, but can find sometimes results who are a little better. (see the 100000 node mona-lisa tsp problem. lkh founds a tour with the length of 5757199, a genetic algorithm founds a tour with the length of 5757191, the best exact solver concorde founds the lower bound of 5757084 (so there is a gap of 107) after calculating a time of &quot;11.5 CPU years&quot;).
heuristics have always the problem, that you can&#x27;t not say if the found result is the optimum or not. so if you have to find the optimum, you have to take an exact solver (for bigger problems. for problems with &lt;10000 nodes there are heuristics who find the optimum to 99%)
to get an idea if you are close to an optimum or not, there is the lower bound call &quot;held-karp-lower-bound&quot;. you have to calculate a mst, a one-tree and some extra stuff to get it. than you can calculate the difference between both values.