Why a Spanning Tree Bounds a TSP Tour
A TSP tour must visit every vertex and return to its starting point. A spanning tree must connect every vertex, but it does not need to contain a cycle. This difference gives a useful lower bound: remove one edge from any tour, and what remains is a spanning tree. Since a minimum spanning tree is no heavier than any other spanning tree, its weight cannot exceed the tour’s weight, provided edge weights are nonnegative.
Throughout, a TSP instance is a complete, undirected, finite graph \(G=(V,E)\) with \(n=|V|\ge 3\) and a nonnegative weight \(w(e)\) on each edge \(e\). Completeness ensures that a tour exists. A tour is a Hamiltonian cycle: a cycle that visits every vertex exactly once. For an edge set \(F\), write \(w(F)=\sum_{e\in F}w(e)\). A spanning tree is a connected, acyclic subgraph containing every vertex. A minimum spanning tree (MST) is a spanning tree of minimum total weight; its weight is denoted \(w(\mathrm{MST})\). There are finitely many spanning trees, so an MST exists.
Proof. Let \(C\) be any TSP tour, and choose any edge \(e\) of \(C\). Removing \(e\) from the cycle leaves a path that contains every vertex, so the remaining edges form a spanning tree \(T\). By the definition of a minimum spanning tree, \(w(\mathrm{MST})\le w(T)\). Also, \(w(C)=w(T)+w(e)\), and \(w(e)\ge0\) by assumption. Therefore \(w(\mathrm{MST})\le w(T)\le w(C)\). Since this holds for every tour, it holds for an optimal tour. \(\square\)
The nonnegative-weight assumption matters for the last inequality: if a tour edge had negative weight, removing it could increase the weight. The bound does not require the triangle inequality. It applies to any complete instance with nonnegative weights, including instances that are not metric.
Finding and Certifying the MST
For the examples, we use Kruskal’s algorithm. List the edges in nondecreasing order of weight, then scan the list and accept an edge exactly when adding it does not create a cycle with the edges already accepted. Stop when the accepted edges connect all vertices. Ties can be resolved in any order.
Proof. Let \(F\) be the accepted edges so far. They form a forest: the empty set has no cycle, and an edge is accepted only if it creates no cycle. We show that after every accepted edge, there is some MST containing all the edges accepted so far. Initially this holds because a connected finite graph has a spanning tree of minimum weight.
Suppose the algorithm accepts an edge \(e=uv\), and the current forest is \(F\). The endpoints \(u,v\) lie in different components of \(F\). Let \(S\) be the vertex set of the component containing \(u\). The edge \(e\) crosses the cut between \(S\) and \(V\setminus S\). No edge crossing this cut has weight less than \(w(e)\): any such edge would have been considered earlier. If it had been accepted, its endpoints would now be connected in \(F\), contrary to crossing between two components. If it had been rejected, its endpoints were already connected by accepted edges at the time of rejection, and those edges remain in \(F\), giving the same contradiction. Thus \(e\) is a minimum-weight edge crossing this cut.
By the induction assumption, take an MST \(T\) containing \(F\). If \(e\in T\), it already contains the enlarged accepted set. If \(e\notin T\), adding \(e\) to \(T\) creates a cycle: the unique path in \(T\) from \(u\) to \(v\), together with \(e\), is that cycle. The path must cross from \(S\) to \(V\setminus S\); choose one such edge \(f\). Since \(T\) contains \(F\), and no edge of \(F\) crosses between components of \(F\), \(f\notin F\). Also \(w(f)\ge w(e)\), because \(e\) is a minimum-weight edge crossing the cut. Removing \(f\) from the cycle gives a spanning tree \(T'\) containing \(F\) and \(e\), with \(w(T')=w(T)-w(f)+w(e)\le w(T)\). Since \(T\) is minimum, \(T'\) is also an MST. This proves the induction step.
When the algorithm stops, its accepted edges connect all vertices; otherwise, connectedness of the graph supplies an edge between two different forest components, and the algorithm would accept it. The accepted edges are therefore a connected forest, hence a spanning tree. The induction argument gives an MST containing that tree. Both are spanning trees, so the contained tree is the same tree; consequently, the algorithm’s output is an MST. \(\square\)
This proof also explains why cycle checks are essential. A spanning tree on \(n\) vertices has \(n-1\) edges; accepting an edge that closes a cycle cannot help connect new vertices and may prevent the chosen set from being a tree.
Worked Calculations
Worked Example: A Four-Vertex Instance
Let \(V=\{A,B,C,D\}\), let \(E\) contain all six pairs of distinct vertices, and assign weights \(w(AB)=1\), \(w(BC)=2\), \(w(CD)=3\), \(w(AC)=4\), \(w(AD)=5\), and \(w(BD)=6\). Apply Kruskal’s algorithm.
| Edge considered | Weight | Decision | Accepted edges afterward |
|---|---|---|---|
| AB | 1 | Accept | AB |
| BC | 2 | Accept | AB, BC |
| CD | 3 | Accept | AB, BC, CD |
| AC | 4 | Stop: all vertices connected | AB, BC, CD |
The selected edges form the path \(A-B-C-D\). Their total weight is \(1+2+3=6\), so the MST lower bound is \(6\). As an independent check of the MST value, every spanning tree has three edges. The three cheapest edges in the entire graph have weights \(1,2,3\), so any three distinct edges have total weight at least \(1+2+3=6\). The selected edges attain this bound and form a spanning tree.
The three distinct undirected tours, counted up to reversal and starting point, have weights \(AB+BC+CD+DA=1+2+3+5=11\), \(AB+BD+DC+CA=1+6+3+4=14\), and \(AC+CB+BD+DA=4+2+6+5=17\). Thus the optimal tour has weight \(11\), which is at least the MST bound \(6\). Deleting edge \(DA\), of weight \(5\), from the first tour leaves a spanning tree of weight \(11-5=6\), matching the MST.
Worked Example: A Five-Vertex Instance
Let \(V=\{A,B,C,D,E\}\), with every pair of distinct vertices an edge. Set \(w(CD)=1\), \(w(AB)=2\), \(w(DE)=2\), \(w(AC)=3\), \(w(BC)=4\), \(w(BD)=5\), \(w(CE)=6\), \(w(AE)=7\), \(w(AD)=8\), and \(w(BE)=9\). The weights specify all ten edges.
| Edge considered | Weight | Decision | Accepted edges afterward |
|---|---|---|---|
| CD | 1 | Accept | CD |
| AB | 2 | Accept | CD, AB |
| DE | 2 | Accept | CD, AB, DE |
| AC | 3 | Accept | CD, AB, DE, AC |
| BC | 4 | Stop: all vertices connected | CD, AB, DE, AC |
The selected edges connect \(A\) to \(B\), and connect \(C,D,E\) in a path; edge \(AC\) joins those parts. Their weight is \(1+2+2+3=8\), giving a lower bound of \(8\). To check the MST value independently, any spanning tree on five vertices has four edges, whose weights must sum to at least the sum of the four cheapest edge weights: \(1+2+2+3=8\). The four selected edges have exactly those weights and form a spanning tree, so \(8\) is the MST weight.
The tour \(A-B-C-D-E-A\) has weight \(2+4+1+2+7=16\). Deleting \(AE\), of weight \(7\), leaves the spanning path \(A-B-C-D-E\), whose weight is \(2+4+1+2=9\). The check agrees with the theorem: the MST weight \(8\) is at most the weight \(9\) of this particular spanning tree, and the tour weight \(16\) is at least \(8\).
Worked Example: Why the Cycle Check Matters
Let \(V=\{A,B,C,D\}\), with all six pairs as edges, and weights \(w(AB)=1\), \(w(AC)=2\), \(w(BC)=2\), \(w(BD)=3\), \(w(CD)=4\), and \(w(AD)=9\). Kruskal’s algorithm considers the edges in this order:
| Edge considered | Weight | Decision | Accepted edges afterward |
|---|---|---|---|
| AB | 1 | Accept | AB |
| AC | 2 | Accept | AB, AC |
| BC | 2 | Reject: it closes triangle ABC | AB, AC |
| BD | 3 | Accept | AB, AC, BD |
| CD | 4 | Stop: all vertices connected | AB, AC, BD |
The MST has weight \(1+2+3=6\). Here is an independent check. The edges among \(A,B,C\) all have weights \(1,2,2\), but those three edges make a cycle. A spanning tree must connect \(D\) using at least one edge incident with \(D\). If it uses exactly one such edge, that edge costs at least \(3\), and it must also connect \(A,B,C\) with two edges costing at least \(1+2=3\), for a total of at least \(6\). If it uses at least two edges incident with \(D\), their total weight is at least \(3+4=7\), and a spanning tree needs at least one more edge, of weight at least \(1\). Its total is then at least \(8\). The displayed tree attains \(6\), so it is minimum.
The tour \(A-B-D-C-A\) has weight \(1+3+4+2=10\). The other two tours have weights \(A-B-C-D-A: 1+2+4+9=16\) and \(A-C-B-D-A: 2+2+3+9=16\); hence the optimum is \(10\). Removing edge \(CD\), of weight \(4\), from the optimal tour leaves a spanning tree of weight \(10-4=6\), exactly the MST weight.
Common Pitfall and Use of the Bound
Do not select the cheapest \(n-1\) edges without checking for cycles. In the third example, the three cheapest edges are \(AB\), \(AC\), and \(BC\), with total weight \(1+2+2=5\). They form a triangle and leave \(D\) isolated, so they are not a spanning tree. Calling \(5\) the MST weight would give an invalid certificate. Kruskal’s algorithm rejects \(BC\) and instead includes \(BD\), giving the connected tree of weight \(1+2+3=6\).
The MST bound is a benchmark, not usually an exact TSP solution. Every tour is a spanning tree plus one additional edge, but the extra edge must complete a Hamiltonian cycle, so it cannot in general be chosen independently of the tree. The bound remains useful because it is simple to compute and applies without needing to know an optimal tour. In particular, a proposed tour whose weight is below \(w(\mathrm{MST})\) cannot be valid for the stated instance: either its cost, the MST computation, or the instance data must be wrong.
Check Your Understanding
Use the theorem and the cycle-checking rule to answer each question.
- Why does deleting one edge from a Hamiltonian cycle on \(n\ge3\) vertices leave a spanning tree?
- Which part of the proof of the TSP lower bound uses the assumption that all edge weights are nonnegative?
- In a connected graph, why can Kruskal’s algorithm not finish with a forest having more than one component?
- For the third worked example, explain why the three cheapest edges are not a spanning tree, and state the MST weight.
- Does the MST lower bound require the triangle inequality? Explain which assumptions the proof actually uses.