Download presentation

Presentation is loading. Please wait.

Published byAndrea Handy Modified over 2 years ago

1
Graph Algorithms: Topological Sort The topological sorting problem: given a directed, acyclic graph G = (V, E), find a linear ordering of the vertices such that for all (v, w) E, v precedes w in the ordering. A B C F D E

2
Graph Algorithms: Topological Sort The topological sorting problem: given a directed, acyclic graph G = (V, E), find a linear ordering of the vertices such that for all (v, w) E, v precedes w in the ordering. A B C F D EAD E F BC

3
Graph Algorithms: Topological Sort The topological sorting problem: given a directed, acyclic graph G = (V, E), find a linear ordering of the vertices such that for all (v, w) E, v precedes w in the ordering. A B C F D EAD E F BC Any linear ordering in which all the arrows go to the right.

4
Graph Algorithms: Topological Sort The topological sorting problem: given a directed, acyclic graph G = (V, E), find a linear ordering of the vertices such that for all (v, w) E, v precedes w in the ordering. A B C F D FAD E E BC Any linear ordering in which all the arrows go to the right. This is not a topological ordering.

5
Graph Algorithms: Topological Sort The topological sorting algorithm: Identify the subset of vertices that have no incoming edge. A B C F D E

6
Graph Algorithms: Topological Sort The topological sorting algorithm: Identify the subset of vertices that have no incoming edge. (In general, this subset must be nonempty—why?) A B C F D E

7
Graph Algorithms: Topological Sort The topological sorting algorithm: Identify the subset of vertices that have no incoming edge. (In general, this subset must be nonempty—because the graph is acyclic.) A B C F D E

8
Graph Algorithms: Topological Sort The topological sorting algorithm: Identify the subset of vertices that have no incoming edge. Select one of them. A B C F D E

9
Graph Algorithms: Topological Sort The topological sorting algorithm: Remove it, and its outgoing edges, and add it to the output. A B C F D E

10
Graph Algorithms: Topological Sort The topological sorting algorithm: Again, identify the subset of vertices that have no incoming edge,... A B C F D E

11
Graph Algorithms: Topological Sort The topological sorting algorithm: Again, identify the subset of vertices that have no incoming edge, select one of them,... A B C F D E

12
Graph Algorithms: Topological Sort The topological sorting algorithm: Again, identify the subset of vertices that have no incoming edge, select one of them, remove it and any outgoing edges, and put it in the output. A B C F D E

13
Graph Algorithms: Topological Sort The topological sorting algorithm: Again, identify the subset of vertices that have no incoming edge, select one of them, remove it and any outgoing edges, and put it in the output. A B C F D E

14
Graph Algorithms: Topological Sort The topological sorting algorithm: Again, identify the subset of vertices that have no incoming edge, select one of them, remove it and any outgoing edges, and put it in the output. AB C F D E

15
Graph Algorithms: Topological Sort The topological sorting algorithm: Again, identify the subset of vertices that have no incoming edge, select one of them, remove it and any outgoing edges, and put it in the output. AB C F D E

16
Graph Algorithms: Topological Sort The topological sorting algorithm: Again, identify the subset of vertices that have no incoming edge, select one of them, remove it and any outgoing edges, and put it in the output. ABCF D E

17
Graph Algorithms: Topological Sort The topological sorting algorithm: Again, identify the subset of vertices that have no incoming edge, select one of them, remove it and any outgoing edges, and put it in the output. ABCF D E

18
Graph Algorithms: Topological Sort The topological sorting algorithm: Again, identify the subset of vertices that have no incoming edge, select one of them, remove it and any outgoing edges, and put it in the output. ABCFD E

19
Graph Algorithms: Topological Sort The topological sorting algorithm: Again, identify the subset of vertices that have no incoming edge, select one of them, remove it and any outgoing edges, and put it in the output. ABCFD E

20
Graph Algorithms: Topological Sort The topological sorting algorithm: Again, identify the subset of vertices that have no incoming edge, select one of them, remove it and any outgoing edges, and put it in the output. ABCFDE

21
Graph Algorithms: Topological Sort The topological sorting algorithm: finished! ABCFDE A B C F D E

22
Graph Algorithms: Topological Sort The topological sorting algorithm: Time bound? ABCFDE A B C F D E

23
Graph Algorithms: Topological Sort The topological sorting algorithm: Time bound: Break down into total time to: Find vertices with no predecessors: ? Remove edges: ? Place vertices in output: ? ABCFDE A B C F D E

24
Graph Algorithms: Topological Sort The topological sorting algorithm: Time bound: Break down into total time to: Find vertices with no predecessors: ? Remove edges: O(|E|) Place vertices in output: ? ABCFDE A B C F D E

25
Graph Algorithms: Topological Sort The topological sorting algorithm: Time bound: Break down into total time to: Find vertices with no predecessors: ? Remove edges: O(|E|) Place vertices in output: O(|V|) ABCFDE A B C F D E

26
Graph Algorithms: Topological Sort Find vertices with no predecessors: ? A B C F D E ABCDEFABCDEF B D E E D C Assume an adjacency list representation:

27
Graph Algorithms: Topological Sort The topological sorting algorithm: …and initialize and maintain for each vertex its no. of predecessors. A B C F D E ABCDEFABCDEF B D E E D C 0 0 1 2 1 2 0 1 0 2 2 1

28
Graph Algorithms: Topological Sort Find vertices with no predecessors: ? A B C F D E Time for each vertex: O(|V|) ABCDEFABCDEF B D E E D C 0 1 0 2 2 1

29
Graph Algorithms: Topological Sort Find vertices with no predecessors: ? A B C F D E Total time: O(|V| ) 2 ABCDEFABCDEF B D E E D C 0 1 0 2 2 1

30
Graph Algorithms: Topological Sort The topological sorting algorithm: Time bound: Break down into total time to: Find vertices with no predecessors: O(|V| ) Remove edges: O(|E|) Place vertices in output: O(|V|) 2

31
Graph Algorithms: Topological Sort The topological sorting algorithm: Time bound: Break down into total time to: Find vertices with no predecessors: O(|V| ) Remove edges: O(|E|) Place vertices in output: O(|V|) 2 Total: O(|V| + |E|) 2

32
Graph Algorithms: Topological Sort The topological sorting algorithm: Time bound: Break down into total time to: Find vertices with no predecessors: O(|V| ) Remove edges: O(|E|) Place vertices in output: O(|V|) 2 Total: O(|V| + |E|) 2 Too much!

33
Graph Algorithms: Topological Sort The topological sorting algorithm: We need a faster way to do this step: Find vertices with no predecessors.

34
Graph Algorithms: Topological Sort The topological sorting algorithm: Key idea: initialize and maintain a queue (or stack) holding pointers to the vertices with 0 predecessors A B C F D E ABCDEFABCDEF B D E E D C 0 0 1 2 1 2 0 1 0 2 2 1

35
Graph Algorithms: Topological Sort The topological sorting algorithm: As each vertex is removed, update the predecessor counts, and for any vertex whose count has become zero, put it in the queue. A B C F D E ABCDEFABCDEF B D E E D C 0 0 1 2 1 2 0 1 0 2 2 1

36
Graph Algorithms: Topological Sort The topological sorting algorithm: As each vertex is removed, update the predecessor counts, and for any vertex whose count has become zero, put it in the queue. B C D E ABCDEFABCDEF E E D C 0 0 1 1 2 0 0 0 1 2 1 F Output: A No scan is required, so O(1).

37
Graph Algorithms: Topological Sort The topological sorting algorithm: As each vertex is removed, update the predecessor counts, and for any vertex whose count has become zero, put it in the queue. B C D E ABCDEFABCDEF E E D C 0 1 1 2 0 0 0 1 2 1 Output: A F

38
Graph Algorithms: Topological Sort The topological sorting algorithm: As each vertex is removed, update the predecessor counts, and for any vertex whose count has become zero, put it in the queue. C D E ABCDEFABCDEF E E D 1 0 2 0 0 0 1 2 0 Output: A F B

39
Graph Algorithms: Topological Sort The topological sorting algorithm: As each vertex is removed, update the predecessor counts, and for any vertex whose count has become zero, put it in the queue. D E ABCDEFABCDEF E 0 1 0 0 0 0 1 0 Output: A F B C

40
Graph Algorithms: Topological Sort The topological sorting algorithm: As each vertex is removed, update the predecessor counts, and for any vertex whose count has become zero, put it in the queue. E ABCDEFABCDEF 0 0 0 0 0 0 0 Output: A F B C D

41
Graph Algorithms: Topological Sort The topological sorting algorithm: As each vertex is removed, update the predecessor counts, and for any vertex whose count has become zero, put it in the queue. Finished! ABCDEFABCDEF 0 0 0 0 0 0 Output: A F B C D E

42
Graph Algorithms: Topological Sort The topological sorting algorithm: Time bound: Now the time for each part is Find vertices with no predecessors: O(|V|) Remove edges: O(|E|) Place vertices in output: O(|V|) Total: O(|V|+|E|) Linear in |V|+|E|. Much better!

Similar presentations

OK

Graphs COL 106 Slide Courtesy : Douglas W. Harder, U Waterloo.

Graphs COL 106 Slide Courtesy : Douglas W. Harder, U Waterloo.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ent anatomy and physiology ppt on cells Ppt on solar energy in hindi Ppt on automobile related topics of psychology Ppt on weapons of mass destruction pictures Ppt on mathematical games Ppt on water pollution and its control Download ppt on historical places in india Ppt on infrared remote control Ppt on tourism in karnataka Ppt on unity in diversity biology