Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 10 Instructor: Paul Beame.

Similar presentations


Presentation on theme: "1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 10 Instructor: Paul Beame."— Presentation transcript:

1 1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 10 Instructor: Paul Beame

2 2 DFS(v) for a directed graph 1 2 10 9 8 3 4 5 6 7 11 12 13

3 3 DFS(v) 1 2 10 9 8 3 4 5 6 7 11 12 13 tree edges back edges forward edges  cross edges NO  cross edges

4 4 Strongly-connected components  In directed graph if there is a path from a to b there might not be one from b to a  a and b are strongly connected iff there is a path in both directions (i.e. a directed cycle containing both a and b  Breaks graph into components

5 5 Strongly-connected components 1 2 10 9 8 3 4 5 6 7 11 12 13

6 6 Uses for SCC’s  Optimizing compilers need to find loops, which are SCC’s in the program flow graph.  If (u,v) means process u is waiting for process v, SCC’s show deadlocks.

7 7 Directed Acyclic Graphs  If we collapse each SCC to a single vertex we get a directed graph with no cycles  a directed acyclic graph or DAG  Many problems on directed graphs can be solved as follows:  Compute SCC’s and resulting DAG  Do one computation on each SCC  Do another computation on the overall DAG

8 8 Simple SCC Algorithm  u,v in same SCC iff there are paths u  v & v  u  DFS from every u, v: O(nm) = O(n 3 )

9 9 Better method  Can compute all the SCC’s while doing a single DFS! O(n+m) time  We won’t do the full algorithm but will give some ideas

10 10 Definition The root of an SCC is the first vertex in it visited by DFS. Equivalently, the root is the vertex in the SCC with the smallest number in DFS ordering.

11 11 Subgoal  All members of an SCC are descendants of its root.  Can we identify some root?  How about the root of the first SCC completely explored by DFS?  Key idea: no exit from first SCC (first SCC is leftmost “leaf” in collapsed DAG)

12 12 Definition x is an exit from v (from v’s subtree) if  x is not a descendant of v, but  x is the head of a (cross- or back-) edge from a descendant of v (including v itself)  Any non-root vertex v has an exit v x v x

13 13 Finding SCC’s  A root nodes v sometimes have exits  only via a cross-edge to a node x that is not in a component with a root above v, e.g. vertex 10 in the example.

14 14 Strongly-connected components 1 2 10 9 8 3 4 5 6 7 11 12 13

15 15 Minimum Spanning Trees (Forests)  Given an undirected graph G=(V,E) with each edge e having a weight w(e)  Find a subgraph T of G of minimum total weight s.t. every pair of vertices connected in G are also connected in T  if G is connected then T is a tree otherwise it is a forest

16 16 Weighted Undirected Graph 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

17 17 First Greedy Algorithm  Prim’s Algorithm:  start at a vertex v  add the cheapest edge adjacent to v  repeatedly add the cheapest edge that joins the vertices explored so far to the rest of the graph.  We’ll show it works later

18 18 Prim’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

19 19 Prim’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

20 20 Prim’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

21 21 Prim’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

22 22 Prim’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

23 23 Prim’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

24 24 Prim’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

25 25 Prim’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

26 26 Prim’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

27 27 Prim’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

28 28 Prim’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

29 29 Prim’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

30 30 Prim’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11 MST weight =41

31 31 Second Greedy Algorithm  Kruskal’s Algorithm  Start with the vertices and no edges  Repeatedly add the cheapest edge that joins two different components. i.e. that doesn’t create a cycle  Again we save the proof of correctness for later

32 32 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

33 33 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

34 34 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

35 35 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

36 36 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

37 37 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

38 38 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

39 39 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

40 40 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

41 41 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

42 42 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

43 43 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

44 44 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

45 45 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11

46 46 Kruskal’s Algorithm 2 7 4 3 4 5 1 3 5 8 6 9 4 5 7 9 8 1 2 3 10 5 4 9 12 8 13 6 7 11 produces same tree as Prim’s algorithm


Download ppt "1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 10 Instructor: Paul Beame."

Similar presentations


Ads by Google