Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning...
Transcript of Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning...
![Page 1: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/1.jpg)
Optimal trees and forests
Filip Malmberg
![Page 2: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/2.jpg)
Todays lecture
Trees and forests
Optimal forests
Minimum spanning forestsShortest path forests
Applications in image segmentation
![Page 3: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/3.jpg)
Part 1: Forests and trees
![Page 4: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/4.jpg)
Forests and trees
In this lecture, we will consider two special types of graphs: forests andtrees.
A forest is a graph without simple cycles.
A tree is a connected forest
(In other words, a forest is a collection of trees)
![Page 5: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/5.jpg)
Recall: Cycles, connected graphs
A cycle is a path where the start vertex is the same as the end vertex.
A cycle is simple if it has no repeated vertices other than theendpoints.
Two vertices v ,w ∈ V are linked if G contains a path from v to w .
A graph is connected if every pair of vertices on the graph is linked.
![Page 6: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/6.jpg)
Tree, example
Figure 1: Left: A tree. Right: Not a tree.
![Page 7: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/7.jpg)
Properties of trees and forests
There is a unique path between each (linked) pair of vertices. Why?
Any subset of the edges of a forest is a cut. Why?
![Page 8: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/8.jpg)
Recall: Cuts
Let S ⊆ E , and G ′ = (V ,E \ S). If, for all ev ,w ∈ S , it holds thatv 6∼ w
G ′, then S is a (graph) cut on G .
![Page 9: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/9.jpg)
Spanning trees
Definition, spanning tree
Let G be a connected, undirected graph. Let T be a subgraph of G suchthat
T is a tree.
V (T ) = V (G ).
Then T is a spanning tree of G .
For any G , there exists at least one spanning tree. Why?
![Page 10: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/10.jpg)
Edge weighted graphs
We associate each edge e ∈ E with a real valued, non-negativeweight, w(e).
The weight of an edge represents the dissimilarity (or, alternatively,similarity) between the vertices connected by the edge.
For example, we may define the edge weights as
w(eij) = |I (v)− I (j)| , (1)
where I (v) is the intensity of the image element corresponding to v .
![Page 11: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/11.jpg)
Part 2: Minimum spanning trees
![Page 12: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/12.jpg)
Minimum spanning trees
A graph can have many different spanning trees. A minimumspanning tree (MST) is a spanning tree T = (V ,E ′) that (globally)minimizes
f (T ) =∑e∈E ′
w(e) . (2)
Although this is a global optimization problem, efficient algorithms forcomputing minimum spanning trees exist. We will now take a look attwo such algorithms: Prim’s algorithm [5] and Kruskal’s algorithm [4].
![Page 13: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/13.jpg)
Kruskal’s algorithm
Kruskal’s algorithm
Set Enew = ∅.while there exists an edge ep,q such that p 6∼ g
(V ,Enew )
do
Choose such an edge with minimal weight and add it to Enew .end
At the termination of the algorithm, (V ,Enew ) is a MST on G .
![Page 14: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/14.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 2: An edge weighted graph.
![Page 15: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/15.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 3: Choose an edge with minimal weight that does not form a cycle.
![Page 16: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/16.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 4: Add this edge to the tree.
![Page 17: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/17.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 5: Choose an edge with minimal weight that does not form a cycle.
![Page 18: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/18.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 6: Add this edge to the tree.
![Page 19: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/19.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 7: Choose an edge with minimal weight that does not form a cycle.
![Page 20: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/20.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 8: Add this edge to the tree.
![Page 21: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/21.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 9: Choose an edge with minimal weight that does not form a cycle.
![Page 22: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/22.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 10: Add this edge to the tree.
![Page 23: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/23.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 11: Choose an edge with minimal weight that does not form a cycle.
![Page 24: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/24.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 12: Add this edge to the tree.
![Page 25: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/25.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 13: Choose an edge with minimal weight that does not form a cycle.
![Page 26: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/26.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 14: Add this edge to the tree.
![Page 27: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/27.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 15: Choose an edge with minimal weight that does not form a cycle.
![Page 28: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/28.jpg)
Kruskal’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 16: Add this edge to the tree.
![Page 29: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/29.jpg)
Kruskal’s algorithm, example
5 7
12
4
4
6
7
Figure 17: The tree is spanning. The algorithm terminates.
![Page 30: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/30.jpg)
Implementing Kruskal’s algorithm
Kruskal’s algorithm can be shown to run in O(E log V ) time.
By pre-sorting the edges by weight, the step “Choose such an edgewith minimal weight” can be performed in constant time.
To keep track of which vertices are in which components, adisjoint-set data structure can be used. This data structure allowsefficient implementation of the following operations:
Find: Determine which subset a particular element is in. (Ordetermining if two elements are in the same subset).Union: Merge two subsets into a single subset.
![Page 31: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/31.jpg)
Prim’s algorithm
Prim’s algorithm
Set Vnew = {v}, where v is an arbitrary vertex in V .Set Enew = ∅.while Vnew 6= Vdo
Choose an edge ep,q with minimal weight such that p is in Vnew and qis not.Add q to Vnew and ep,q to Enew .
end
At the termination of the algorithm, (V ,Enew ) is a MST on G .
![Page 32: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/32.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 18: An edge weighted graph.
![Page 33: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/33.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 19: Start by adding an arbitrary vertex to Vnew .
![Page 34: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/34.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 20: Choose a minimal edge ep,q with such that p is in Vnew and q is not.
![Page 35: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/35.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 21: Add q to Vnew and ep,q to Enew .
![Page 36: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/36.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 22: Choose a minimal edge ep,q with such that p is in Vnew and q is not.
![Page 37: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/37.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 23: Add q to Vnew and ep,q to Enew .
![Page 38: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/38.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 24: Choose a minimal edge ep,q with such that p is in Vnew and q is not.
![Page 39: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/39.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 25: Add q to Vnew and ep,q to Enew .
![Page 40: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/40.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 26: Choose a minimal edge ep,q with such that p is in Vnew and q is not.
![Page 41: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/41.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 27: Add q to Vnew and ep,q to Enew .
![Page 42: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/42.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 28: Choose a minimal edge ep,q with such that p is in Vnew and q is not.
![Page 43: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/43.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 29: Add q to Vnew and ep,q to Enew .
![Page 44: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/44.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 30: Choose a minimal edge ep,q with such that p is in Vnew and q is not.
![Page 45: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/45.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 31: Add q to Vnew and ep,q to Enew .
![Page 46: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/46.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 32: Choose a minimal edge ep,q with such that p is in Vnew and q is not.
![Page 47: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/47.jpg)
Prim’s algorithm, example
10
57
1212
9
410
4
623
13
147
Figure 33: Add q to Vnew and ep,q to Enew .
![Page 48: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/48.jpg)
Prim’s algorithm, example
57
12
4
4
6
7
Figure 34: Vnew = V . The algorithm terminates.
![Page 49: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/49.jpg)
Implementing Prim’s algorithm
The edges are not neccesarily visited in increasing order, so we can’tpre-sort the edges.
Instead, we can use some variant of a priority queue to efficiently findthe next edge with minimum weight.
With such an implementation, Prim’s algorithm can be shown to runin O(E log V ).
![Page 50: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/50.jpg)
Spanning forests relative to seeds
Definition, spanning forest
Let G be a connected, undirected graph, and let S ⊆ V be a set ofseedpoints. Let T be a subgraph of G such that
T is a forest.
V (T ) = V (G ).
Each connected component of T contains exactly one seedpoint.
Then T is a spanning forest of G , relative to S .
![Page 51: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/51.jpg)
Minimum spanning forests
A spanning forest T of G is a minimum spanning forest (MSF) if thesum of the edge weights is smaller than for any other spanning forestrelative to S .
We can use Prim’s or Kruskal’s algorithms, with slight modifications,to compute MSFs.
![Page 52: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/52.jpg)
Minimum spanning forests and segmentation
A MSF partitions a graph into a number of components, eachcontaining exactly one seed-point.
We will now examine how this can be used for seeded segmentation.
Figure 35: Left: Seed-points representing background (red) and object (blue).Right: Segmentation by MSFs.
![Page 53: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/53.jpg)
But each seedpoint defines a connected component?
Figure 36: A pixel adjacency graph with “extra” vertices, corresponding to labelcategories.
![Page 54: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/54.jpg)
MSF cuts, global optimality
For any spanning forest T on G , we define a induced cut C as follows:
C (T ) = {ep,q ∈ E | p 6∼ qT
} . (3)
For any cut C , we define the weight of a cut as
mine∈S
(W (e)) . (4)
If S is a cut induced by a MSF, then the weight of S is greater thanor equal to the cost of any other cut that separates the seedpoints [1].
![Page 55: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/55.jpg)
Properties of MSF cuts
Contrast invariance
The MSF computations depend on the relative ordering of the edgeweights, but not on the absolute weight values.
Thus, the segmentation result is invariant under strictly monotonictransformations of the edge weights. (A transformation that preservesthe order)
![Page 56: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/56.jpg)
Properties of MSF cuts
Seed-relative robustness.
The core, or robustness region, of a seedpoint is the region (set ofvertices) where the seed can be moved without altering thesegmentation result.
For MSF-cuts, the core of each seedpoint can be determined exactly,and is usually large. [2]
![Page 57: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/57.jpg)
MSF cuts and Watersheds
There is a strong relation between segmentation by MSFs and theWatershed approach to segmentation:
J. Cousty et al., Watershed cuts: minimum spanning forests, and thedrop of water principle. IEEE PAMI, 31(8), 2009.
J. Cousty et al., Watershed cuts: Thinnings, shortest path forests,and topological watersheds. IEEE PAMI, 32(5), 2010.
![Page 58: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/58.jpg)
Part 3: Shortest path forests
![Page 59: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/59.jpg)
Shortest paths on graphs
Let G be a connected, undirected,edge weighted graph. We definethe length f (π) of a path π on G as
f (π) =k−1∑i=1
w(evi ,vi+1) . (5)
For each pair of vertices v ,w , there exists one or more paths in Gthat start at v and end at w . Among these paths, there is at leastone path for which the length is minimal.
Formally, a path π is a shortest path if f (π) ≤ f (τ) for any otherpath τ with org(τ) = org(π) and dst(τ) = dst(π).
![Page 60: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/60.jpg)
Shortest paths on graphs
The length of the shortest path between two vertices provides anotion of distance, or degree of connectedness, between pairs ofvertices in the graph.
Again, we have a global optimization problem: Among all pathsbetween a pair of vertices, we seek one that has minimum length.Fortunately, there are efficient algorithms that solve this problem.
Given a set S ⊆ V of seed-points, it is in fact possible tosimultaneously compute minimal cost paths from S to all othervertices in V . The output of this computation is a shortest pathforest.
![Page 61: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/61.jpg)
Shortest paths on graphs
In general, the shortest path between two vertices is not unique. Theset of shortest paths between two image elements p and q is denotedπmin(p, q).
For two sets A ⊆ V and B ⊆ V , π is a path between A and B iforg(π) ∈ A and dst(π) ∈ B. If f (π) ≤ f (τ) for any other path τbetween A and B, then π is a shortest path between A and B. Theset of shortest paths between A and B is denoted πmin(A,B).
![Page 62: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/62.jpg)
Predecessor maps
Predecessor maps, definition
A predecessor map is a mapping P that assigns to each vertex v ∈ Veither an element w ∈ N (v), or ∅.
For any v ∈ V , a predecessor map P defines a path P∗(p) recursively. Wedenote by P0(v) the first element of P∗(v).
![Page 63: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/63.jpg)
Spanning forests as predecessor maps
Spanning, definition
A spanning forest is a predecessor map that contains no cycles, i.e.,|P∗(v)| is finite for all v ∈ V . If P∗(v) = ∅, then v is a root of P.
Shortest path forests
Let S ⊆ V . If P is a spanning forest such that P∗(v) ∈ πmin(v ,S) for allvertices v ∈ V , then we say that P is an shortest path forest with respectto S .
![Page 64: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/64.jpg)
Computing shortest path forests
In 1956, Dijkstra [3] for computing shortest path forests.
The algorithm is based on the observation that if π = π1 · π2 is ashortest path between org(π) and dst(π), then π1 and π2 must alsobe shortest paths between their respective endpoints.
Thus, we can recursively reduce the problem to a set of ”smaller”subproblems.
![Page 65: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/65.jpg)
Dijkstra’s algorithm
Input: A graph G = (V ,E ) and a set S ⊆ V of seed-points.Auxillary: Two set of vertices F and Q whose union is V .Set F← ∅,Q← V .For all v ∈ V , set P(v) + leftarrow∅.while Q 6= ∅ do
Remove from Q a vertex v such that f (P ∗ (v)) is minimum, and addit to F .foreach w ∈ N (w) do
If f (P∗(w) · 〈w , v〉 < f (P∗(v))), then set P(w)← v .end
end
![Page 66: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/66.jpg)
Dijkstra’s algorithm, example
0 ∞ ∞
∞ ∞ ∞
∞ ∞ ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 37: Dijkstra’s algorithm.
![Page 67: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/67.jpg)
Dijkstra’s algorithm, example
0 ∞ ∞
∞ ∞ ∞
∞ ∞ ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 38: Dijkstra’s algorithm.
![Page 68: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/68.jpg)
Dijkstra’s algorithm, example
0 1 ∞
2 ∞ ∞
∞ ∞ ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 39: Dijkstra’s algorithm.
![Page 69: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/69.jpg)
Dijkstra’s algorithm, example
0 1 ∞
2 ∞ ∞
∞ ∞ ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 40: Dijkstra’s algorithm.
![Page 70: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/70.jpg)
Dijkstra’s algorithm, example
0 1 6
2 4 ∞
∞ ∞ ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 41: Dijkstra’s algorithm.
![Page 71: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/71.jpg)
Dijkstra’s algorithm, example
0 1 6
2 4 ∞
∞ ∞ ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 42: Dijkstra’s algorithm.
![Page 72: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/72.jpg)
Dijkstra’s algorithm, example
0 1 6
2 3 ∞
6 ∞ ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 43: Dijkstra’s algorithm.
![Page 73: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/73.jpg)
Dijkstra’s algorithm, example
0 1 6
2 3 ∞
6 ∞ ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 44: Dijkstra’s algorithm.
![Page 74: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/74.jpg)
Dijkstra’s algorithm, example
0 1 6
2 3 10
6 5 ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 45: Dijkstra’s algorithm.
![Page 75: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/75.jpg)
Dijkstra’s algorithm, example
0 1 6
2 3 10
6 5 ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 46: Dijkstra’s algorithm.
![Page 76: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/76.jpg)
Dijkstra’s algorithm, example
0 1 6
2 3 8
6 5 ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 47: Dijkstra’s algorithm.
![Page 77: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/77.jpg)
Dijkstra’s algorithm, example
0 1 6
2 3 8
6 5 ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 48: Dijkstra’s algorithm.
![Page 78: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/78.jpg)
Dijkstra’s algorithm, example
0 1 6
2 3 8
6 5 ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 49: Dijkstra’s algorithm.
![Page 79: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/79.jpg)
Dijkstra’s algorithm, example
0 1 6
2 3 8
6 5 ∞
2
1 5
71
3 2
3
2 1
1
4
Figure 50: Dijkstra’s algorithm.
![Page 80: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/80.jpg)
Dijkstra’s algorithm, example
0 1 6
2 3 8
6 5 8
2
1 5
71
3 2
3
2 1
1
4
Figure 51: Dijkstra’s algorithm.
![Page 81: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/81.jpg)
Dijkstra’s algorithm, example
0 1 6
2 3 8
6 5 8
2
1 5
71
3 2
3
2 1
1
4
Figure 52: Dijkstra’s algorithm.
![Page 82: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/82.jpg)
Dijkstra’s algorithm, example
0 1 6
2 3 8
6 5 8
2
1 5
71
3 2
3
2 1
1
4
Figure 53: Dijkstra’s algorithm.
![Page 83: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/83.jpg)
Dijkstra’s algorithm, example
0 1 6
2 3 8
6 5 8
2
1 5
71
3 2
3
2 1
1
4
Figure 54: Dijkstra’s algorithm.
![Page 84: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/84.jpg)
Dijkstra’s algorithm, example
0 1 6
2 3 8
6 5 8
2
1 5
1
2
3
4
Figure 55: Dijkstra’s algorithm.
![Page 85: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/85.jpg)
Implementing Dijkstra’s algorithm
Just like with Prim’s algorithm, we can use a priority queue toefficiently extract the vertex for which f (P∗(v)) is minimum.
The algorithm can be shown to run in O(|E |+ |V | log |V |). (Forsome types of graphs, we can do better)
![Page 86: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/86.jpg)
Live-wire segmentation
The perhaps most straightforward way of utilizing shortest cost pathcalculations in image segmentation is to consider the path itself as aboundary between two regions. This idea is used in the live-wiremethod.
To segment an object in a 2D image with live-wire, the user selects apoint on the object boundary. Dijkstras algorithm is then used tocompute shortest paths from this point to all other points in theimage.
As the user moves the pointer through the image, a minimal costpath from the current position to the seed-point the live wire isdisplayed in real-time.
![Page 87: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/87.jpg)
Live-wire segmentation
Figure 56: Live-wire segmentation.
![Page 88: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/88.jpg)
Seeded segmentation with shortest paths
Associate each seed-point with a label, and assign to all other verticesthe label of the closest seedpoint as determined by the minimum costpath forest.
We can modify Dijkstra’s algorithm to propagate the labels alongwith the shortest paths.
Figure 57: Seeded segmentation with shortest paths.
![Page 89: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/89.jpg)
Extensions of Dijkstra’s algorithm
For now, we have defined the length of a path as the sum of edge weightsalong the path.
Are there other path cost functions that could be of interest in imageprocessing?
If so, what conditions do these functions need to satisfy in order toguarantee the existence of a shortest path forest?
These questions, among other things, will be covered in Alexandreslectures.
![Page 90: Optimal trees and forests - Image Analysisfilip/ImageProcessingUsingGraphs/... · Minimum spanning forests A spanning forest T of G is a minimum spanning forest (MSF) if the sum of](https://reader034.fdocuments.us/reader034/viewer/2022050513/5f9db0c84141cc593e08078f/html5/thumbnails/90.jpg)
References[1] C. Allene, J-Y Audibert, M. Couprie, J. Cousty, and R. Keriven.
Some links between min-cuts, optimal spanning forests and watersheds.
In Proceedings of ISMM, 2007.
[2] R. Audigier and R. A. Lotufo.
Seed-relative segmentation robustness of watershed and fuzzy connectednessapproaches.
In A. X. Falcao and H. Lopes, editors, Proceedings of the 20th BrazilianSymposium on Computer Graphics and Image Processing, pages 61–68. IEEEComputer Society, 2007.
[3] Edsger W. Dijkstra.
A note on two problems in connexion with graphs.
Numerische Mathematik, 1:269–271, 1959.
[4] Joseph B. Kruskal.
On the shortest spanning subtree of a graph and the traveling salesman problem.
Proceedings of the American Mathematical Society, 7(1), 1956.
[5] Robert C. Prim.
Shortest connection networks and some generalizations.
Bell System Technical Journal, 36, 1957.