Graph Algorithms: Topological Sort - PowerPoint PPT Presentation

About This Presentation
Title:

Graph Algorithms: Topological Sort

Description:

Graph Algorithms: Topological Sort. The topological sorting problem: given a directed, ... This is not a topological. ordering. Graph Algorithms: Topological Sort ... – PowerPoint PPT presentation

Number of Views:1351
Avg rating:3.0/5.0
Slides: 43
Provided by: DavidR6
Learn more at: http://www.cs.rpi.edu
Category:

less

Transcript and Presenter's Notes

Title: Graph Algorithms: Topological Sort


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.
B
C
A
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.
B
C
A
E
A
D
F
B
C
F
D
E
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.
Any linear ordering in which all the arrows go to
the right.
B
C
A
E
A
D
F
B
C
F
D
E
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.
Any linear ordering in which all the arrows go to
the right.
B
C
A
F
A
D
E
B
C
F
D
E
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.
B
C
A
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
nonemptywhy?)
B
C
A
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
nonemptybecause the graph is acyclic.)
B
C
A
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.
B
C
A
F
D
E
9
Graph Algorithms Topological Sort
The topological sorting algorithm Remove it,
and its outgoing edges, and add it to the
output.
B
C
A
F
D
E
10
Graph Algorithms Topological Sort
The topological sorting algorithm Again,
identify the subset of vertices that have no
incoming edge, . . .
B
C
A
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, . . .
B
C
A
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.
B
C
A
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.
B
C
A
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.
C
A
B
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.
C
A
B
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.
A
B
C
F
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.
A
B
C
F
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.
A
B
C
F
D
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.
A
B
C
F
D
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.
A
B
C
F
D
E
21
Graph Algorithms Topological Sort
The topological sorting algorithm finished!
B
C
A
A
B
C
F
D
E
F
D
E
22
Graph Algorithms Topological Sort
The topological sorting algorithm Time bound?
B
C
A
A
B
C
F
D
E
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 ?
B
C
A
A
B
C
F
D
E
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 ?
B
C
A
A
B
C
F
D
E
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)
B
C
A
A
B
C
F
D
E
F
D
E
26
Graph Algorithms Topological Sort
Find vertices with no predecessors ?
Assume an adjacency list representation
A B C D E F
B
D
B
C
C
A
E
D
F
E
D
E
27
Graph Algorithms Topological Sort
The topological sorting algorithm and
initialize and maintain for each vertex its
no. of predecessors.
B
0
D
A B C D E F
1
1
B
1
C
0
C
1
0
A
E
D
F
2
E
2
2
2
D
E
0
28
Graph Algorithms Topological Sort
Find vertices with no predecessors ?
Time for each vertex O(V)
B
0
D
A B C D E F
B
1
C
C
1
A
E
D
F
2
E
2
D
E
0
29
Graph Algorithms Topological Sort
Find vertices with no predecessors ?
2
Total time O(V )
B
0
D
A B C D E F
B
1
C
C
1
A
E
D
F
2
E
2
D
E
0
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
2
Total O(V E)
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
2
Total O(V E)
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 D E F
B
0
D
1
1
B
1
C
0
C
0
1
A
E
D
F
2
E
2
2
2
D
E
0
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 D E F
B
0
D
1
1
B
1
C
0
C
0
1
A
E
D
F
2
E
2
2
2
D
E
0
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.
No scan is required, so O(1).
A B C D E F
0
0
1
B
0
C
C
0
1
E
D
F
1
E
1
2
2
D
Output A
E
0
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.
A B C D E F
0
0
1
B
0
C
C
1
E
D
1
E
1
2
2
D
Output A F
E
0
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.
A B C D E F
0
0
0
C
0
E
D
1
E
1
2
2
D
Output A F B
E
0
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.
A B C D E F
0
0
0
0
E
0
1
1
D
Output A F B C
E
0
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.
A B C D E F
0
0
0
0
0
0
Output A F B C D
E
0
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!
A B C D E F
0
0
0
0
0
Output A F B C D E
0
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(VE)
Linear in VE. Much better!
Write a Comment
User Comments (0)
About PowerShow.com