Prove that a local-minimum spanning tree is also a minimum spanning tree.

1.4k Views Asked by At

$G$ is a weighted connected graph. Let $T(G)$ be the graph that has the spanning trees of $G$ as vertices, and two spanning trees are adjacent to each other if and only if each one of them has only one edge that the other doesn't have. To each vertex of $T(G)$ we associate the weight of the spanning tree that corresponds to it.

Let $T_1$ be any vertex of $T(G)$, that is, any spanning tree of $G$. Prove that $T_1$ is a local minimum if and only if $T_1$ is a global minimum.

To put it in another words, prove that $T_1$ has weight less than or equal to all its neighbours in $T(G)$ if and only if $T_1$ is a minimum spanning tree.

2

There are 2 best solutions below

16
On

Let $T$ be a local minimum spanning tree that is not a global minimum. Let $e_1,\ldots,e_m$ the edges of $T$ ordered by non-decreasing weight. Let $T'$ be a minimum weight spanning tree that coincides with $T$ on the largest possible begin segment, so we may assume $T'$ has edges $e_1,\ldots,e_{n-1},f_n,\ldots,f_m$ (again ordered by non-decreasing weight) and $f_n\ne e_n$. Let $w$ be the weight function in our graph.

We claim that $w(f_n)<w(e_n)$: indeed, if $w(e_n)\leq w(f_n)$ then $e_1,\ldots,e_{n-1},e_n$ would be a valid startup for Kruskal's algorithm and would lead to a minimum weight spanning tree that coincides with $T$ on a larger initial segment.

$T+f_n$ contains exactly one cycle $C$. The edges of $C$ different from $f_n$ cannot all be in $\{e_1,\ldots,e_{n-1}\}$ or we would have a cycle in $T'$. So we find at least one edge $f$ on $C$ that is different from $e_1,\ldots,e_{n-1}$ and $f_n$. But then $w(f)\geq w(e_n)>w(f_n)$, so $T+f_n-f$ is a spanning tree with a smaller total weight that is a neighbour of $T$ in the spanning tree graph. Contradiction.

(I left some small details for you to prove. Let me know if they cause trouble).

Note that this proves the slightly stronger statement, that each non-minimal tree has a neighbour of strictly smaller total weight.

1
On

I'm not sure if this proof is correct, so feel free to discuss and point out the errors. My intention was to arrive at a proof without the consideration of greedy algorithms such as Kruskal's. This is because the claim that "every local optimum is a global optimum (which is to be proved) forms the basis of such algorithms.

Suppose not that is, there exists a local minimal spanning tree $T=(e_1,e_2,...e_m)$ which differs from the (global) minimal spanning tree, say $T'=(e_1,e_2,...e_{n-1},f_n,...f_m), \sum_{j=n}^m w(f_j)\ne \sum_{j=n}^m w(e_j)$. [This last assumption is required so as to truly say that $T$ is not the global spanning tree.]

Now, we define the neighbourhood of a spanning tree, $t$ as $N(t)=\{s: s\text{ is a spanning tree obtained as: add an edge to }t\text{, delete an edge from the cycle formed}\}.$ Hence, there exist spanning trees $S_n,S_{n+1},...S_m\in N(T)$ such that $$S_n=(e_1,e_2,...e_{n-1},f_n,e_{n+1},...e_m),\quad S_{n+1}=(e_1,e_2,...e_n,f_{n+1},e_{n+2},...e_m)\quad...$$ Since, $T$ is a local optimum it has less weight than each of its neighbours. So, we can write $$w(f_n)\ge w(e_n),\quad w(f_{n+1})\ge w(e_{n+1}),\quad...$$ Summing these up we get, $$\sum_{i=1}^m w(e_i)\le\sum_{i=1}^{n-1}w(e_i)+\sum_{j=n}^m w(f_j)\Rightarrow\text{weight of }T\le\text{weight of }T'.$$ But, $T'$ is the minimal spanning tree and $\sum_{j=n}^m w(f_j)\ne \sum_{j=n}^m w(e_j)\Rightarrow$ weight of $T'<$ weight of $T$. We arrive at a contradiction. Hence, a local MST is necessarily a global MST.