1 / 40

Minimum- Spanning Trees

Minimum- Spanning Trees. 1. Concrete example: computer connection 2. Definition of a Minimum- Spanning Tree 3. The Crucial Fact about Minimum- Spanning Trees 4. Algorithms to find Minimum- Spanning Trees - Kruskal‘s Algorithm - Prim‘s Algorithm

armani
Download Presentation

Minimum- Spanning Trees

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Minimum- Spanning Trees 1. Concrete example: computer connection 2. Definition of a Minimum- Spanning Tree 3. The Crucial Fact about Minimum- Spanning Trees 4. Algorithms to find Minimum- Spanning Trees - Kruskal‘s Algorithm - Prim‘s Algorithm - Barůvka‘s Algorithm Minimum-Spanning Trees

  2. Concrete example • Imagine: You wish to connect all the computers in an • office building using the least amount of cable • a weighted graph problem !! • Each vertex in a graph G represents a computer • Each edge represents the amount of cable needed to • connect all computers Minimum-Spanning Trees

  3. We are interested in: Finding a tree T that contains all the vertices of a graph G spanning tree and has the least total weight over all such trees minimum-spanning tree (MST) Minimum-Spanning Tree

  4. The Crucial Fact about MST e min-weight “bridge“ edge Crucial Fact

  5. The Crucial Fact about MST - The basis of the following algorithms Proposition:Let G = (V,E) be a weighted graph, and let and be two disjoint nonempty sets such that . Furthermore, let e be an edge with minimum weight from among those with one vertex in and the other in . There is a minimum- spanning tree T that has e as one of its edges. Crucial Fact

  6. The Crucial Fact about MST - The basis of the following algorithms Justification: There is no minimum- spanning tree that has e as one of of ist edges. The addition of e must create a cycle. There exists an edge f (one endpoint in the other in ). Choose: . By removing f from , a spanning tree is created, whose total weight is no more than before. A new MSTcontaining e Contradiction!!! There is a MST containing e after all!!! Crucial Fact

  7. MST-Algorithms Input: A weighted connected graph G = (V,E) with n vertices and m edges Output: A minimum- spanning tree T MST-Algorithms

  8. Kruskal‘s Algorithm • Each vertex is in its own cluster • 2. Take the edge e with the smallest weight • - if e connects two vertices in different clusters, • then e is added to the MST and the two clusters, • which are connected by e, are merged into a single cluster • - if e connects two vertices, which are already in the same • cluster, ignore it • 3. Continue until n-1 edges were selected Kruskal's Algorithm

  9. 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Kruskal's Algorithm

  10. 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Kruskal's Algorithm

  11. 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Kruskal's Algorithm

  12. 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Kruskal's Algorithm

  13. 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Kruskal's Algorithm

  14. 5 A B 4 6 2 2 D cycle!! C 3 1 2 3 E F 4 Kruskal's Algorithm

  15. 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Kruskal's Algorithm

  16. 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Kruskal's Algorithm

  17. minimum- spanning tree A B 2 2 D C 1 2 3 E F Kruskal's Algorithm

  18. The correctness of Kruskal‘s Algorithm Crucial Fact about MSTs Running time:O ( m log n ) By implementing queue Q as a heap, Q could be initialized in O ( m ) time and a vertex could be extracted in each iteration in O ( log n) time Kruskal's Algorithm

  19. Code Fragment Input: A weighted connected graph G with n vertices and m edges Output: A minimum-spanning tree T for G for each vertex v in G do Define a cluster C(v)  {v}. Initialize a priority queue Q to contain all edges in G, using weights as keys. T   while Q   do Extract (and remove) from Q an edge (v,u) with smallest weight. Let C(v) be the cluster containing v, and let C(u) be the cluster containing u. if C(v)  C(u) then Add edge (v,u) to T. Merge C(v) and C(u) into one cluster, that is, union C(v) and C(u). return tree T Kruskal's Algorithm

  20. Prim‘s Algorithm • All vertices are marked as not visited • 2. Any vertex v you like is chosen as starting vertex and • is marked as visited (define a cluster C) • The smallest- weighted edge e = (v,u), which connects • one vertex v inside the cluster C with another vertex u outside • of C, is chosen and is added to the MST. • 4. The process is repeated until a spanning tree is formed Prim's Algorithm

  21. 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Prim's Algorithm

  22. 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Prim's Algorithm

  23. We could delete these edges because of Dijkstra‘s label D[u] for each vertex outside of the cluster 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Prim's Algorithm

  24. A B 2 2 D C 3 1 2 3 E F 4 Prim's Algorithm

  25. A B 2 2 D C 3 1 2 3 E F Prim's Algorithm

  26. A B 2 2 D C 3 1 2 3 E F Prim's Algorithm

  27. A B 2 2 D C 1 2 3 E F Prim's Algorithm

  28. A B 2 2 D C 1 2 3 E F Prim's Algorithm

  29. minimum- spanning tree A B 2 2 D C 1 2 3 E F Prim's Algorithm

  30. The correctness of Prim‘s Algorithm Crucial Fact about MSTs Running time:O ( m log n ) By implementing queue Q as a heap, Q could be initialized in O ( m ) time and a vertex could be extracted in each iteration in O ( log n) time Prim's Algorithm

  31. Barůvka‘s Algorithm • For all vertices search the edge with the smallest weight • of this vertex and mark these edges • Search connected vertices (clusters) and replace them by • a “new“ vertex (cluster) • Remove the cycles and, if two vertices are connected by • more than one edge, delete all edges except the “cheapest“ Baruvka's Algorithm

  32. 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Baruvka's Algorithm

  33. 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Baruvka's Algorithm

  34. 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Baruvka's Algorithm

  35. 5 A B 4 6 2 2 D C 3 1 2 3 E F 4 Baruvka's Algorithm

  36. A B 2 2 D C 1 2 3 E F Baruvka's Algorithm

  37. minimum- spanning tree A B 2 2 D C 1 2 3 E F Baruvka's Algorithm

  38. The correctness of Barůvka‘s Algorithm Crucial Fact about MSTs Running time:O ( m log n ) The number of edges is at least reduced by half in each step. Number of steps: O ( log n ) Baruvka's Algorithm

  39. Comparison Kruskal‘s, Prim‘s, and Borůvka‘s algorithm Comparison

  40. Comparison Although each of the above algorithms has the same worth-case running time, each one achieves this running time using different data structures and different approaches to build the MST. there is no clear winner among these three algorithms Comparison

More Related