Minimum spanning trees

Definition 1.

In a connected weighted graph, a minimum spanning tree is a spanning tree with minimum weight.

Kruskal’s algorithm for MSTs

ref

Algorithm

Input: A weighted connected graph.
Idea: Maintain an acyclic subgraph , enlarging it by edges with low weight to form a spanning tree. Consider edges in nondecreasing order of weight, breaking ties arbitrarily.
Initialization: Set .
Iteration: If the next cheapest edge joins two components of , then include it; otherwise, discard it. Terminate when is connected.

Theorem 2.

In a connected weighted graph , Kruskal’s Algorithm constructs a minimum-weight spanning tree.

Proof
It should be clear that the algorithm produces a tree. Let be the resulting tree, and let be a spanning tree of minimum weight. If , we are done. Else, let be the first edge chosen for that is not in . Adding to creates one cycle . Since has no cycle, has an edge . Since contains and all the edges of chosen before , both and are available when the algorithm choses , and hence . Now, consider the spanning tree , and note that it does not exceed in weight and agrees with for a longer list of initial edges than does. Repeating this argument eventually yields a minimum-weight spanning tree that agrees completely with .


A digression: Matroids

ref

Examples of matroids:

  • Uniform matroid: all subsets of size
  • Linear matroid

Any such that is an element of maximal cardinality is called a base of the matroid.

Graphic matroid: , where an element in is a subset of containing no cycles.

Exercise 1: Verify that this is a matroid.
Exercise 2: Find a linear representation of a matroid, ., a map from to for some .