Distinct Edge Weights
Explore the concept of distinct edge weights and how they ensure the uniqueness of minimum spanning trees in connected weighted graphs. Understand the proof using greedy exchange and learn a tie-breaking method for edges with equal weights. This lesson helps you implement reliable algorithms for finding minimum spanning trees in Python.
We'll cover the following...
Suppose we are given a connected, undirected, weighted graph. This is a graph together with a function that assigns a real weight to each edge , which may be positive, negative, or zero. This chapter describes several algorithms to find the minimum spanning tree of , that is, the spanning tree T that minimizes the function
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 has weight , then every spanning tree of is a minimum spanning tree, with weight . This ambiguity complicates the development of our algorithms; everything would be much simpler if we could simply assume that minimum spanning trees are unique.
Proof of the uniqueness of minimum spanning tree
Fortunately, there is an easy condition that implies the uniqueness we want.
Lemma: If all edge weights in a connected graph are distinct, then has a unique minimum spanning tree.
Proof: Let be an arbitrary connected graph with two minimum spanning trees and ; we need to prove that some pair of edges in 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 be a minimum-weight edge in , and let ...