/
CSE 421 Algorithms Autumn 2019 CSE 421 Algorithms Autumn 2019

CSE 421 Algorithms Autumn 2019 - PowerPoint Presentation

calandra-battersby
calandra-battersby . @calandra-battersby
Follow
342 views
Uploaded On 2020-01-18

CSE 421 Algorithms Autumn 2019 - PPT Presentation

CSE 421 Algorithms Autumn 2019 Lecture 10 Minimum Spanning Trees Dijkstras Algorithm Implementation and Runtime S ds 0 dv infinity for v s While S V Choose v in VS with minimum dv ID: 773127

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "CSE 421 Algorithms Autumn 2019" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

CSE 421Algorithms Autumn 2019 Lecture 10 Minimum Spanning Trees

Dijkstra’s Algorithm Implementation and Runtime S = { }; d[s] = 0; d[v] = infinity for v != s While S != V Choose v in V-S with minimum d[v] Add v to S For each w in the neighborhood of v d[w] = min(d[w], d[v] + c(v, w)) s u v z y x Edge costs are assumed to be non-negative a b HEAP OPERATIONS n Extract Mins m Heap Updates

Run Time Basic Heap Implementation O(log n) extract min and update keyO((m + n) log n) run timeFancy data structures: Fibonacci Heaps O(m + n log n)Dense graphsO(n2)

Shortest Paths Negative Cost Edges Dijkstra’s algorithm assumes positive cost edges For some applications, negative cost edges make senseShortest path not well defined if a graph has a negative cost cycle a b c s e g f 4 2 -3 6 4 -2 3 4 6 3 7 -4

Negative Cost Edge Preview Topological Sort can be used for solving the shortest path problem in directed acyclic graphs Bellman-Ford algorithm finds shortest paths in a graph with negative cost edges (or reports the existence of a negative cost cycle).

Bottleneck Shortest Path Define the bottleneck distance for a path to be the maximum cost edge along the path s v x u 5 4 6 3 5 4

Compute the bottleneck shortest paths a b c s e g f d 4 2 -3 6 6 5 4 -2 3 7 5 3 7 4 a b c s e g f d

Dijkstra’s Algorithm for Bottleneck Shortest Paths S = { }; d[s] = negative infinity; d[v] = infinity for v != s While S != V Choose v in V-S with minimum d[v] Add v to S For each w in the neighborhood of v d[w] = min(d[w], max(d[v], c(v, w))) s u v z y x a b 4 1 1 1 2 2 3 3 3 4 4 5

Minimum Spanning Tree Introduce Problem Demonstrate three different greedy algorithms Provide proofs that the algorithms work

Minimum Spanning Tree a b c s e g f 9 2 13 6 4 11 5 7 20 14 t u v 15 10 1 8 12 16 22 17 3

Greedy Algorithms for Minimum Spanning Tree Extend a tree by including the cheapest out going edge Add the cheapest edge that joins disjoint components Delete the most expensive edge that does not disconnect the graph 4 11 5 7 20 8 22 a b c d e

Greedy Algorithm 1Prim’s Algorithm Extend a tree by including the cheapest out going edge 9 2 13 6 4 11 5 7 20 14 15 10 1 8 12 16 22 17 3 t a e c g f b s u v Construct the MST with Prim’s algorithm starting from vertex a Label the edges in order of insertion

Greedy Algorithm 2Kruskal’s Algorithm Add the cheapest edge that joins disjoint components 9 2 13 6 4 11 5 7 20 14 15 10 1 8 12 16 22 17 3 t a e c g f b s u v Construct the MST with Kruskal’s algorithm Label the edges in order of insertion

Greedy Algorithm 3Reverse-Delete Algorithm Delete the most expensive edge that does not disconnect the graph 9 2 13 6 4 11 5 7 20 14 15 10 1 8 12 16 22 17 3 t a e c g f b s u v Construct the MST with the reverse-delete algorithm Label the edges in order of removal

Dijkstra’s Algorithm for Minimum Spanning Trees S = { }; d[s] = 0; d[v] = infinity for v != s While S != V Choose v in V-S with minimum d[v] Add v to S For each w in the neighborhood of v d[w] = min(d[w], c(v, w)) s u v z y x a b 4 1 1 1 2 2 3 3 3 4 4 5

Minimum Spanning Tree a b c s e g f 9 2 13 6 4 11 5 7 20 14 t u v 15 10 1 8 12 16 22 17 3 Undirected Graph G=(V,E) with edge weights

Greedy Algorithms for Minimum Spanning Tree [Prim] Extend a tree by including the cheapest out going edge [Kruskal] Add the cheapest edge that joins disjoint components[ReverseDelete] Delete the most expensive edge that does not disconnect the graph 4 11 5 7 20 8 22 a b c d e

Why do the greedy algorithms work? For simplicity, assume all edge costs are distinct

Edge inclusion lemma Let S be a subset of V, and suppose e = (u, v) is the minimum cost edge of E, with u in S and v in V-S e is in every minimum spanning tree of G Or equivalently, if e is not in T, then T is not a minimum spanning tree S V - S e

Proof Suppose T is a spanning tree that does not contain e Add e to T, this creates a cycle The cycle must have some edge e1 = (u1, v 1) with u1 in S and v1 in V-ST1 = T – {e1} + {e} is a spanning tree with lower costHence, T is not a minimum spanning tree S V - S e e is the minimum cost edge between S and V-S