Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Calculating the Held Karp Lower bound For The Traveling Salesman(TSP)

I am currently researching the traveling salesman problem, and was wondering if anyone would be able to simply explain the held karp lower bound. I have been looking at a lot of papers and i am struggling to understand it. If someone could simply explain it that would be great.

I also know there is the method of calculating a minimum spanning tree of the vertices not including the starting vertex and then adding the two minimum edges from the starting vertex.

like image 340
jack8627 Avatar asked Apr 10 '14 10:04

jack8627


People also ask

How do you calculate TSP lower bound?

A lower bound can be found by removing a vertex, then finding a minimum spanning tree: Use Prim's or Kruskal's algorithm to find the length of the minimum spanning tree. Add to this the lengths of the two shortest edges connected to the missing vertex.

What is the held Karp lower bound?

The Held Karp lower bound algorithm provides a lower bound for the cost of the optimal TSP tour of a graph. Having the lower bound for a particular graph is useful for checking the performance of a given heuristic.

How does Held Karp work?

Held-Karp is a dynamic programming approach. In dynamic programming, you break the task into subtasks and use "dynamic function" to solve larger subtasks using already computed results of smaller subtasks, until you finally solve your task.

Is TSP dynamic programming?

The traveling salesman problem(TSP) is an algorithmic problem tasked with finding the shortest route between a set of points and locations that must be visited. Dynamic programming(DP) is the most powerful technique to solve a particular class of problems.


1 Answers

I'll try to explain this without going in too much details. I'll avoid formal proofs and I'll try to avoid technical jargon. However, you might want to go over everything again once you have read everything through. And most importantly; try the algorithms out yourself.

Introduction

A 1-tree is a tree that consists of a vertex attached with 2 edges to a spanning tree. You can check for yourself that every TSP tour is a 1-Tree.

There is also such a thing as a minimum-1-Tree of a graph. That is the resulting tree when you follow this algorithm:

  • Exclude a vertex from your graph
  • Calculate the minimum spanning tree of the resulting graph
  • Attach the excluded vertex with it's 2 smallest edges to the minimum spanning tree

*For now I'll assume that you know that a minimum-1-tree is a lower bound for the optimal TSP tour. There is an informal proof at the end.

You will find that the resulting tree is different when you exclude different vertices. However all of the resulting trees can be considered lower bounds for the optimal tour in the TSP. Therefore the largest of the minimum-1-trees you have found this way is a better lower bound then the others found this way.

Held-Karp lower bound

The Held-Karp lower bound is an even tighter lower bound.

The idea is that you can alter the original graph in a special way. This modified graph will generate different minimum-1-trees then the original.

Furthermore (and this is important so I'll repeat it throughout this paragraph with different words), the modification is such that the length of all the valid TSP tours are modified by the same (known) constant. In other words, the length of a valid TSP solution in this new graph = the length of a valid solution in the original graph plus a known constant. For example: say the weight of the TSP tour visiting vertices A, B, C and D in that order in the original graph = 10. Then the weight of the TSP tour visiting the same vertices in the same order in the modified graph = 10 + a known constant.

This, of course, is true for the optimal TSP tour as well. Therefore the optimal TSP tour in the modified graph is also an optimal tour in the original graph. And a minimum-1-Tree of the modified graph is a lower bound for the optimal tour in the modified graph. Again, I'll just assume you understand that this generates a lower bound for your modified graph's optimal TSP tour. By substracting another known constant from the found lower bound of your modified graph, you have a new lower bound for your original graph.

There are infinitly many of such modifications to your graph. These different modifications result in different lower bounds. The tightest of these lower bounds is the Held-Karp lower bound.

How to modify your graph

Now that I have explained what the Held-Karp lower bound is, I will show you how to modify your graph to generate different minimum-1-trees.

Use the following algorithm:

  • Give every vertex in your graph an arbitrary weight
  • update the weight of every edge as follows: new edge weight = edge weight + starting vertex weight + ending vertex weight

For example, your original graph has the vertices A, B and C with edge AB = 3, edge AC = 5 and edge BC = 4. And for the algorithm you assign the (arbitrary) weights to the vertices A: 30, B: 40, C:50 then the resulting weights of the edges in your modified graph are AB = 3 + 30 + 40 = 73, AC = 5 + 30 + 50 = 85 and BC = 4 + 40 + 50 = 94.

The known constant for the modification is twice the sum of the weights given to the vertices. In this example the known constant is 2 * (30 + 40 + 50) = 240. Note: the tours in the modified graph are thus equal to the original tours + 240. In this example there is only one tour namely ABC. The tour in the original graph has a length of 3 + 4 + 5 = 12. The tour in the modified graph has a length of 73 + 85 + 94 = 252, which is indeed 240 + 12.

The reason why the constant equals twice the sum of the weights given to the vertices is because every vertex in a TSP tour has degree 2.

You will need another known constant. The constant you substract from your minimum-1-tree to get a lower bound. This depends on the degree of the vertices of your found minimum-1-tree. You will need to multiply the weight you have given each vertex by the degree of the vertex in that minimum-1-tree. And add that all up. For example if you have given the following weights A: 30, B:40, C:50, D:60 and in your minimum spanning tree vertex A has degree 1, vertex B and C have degree 2, vertex D has degree 3 then your constant to substract to get a lower bound = 1 * 30 + 2 * 40 + 2 * 50 + 3 * 60 = 390.

How to find the Held-Karp lower bound

Now I believe there is one more question unanswered: how do I find the best modification to my graph, so that I get the tightest lower bound (and thus the Held-Karp lower bound)?

Well, that's the hard part. Without delving too deep: there are ways to get closer and closer to the Held-Karp lower bound. Basicly one can keep modifying the graph such that the degree of all vertices get closer and closer to 2. And thus closer and closer to a real tour.

Minimum-1-tree is a lower bound

As promised I would give an informal proof that a minimum-1-tree is a lower bound for the optimal TSP solution. A minimum-1-Tree is made of two parts: a minimum-spanning-tree and a vertex attached to it with 2 edges. A TSP tour must go through the vertex attached to the minimum spanning tree. The shortest way to do so is through the attached edges. The tour must also visit all the vertices in the minimum spanning tree. That minimum spanning tree is a lower bound for the optimal TSP for the graph excluding the attached vertex. Combining these two facts one can conclude that the minimum-1-tree is a lower bound for the optimal TSP tour.

Conclusion

When you modify a graph in a certain way and find the minimum-1-Tree of this modified graph to calculate a lower bound. The best possible lower bound through these means is the Held-Karp lower bound.

I hope this answers your question.

Links

For a more formal approach and additional information I recommend the following links:

  • ieor.berkeley.edu/~kaminsky/ieor251/notes/3-16-05.pdf
  • http://www.sciencedirect.com/science/article/pii/S0377221796002147
like image 127
Erik-Jan Avatar answered Sep 21 '22 07:09

Erik-Jan