Distinct Edge Weights

Learn about the minimum spanning trees problem with distinct edge weights and its solution using various algorithms.

Suppose we are given a connected, undirected, and weighted graph. This is a graph G=(V,E)G = (V, E) together with a function w:ERw: E \rightarrow \mathbb{R} that assigns a real weight w(e)w(e) to each edge ee, which may be positive, negative, or zero. This chapter describes several algorithms to find the minimum spanning tree of GG, that is, the spanning tree TT that minimizes the function

w(T):=e ε Tw(e).w(T):=\underset{e \space\varepsilon\space T}{\sum}w(e).

Distinct edge weights

An annoying subtlety in the problem statement is that weighted graphs can have more than one spanning tree with the same minimum weight; in particular, if every edge in GG has weight 1, then every spanning tree of GG is a minimum spanning tree, with weight V1V − 1. This ambiguity complicates the development of our algorithms; everything would be much simpler if we could simply assume that minimum spanning trees are unique.

Press + to interact
 A weighted graph and its minimum spanning tree
A weighted graph and its minimum spanning tree

Proof of the uniqueness of minimum spanning trees

Fortunately, there is an easy condition that implies the uniqueness we want.

Lemma: If all edge weights in a connected graph GG are distinct, then GG has a unique minimum spanning tree.

Proof: Let GG be an arbitrary connected graph with two minimum spanning trees TT and TT^′; we need to prove that some pair of edges in GG have the same weight. The proof is essentially a greedy exchange argument. Each of our spanning trees must contain an edge that the other tree omits. Let ee be a minimum-weight edge in T\TT \backslash T^′ ...