Download presentation
Presentation is loading. Please wait.
Published byἹερώνυμος Καρράς Modified over 5 years ago
1
Winter 2019 Lecture 10 Minimum Spanning Trees
CSE 421 Algorithms Winter 2019 Lecture 10 Minimum Spanning Trees
2
Announcement CSE 421 Midterm Wednesday, February 13
In class, closed book, no notes All material covered in lecture KT 1.1 – KT 5.5
3
Dijkstra’s Algorithm Implementation and Runtime
Edge costs are assumed to be non-negative 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)) y u a HEAP OPERATIONS n Extract Mins m Heap Updates s x v b z
4
Shortest Paths Negative Cost Edges
Dijkstra’s algorithm assumes positive cost edges For some applications, negative cost edges make sense Shortest path not well defined if a graph has a negative cost cycle a 6 4 -4 4 e -3 c s -2 3 3 2 6 g b f 4 7
5
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).
6
Bottleneck Shortest Path
Define the bottleneck distance for a path to be the maximum cost edge along the path u 5 4 s x 4 6 5 3 v
7
Compute the bottleneck shortest paths
6 d d 6 a a 5 4 4 4 e e -3 c c s -2 s 3 3 2 5 g g b b 7 7 f f
8
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))) 3 y 4 u a 1 2 4 3 s x 1 1 2 v 5 3 b 4 z
9
Minimum Spanning Tree Introduce Problem
Demonstrate three different greedy algorithms Provide proofs that the algorithms work
10
Minimum Spanning Tree 15 t a 6 9 14 3 4 e 10 13 c s 11 20 5 17 2 7 g b
8 f 22 u 12 1 16 v
11
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 b c 20 5 11 8 a d 7 22 e
12
Greedy Algorithm 1 Prim’s Algorithm
Extend a tree by including the cheapest out going edge 15 t a 6 14 3 9 4 e 10 13 c s 11 20 5 Construct the MST with Prim’s algorithm starting from vertex a Label the edges in order of insertion 17 2 7 g b 8 f 22 u 12 1 16 v
13
Greedy Algorithm 2 Kruskal’s Algorithm
Add the cheapest edge that joins disjoint components 15 t a 6 14 3 9 4 e 10 13 c s 11 20 5 17 2 7 Construct the MST with Kruskal’s algorithm Label the edges in order of insertion g b 8 f 22 u 12 1 16 v
14
Greedy Algorithm 3 Reverse-Delete Algorithm
Delete the most expensive edge that does not disconnect the graph 15 t a 6 14 3 9 4 e 10 13 c s 11 20 5 17 2 7 Construct the MST with the reverse-delete algorithm Label the edges in order of removal g b 8 f 22 u 12 1 16 v
15
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)) 3 y 4 u a 1 2 4 3 s x 1 1 2 v 5 3 b 4 z
16
Minimum Spanning Tree Undirected Graph G=(V,E) with edge weights 15 t
6 9 14 3 4 e 10 13 c s 11 20 5 17 2 7 g b 8 f 22 u 12 1 16 v
17
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 b c 20 5 11 8 a d 7 22 e
18
Why do the greedy algorithms work?
For simplicity, assume all edge costs are distinct
19
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 e S V - S
20
Proof Suppose T is a spanning tree that does not contain e
e is the minimum cost edge between S and V-S 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, v1) with u1 in S and v1 in V-S T1 = T – {e1} + {e} is a spanning tree with lower cost Hence, T is not a minimum spanning tree S V - S e
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.