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
- The aim is to find the minimum value for the upper bound to reduce the size of interval between the upper and lower bounds
How do I find the upper bound?
- You can find an upper bound for the practical travelling salesman problem using the minimum spanning tree of a network
- STEP 1
Find the minimum spanning tree for the network using either Prim's or Kruskal's algorithm- If you have the table of least distances - use Prim's algorithm
- If you have the graph only - use Kruskal's algorithm
- STEP 2
Double the weight of the minimum spanning tree
- 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
Reduce the weight of the upper bound by finding shortcuts
- Use some of the edges that are not included in the minimum spanning tree to reduce the weight of the upper bound
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.
- STEP 1
The question contains the graph but you have not been asked to find the table of least distances, so apply Kruskal's algorithm to find the minimum spanning tree of the network
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
35 x 2 = 70
Initial upper bound = 70 minutes
- 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)
30 - 14 = 16
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')