 # Lecture 18 - Minimum spanning trees (MSTs)

Date Pre-lecture slides Post-lecture scribbles Lecture recording
October 26 2023   ## Notes

### Minimum Spanning Trees

#### Definition

• Input : Connected graph G = (V, E) with edge costs
• Goal : Find T $\subseteq$ E such that (V, T) is connected and total cost of all edges in T is smallest. T is then the minimum spanning tree (MST) of G.

Example:   #### Applications

• Network Design
• Designing networks with minimum cost but maximum connectivity
• Approximation algorithms
• Can be used to bound the optimality of algorithms to approximate Traveling Salesman Problem, Steiner Trees,etc.
• Cluster Analysis

#### Basic Properties

• Tree = undirected graph in which any two vertices are connected by exactly one path.
• Tree = a connected graph with no cycles.
• Subgraph H of G is spanning for G, if G and H have same connected components.
• A graph G is connected $\Longleftrightarrow$ it has a spanning tree.
• Every tree has a leaf (i.e., vertex of degree one).
• Every spanning tree of a graph on n nodes has n − 1 edges.

#### Cuts

Given a graph G = (V, E), a cut is a partition of the vertices of the graph into two sets (S, V \ S).

• Edges having an endpoint on both sides are the edges of the cut.
• A cut edge is crossing the cut.
•  (S, V \ S) = {uv $\in$ E u $\in$ S, v $\in$ V \ S}.

#### Safe and Unsafe edges

##### Safe edge
• Definition: An edge e = (u, v) is a safe edge if there is some partition of V into S and V \ S and e is the unique minimum cost edge crossing S (one end in S and the other in V \ S).
• So, every cut identifies one safe edge, the cheapest edge in the cut.
• Note that an edge e may be a safe edge for many cuts.
• For example: In the below graph, the edge marked in red is a safe edge in the cut (S, V\S) ##### Unsafe edge
• Definition: An edge e = (u, v) is an unsafe edge if there is some cycle C such that e is the unique maximum cost edge in C.
• So, every cycle identifies one unsafe edge, the most expensive edge in the cycle.
• Example : • If edge costs are distinct then every edge is either safe or unsafe

#### Spanning tree properties

• If e is a safe edge then every minimum spanning tree contains e.
• Suppose e = (v,w) is not in MST T and e is min weight edge in cut (S, V \ S). Assume v ∈ S. Then, T’ = (T \ {e’}) $\cup$ {e} is a spanning tree.
• The safe edges form the MST
• Let G be a connected graph with distinct edge costs, then the set of safe edges does not contain a cycle.
• Let G be a connected graph with distinct edge costs, then set of safe edges form the unique MST of G.
• The unsafe edges are not in the MST
• If e is an unsafe edge then no MST of G contains e.

#### Algorithms

• Borůvka’s Algorithm
T is ∅ (* T will store edges of a MST *)
while T is not spanning do
X ← ∅
for each connected component S of T do
add to X the cheapest edge between S and V \ S
Add edges in X to T
return the set T


Running time: O(m log n) time

• Kruskals Algorithm
Kruskal_ComputeMST
Initially E is the set of all edges in G
T is empty (* T will store edges of a MST *)
while E is not empty do
choose e ∈ E of minimum cost
if (T ∪ {e} does not have cycles)
return the set T


Running time: O(m log m) + O(mn) = O(mn)

• Prim’s Algorithm
Prim_ComputeMST
E is the set of all edges in G
S = {1}
T is empty (* T will store edges of a MST *)
while S 6= V do
pick e = (v,w) ∈ E such that
v ∈ S and w ∈ V \ S
e has minimum cost
T = T ∪ e
S = S ∪ w
return the set T


Running time: O(nm)

• Prim’s Algorithm using Priority Queues
Prim_ComputeMSTv3
T ← ∅, S ← ∅, s ← 1
∀v ∈ V (G) : d(v) ← ∞, p(v) ← Nil
d(s) ← 0
while S 6= V do
v = arg min u∈ V\S d(u)
T = T ∪ {vp(v)}
S = S ∪ {v}
for each u in Adj(v) do
d(u) ← min {d(u), c(vu)}
if d(u) = c(vu) then
p(u) ← v
return T


• Textbooks
• Erickson, Jeff. Algorithms
• Skiena, Steven. The Algorithms Design Manual
• Chapter 8.1 - Minimum Spanning Trees
• Sedgewick, Robert and Wayne, Kevin. Algorithms (Forth Edition)
• Chapter 4.3 - Minimum Spanning Trees
• Cormen, Thomas, et al. Algorithms (Forth Edition)
• Chapter 21 - Minimum Spanning Trees
• Jeff’s Textbook - Minimum Spanning Trees
• Sariel’s Lecture 20