World's most popular travel blog for travel bloggers.

Minimum spanning tree and its connected subgraph

, , No Comments
Problem Detail: 

This problem is from the book [1]. In case of being closed as a duplication of that in [2], I first make a defense:

  • The accepted answer at [2] is still in dispute.
  • The proof given by @eh9 is based on Kruskal's algorithm.
  • I am seeking for a proof independent of any MST algorithms.

Problem: Let $T$ be an MST of graph $G$. Given a connected subgraph $H$ of $G$, show that $T \cap H$ is contained in some MST of $H$.


My partial trial is by contradiction:

Suppose that $T \cap H$ is not contained in any MST of $H$. That is to say, for any MST of $H$ (denoted $MST_{H}$), there exists an edge $e$ such that $e \in T \cap H$, and however, $e \notin MST_{H}$.
Now we can add $e$ to $MST_{H}$ to get $MST_{H} + {e}$ which contains a cycle (denoted $C$).

  • Because $MST_{H}$ is a minimum spanning tree of $H$ and $e$ is not in $MST_{H}$, we have that every other edge $e'$ than $e$ in the cycle $C$ has weight no greater than that of $e$ (i.e., $\forall e' \in C, e' \neq e. w(e') \le w(e)$).
  • There exists at lease one edge (denoted $e''$) in $C$ other than $e$ which is not in $T$. Otherwise, $T$ contains the cycle $C$.

Now we have $w(e'') \le w(e)$ and $e \in T \land e'' \notin T$, $\ldots$

I failed to continue...


  1. Algorithms, Chapter 5: Greedy algorithms
  2. "Minimum Spanning tree subgraph"@StackOverflow
Asked By : hengxin

Answered By : Mahmoud A.

If we construct a spanning tree for $H$ containing $T_G \cap H$ then your approach leads to a trivial contradiction (meaning that your initial assumption is automatically contradicted by any direct proof). Here is the construction of a MST for $H$ from a MST for $G$:

Let $MST_\Psi$ be the set of minimum spanning trees for the graph $\Psi$. The spanning tree $T_\Psi$ is not minimum for $\Psi$ if there is another spanning tree for $\Psi$ with smaller weight. Start with $T_H \in MST_H, T_G \in MST_G$.

While there is an edge $e \in T_G \cap H$ such that $e \not\in T_H$ do:

1- Find $e$ and add it to $T_H$ to create a cycle. For every other edge $e' \not\in T_G$ in the cycle we have $w(e') = w(e)$ (because if $w(e)>w(e')$ then replacing $e$ with $e'$ in $T_G$ gives a better ST for $G$, thereby $T_G$ is not minimum for $G$. If $w(e)<w(e')$ then since $e \not\in T_H$ we can replace $e'$ with $e$ in $T_H$ to obtain a better spanning tree for $H$ contradicting $T_H$ being MST for $H$). Let $e'' \not\in T_G$ be one of these edges. We can safely replace $e''$ with $e$ in order to obtain $T'_H = T_H \setminus \{e''\} \cup \{e\} \in MST_H$.

2- Rename $T'_H$ to $T_H$.

EndWhile

After the loop we have $T_G \cap H \subseteq T_H$.

Best Answer from StackOverflow

Question Source : http://cs.stackexchange.com/questions/18867

0 comments:

Post a Comment

Let us know your responses and feedback