Prerequisite: Graph Concepts

A Minimum Spanning Tree (MST) is the cheapest set of edges that connect graph vertices together. For instance, servers on a network or destinations on a road map. Stated differently, an MST is the sub-set of edges with the minimum possible sum of edge weights. A MST must satisfy two properties.

- Does not contain a cycle
- A path exists between every pair of vertices

Based on the definition of a MST, the following facts logically apply:

- All connected graphs have at least one MST
- There are often multiple valid MSTs for a given graph
- An MST has $n-1$ edges.

The image below is a graphical representation of an input graph and its MST.

This section explore algorithms for efficiently identifying the minimum spanning tree for a given graph.

## Applications

- Find the minimal connected sub-routes of a network (e.g. electrical grid, computer network) that will make it fully connected for the minimum cost
- Defining a taxonomy
- With a slight modification, Kruskal’s algorithm can be used for single-link clustering.

## Source Code

Relevant Directories:

Click here for build and run instructions