Warning: foreach() argument must be of type array|object, bool given in /var/www/html/web/app/themes/studypress-core-theme/template-parts/header/mobile-offcanvas.php on line 20

Prove that Kruskal’s algorithm produces minimum spanning trees.

Short Answer

Expert verified

Kruskal's algorithm produces minimum spanning trees.

Step by step solution

Achieve better grades quicker with Premium

  • Unlimited AI interaction
  • Study offline
  • Say goodbye to ads
  • Export flashcards

Over 22 million students worldwide already upgrade their learning with Vaia!

01

Definition

Kruskal's algorithm:

Start from a graph \({\bf{T}}\) that contains only the vertices and no edges. Repeatedly select the edge in the given graph \({\bf{G}}\) with the smallest weight (that doesn't cause a circuit) and add it to the graph \({\bf{T}}\). Once the graph is connected, we have found a minimum spanning tree.

Given: \({\bf{G}}\) is a connected undirected weighted graph.

02

Proof by contradiction

To proof: Kruskal's algorithm produces a minimum spanning tree of \({\bf{G}}\)

Let \({\bf{S}}\) be the tree produced by Kruskal's algorithm and let \({{\bf{e}}_{\bf{1}}}{\bf{,}}{{\bf{e}}_{\bf{2}}}{\bf{, \ldots ,}}{{\bf{e}}_{{\bf{n - 1}}}}\) be its edges in the order chosen (edges at the same stage are ordered arbitrarily).Let \({\bf{T}}\) be the minimum spanning tree that contains all the edges \({{\bf{e}}_{\bf{1}}}{\bf{,}}{{\bf{e}}_{\bf{2}}}{\bf{, \ldots ,}}{{\bf{e}}_{\bf{k}}}\) (for the largest possible value of \(k\)).

\(0 \le k \le n{\bf{ - }}1\)

Let us assume that \({\bf{k < n - 1}}\). Let \(T'{\bf{ = }}T \cup \{ {{\bf{e}}_{{\bf{k + 1}}}}\} \). Since \({\bf{T}}\) is a tree, \(T'\) needs to contain a simple circuit \({\bf{C}}\) that contains

the edge \({{\bf{e}}_{{\bf{k + 1}}}}\). Then there exists another edge \(e\) in \({\bf{C}}\) that is not contained in \({\bf{S}}\) (as \({\bf{S}}\) is a tree). Moreover, this edge \(e\) was available at the stage where \({{\bf{e}}_{{\bf{k + 1}}}}\) was chosen and thus the weight of \({{\bf{e}}_{{\bf{k + 1}}}}\) has to be smaller than the weight of \(e'\)) (or come first in lexicographic order when equal weight).

\({\bf{w}}({{\bf{e}}_{{\bf{k + 1}}}}) \le w(e)\)

03

Minimum spanning tree

Let \(T''{\bf{ = }}T \cup \{ {{\bf{e}}_{{\bf{k + 1}}}}\} {\bf{ - }}\{ e\} \), then the weight of \(T''\) is less than or equal to the weight of \(T\). Since \({\bf{w}}({{\bf{e}}_{{\bf{k + 1}}}}) \le w({e^r})\)

\(w(T'') \le w(T)\)

Thus \(T''\) containing the edges \({{\bf{e}}_{\bf{1}}}{\bf{,}}{{\bf{e}}_{\bf{2}}}{\bf{, \ldots ,}}{{\bf{e}}_{\bf{k}}}{\bf{,}}{{\bf{e}}_{{\bf{k + 1}}}}\) is then also a minimum spanning tree. We then derived a contradiction as we assumed that \({\bf{k}}\) was the largest possible value for which \({{\bf{e}}_{\bf{1}}}{\bf{,}}{{\bf{e}}_{\bf{2}}}{\bf{, \ldots ,}}{{\bf{e}}_{\bf{k}}}\) is a minimum spanning tree (and we now obtained that \({{\bf{e}}_{\bf{1}}}{\bf{,}}{{\bf{e}}_{\bf{2}}}{\bf{, \ldots ,}}{{\bf{e}}_{\bf{k}}}{\bf{,}}{{\bf{e}}_{{\bf{k + 1}}}}\) also forms a minimum spanning tree).

This then means that \({\bf{k = n - 1}}\), which implies \({\bf{S = T}}\) and thus then \({\bf{S}}\) is a minimum spanning tree.

One App. One Place for Learning.

All the tools & learning materials you need for study success - in one app.

Get started for free

Most popular questions from this chapter

See all solutions

Recommended explanations on Math Textbooks

View all explanations

What do you think about this solution?

We value your feedback to improve our textbook solutions.

Study anywhere. Anytime. Across all devices.

Sign-up for free