Finding an Upper Bound using a Minimum Connector
Why do I need to find an upper bound?
- There is no efficient algorithm to find the optimal solution for the travelling salesman problem
- An upper and lower bound for the solution to the problem can be found
- The optimal solution (the shortest route) will lie within these bounds
- Lower bound optimal solution upper bound
- The aim is to find a minimum value for the upper bound
- This will reduce the size of the interval between the upper and lower bounds
How do I find the upper bound?
- Use a minimum spanning tree to find an upper bound for a network
- STEP 1
Find a minimum spanning tree for the network using either Prim's or Kruskal's algorithm- If you have the table of distances, use Prim's algorithm
- If you have the graph only, use Prim's or Kruskal's algorithm
- STEP 2
Double the weight of the minimum spanning tree to find an initial upper bound
- Each vertex can therefore definitely be visited and the starting vertex returned to
- Each vertex can therefore definitely be visited and the starting vertex returned to
- STEP 3
Improve the upper bound by finding shortcuts
- Use some of the edges not included in the minimum spanning tree to reduce the weight
Worked example
The network below contains six vertices representing villages and the edges (roads) that connect them. The weighting of the edges represents the time, in minutes, that it takes to walk along a particular road between two villages.
Find an initial upper bound for the travelling salesman problem.
- STEP 1
The question contains the graph but you have not been asked to find the table of least distances
Apply Kruskal's algorithm to find a minimum spanning tree of the network
List the edges in order of increasing weight
CD (5)
CE (6)
AC (7)
EF (8)
BF (9)
DE (10)
AD (11)
BC (13)
BE (13)
AB (14)
DF (20)
Repeat adding the next edge of least weight each time provided it does not create a cycle until all vertices are connected
Edges added in the order: CD (5), CE (6), AC (7), EF (8), BF (9)
- STEP 2
Find the weight of the minimum spanning tree
5 + 6 + 7 + 8 + 9 = 35
Double the weight of the minimum spanning tree to find the initial upper bound of the solution
35 x 2 = 70
Initial upper bound = 70 minutes
Show that the initial upper bound can be reduced to 54 by finding one shortcut.
- STEP 3
Identify which edges could be used to replace repeated edges in the minimum spanning tree
Single edge: AB (14)
Repeated pathway: AC + CE + EF + FB (30)
Subtract the weight of the single edge from the repeated pathway to calculate the weight saved by using the short cut
30 - 14 = 16
Subtract the weight saving from the initial upper bound
70 - 16 = 54
Improved upper bound = 54 minutes
This can also be seen as 70 - 30 + 14 = 54
Subtract the 'repeated pathway' then add the 'shortcut'