Ant Colony Optimization Visualization for the Travelling Salesman Problem
jtp.io
jtp.io
http://webhotel4.ruc.dk/~keld/
This is from my experience of dealing with it more than a decade ago.
[1] https://en.wikipedia.org/wiki/Travelling_salesman_problem#He...
The commercial solvers (fast and best) are very expensive though. So you're kind of right in a eay.
This can't be right? The whole definition of an NP problem is that while the solution may or may not be hard to find, it's always easy to verify the correct solution if somebody gives it to you.
As applied to "you want to prove that your solution is the optimum", that means there is a polynomial-time algorithm to do exactly that. That's what verifying the solution means.
The problem with TSP is that it's hard to determine what the solution is, not that it's hard to determine that the correct solution really is correct.
An optimal solution S has len(S) = min {len(P) | P in Perm(cities)}
[1] It's actually easier to analyze the version of the problem which asks you to find any solution of length less than some constant L.
You seem to be confused over the difference between "solution", in the sense of the answer to a well-defined mathematical problem, and "solution", in the sense of "what do I say to my boss?"
https://en.wikipedia.org/wiki/Travelling_salesman_problem#He...
I'm not confused. For the ACO, Genetic algorithms,... approaches you still need to show that the tour that was found has the lowest possible length... which you cannot without iterating all tours (or doing a branch and bound, which is the same but you prune bad partial tours early).
Obviously, people typically work with well known problems where the best tour is already known. They then typically determine the quality of their 'solution' as the relative difference to the best tour in some metric.
This is a strange thing to say, given the definition provided in the link you cite:
> The travelling salesman problem (also called the travelling salesperson problem or TSP) asks the following question: "Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city and returns to the origin city?"
Reference: https://eklitzke.org/the-traveling-salesman-problem-is-not-n...
If a solution exists, it will have length less than or equal to the product of (1) the maximum edge cost and (2) the number of nodes in the graph.[1]
You can then find the actual minimum length by doing a binary search on the threshold below which there is no solution.
And it's very easy to show that the decision problem is in NP -- given a candidate path, it is trivial to verify that its cost is less than a constant L.
So we have the results that (1) the decision problem is NP-complete; (2) the general problem can be solved in polynomial time if you can solve the decision problem in polynomial time. That's enough to show the general problem is NP-complete.
[1] Under the assumption that the graph is complete and has no edges of infinite cost. Without that assumption, multiply (1) the maximum finite edge cost; (2) the number of finite-cost edges in the graph; (3) the number of nodes in the graph.
An interesting thing to notice is how the previous (hard to find) optimal solution is lost when adding a node at the opposite side of the graph (which is far enough to be irrelevant in most cases). I would therefore just insert the new point between the two closest nodes, and keep the same path as the starting point for the optimization. Of course, the risk with that methodology is to fall into a hard-to-escape local maxima.
There is probably a way to infer how much a new point will affect every given node, so maybe a better way to proceed would be to identify those that are likely to be affected, and only re-run the optimization from scratch for those.
Of course, where you position the limit itself is an optimization problem...
(edit: or just persist pheromones, regardless of the new points?)