+ All Categories
Home > Documents > Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly...

Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly...

Date post: 13-Dec-2015
Category:
Upload: sheena-lester
View: 215 times
Download: 0 times
Share this document with a friend
Popular Tags:
38
Jan. 2011 Topological Order and SCC dge classification opological order ecognition of strongly connected components
Transcript
Page 1: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

Jan. 2011

Topological Order and SCC Topological Order and SCC

• Edge classification• Topological order• Recognition of strongly connected components

Page 2: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 2

Classification of Edges It is well known that the preorder (depth-first) traversal of G(V, E)

introduces a spanning tree (forest) T. With respect to T, E(G) can be classified into four groups:

tree edges (Etreet): edges appearing in T.

cross edges (Ecross): any edge u v such that u and v are not on the same path in T.

forward edges (Eforward): any edge u v not appearing in T, but there exists a path from u to v in T

back edges (Eback): any edge u v not appearing in T, but there exists a path from v to u in T.

Page 3: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 3

a

b

d

rh

e

f

g

i jc

k

p

Page 4: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 4

Directed Acyclic Graph DAG – Directed Acyclic Graph (directed graph with no

cycles) Used for modeling processes and structures that have a

partial order:» Let a, b, c be three elements in a set U.

» a > b and b > c a > c.

» But may have a and b such that neither a > b nor b > a.

We can always make a total order (either a > b or b > a for all a b) from a partial order.

Page 5: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 5

ExampleDAG of dependencies for putting on goalie equipment.

socks shorts

hose

pants

skates

leg pads

T-shirt

chest pad

sweater

mask

catch glove

blocker

batting glove

Page 6: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 6

Characterizing a DAG

Proof: : Show that back edge cycle.

» Suppose there is a back edge (u, v). Then v is ancestor of u in depth-first forest.

» Therefore, there is a path v u, so v u → v is a cycle.

Lemma 22.11A directed graph G is acyclic iff a DFS of G yields no back edges.

Lemma 22.11A directed graph G is acyclic iff a DFS of G yields no back edges.

v uT T T

B

Page 7: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 7

Characterizing a DAG

Proof (Contd.): : Show that a cycle implies a back edge.

» c : cycle in G. v : first vertex discovered in c. (u, v) : preceding edge in c.

» At time d[v], vertices of c form a white path v u. Why?

» By white-path theorem, u is a descendent of v in depth-first forest.

» Therefore, (u, v) is a back edge.

Lemma 22.11A directed graph G is acyclic iff a DFS of G yields no back edges.

Lemma 22.11A directed graph G is acyclic iff a DFS of G yields no back edges.

v uT T T

B

Page 8: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 8

Depth-first Search Input: G = (V, E), directed or undirected. No

source vertex given! Output:

2 timestamps on each vertex. Integers between 1 and 2|V|.

• d[v] = discovery time

• f [v] = finishing time

Discovery time - the first time it is encountered during the search.Finishing time - A vertex is “finished” if it is a leaf node or allvertices adjacent to it have been finished.

Page 9: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 9

A B D

C E

1/

A B D

C E

1/

2/

A B D

C E

1/

2/3

A B D

C E

1/4

2/3

Page 10: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 10

A B D

C E

1/4

2/3

5/

A B D

C E

1/4

2/3

5/

6/

A B D

C E

1/4

2/3

5/

6/7

A B D

C E

1/4

2/3

5/8

6/7

Page 11: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 11

A B D

C E

1/4

2/3

5/8

6/7

9/

A B D

C E

1/4

2/3

5/8

6/7

9/10

Page 12: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 12

Topological Sort

Sort a directed acyclic graph (DAG) by the nodes’ finishing times.

B

E

D

C

A

CED A B

Think of original DAG as a partial order.By sorting, we get a total order that extends this partial order.

CED A B

3 4 7 8 10

Page 13: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 13

Topological Sort

Performed on a DAG. Linear ordering of the vertices of G such that if (u, v)

E, then u appears somewhere before v.

Topological-Sort (G)1. call DFS(G) to compute finishing times f [v] for all v V2. as each vertex is finished, insert it onto the front of a linked list

3. return the linked list of vertices

Topological-Sort (G)1. call DFS(G) to compute finishing times f [v] for all v V2. as each vertex is finished, insert it onto the front of a linked list

3. return the linked list of vertices

Time: O(|V| + |E|).

Page 14: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 14

Example

Linked List:

A B D

C E

1/

Page 15: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 15

Example

Linked List:

A B D

C E

1/

2/

Page 16: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 16

Example

Linked List:

A B D

C E

1/

2/3

E2/3

Page 17: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 17

Example

Linked List:

A B D

C E

1/4

2/3

E2/3 1/4

D

Page 18: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 18

Example

Linked List:

A B D

C E

1/4

2/3

E2/3 1/4

D

5/

Page 19: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 19

Example

Linked List:

A B D

C E

1/4

2/3

E2/3 1/4

D

5/

6/

Page 20: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 20

Example

Linked List:

E2/3 1/4

D

A B D

C E

1/4

2/3

5/

6/7

6/7

C

Page 21: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 21

Example

Linked List:

A B D

C E

1/4

2/3

E2/3 1/4

D

5/8

6/7

6/7

C 5/8

B

Page 22: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 22

Example

Linked List:

A B D

C E

1/4

2/3

E2/3 1/4

D

5/8

6/7

6/7

C 5/8

B

9/

Page 23: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 23

Example

Linked List:

A B D

C E

1/4

2/3

E2/3 1/4

D

5/8

6/7

6/7

C 5/8

B

9/10

9/10

A

Page 24: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 24

Correctness Proof Just need to show if (u, v) E, then f [v] < f [u]. When we explore (u, v), what are the colors of u and v?

» u is gray.» Is v gray, too?

• No.• because then v would be ancestor of u (u, v) is a back edge. contradiction of Lemma 22.11 (dag has no back edges).

» Is v white?• Then becomes descendant of u.• By parenthesis theorem, d[u] < d[v] < f [v] < f [u].

» Is v black?• Then v is already finished.• Since we’re exploring (u, v), we have not yet finished u.• Therefore, f [v] < f [u].

Page 25: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 25

Strongly Connected Components G is strongly connected if every pair (u, v) of vertices in

G is reachable from one another. A strongly connected component (SCC) of G is a

maximal set of vertices C V such that for all u, v C, both u ↝ v and v ↝ u exist.

Page 26: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 26

Component Graph GSCC = (VSCC, ESCC). VSCC has one vertex for each SCC in G. ESCC has an edge if there’s an edge between the

corresponding SCC’s in G. GSCC for the example considered:

Page 27: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 27

GSCC is a DAG

Proof: Suppose there is a path v ↝ v in G. Then there are paths u ↝ u ↝ v and v ↝ v ↝ u in G. Therefore, u and v are reachable from each other, so they

are not in separate SCC’s.

Lemma 22.13Let C and C be distinct SCC’s in G, let u, v C, u, v C, and suppose there is a path u ↝ u in G. Then there cannot be a path v ↝ v in G.

Lemma 22.13Let C and C be distinct SCC’s in G, let u, v C, u, v C, and suppose there is a path u ↝ u in G. Then there cannot be a path v ↝ v in G.

C: C :u

vu

v

Page 28: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 28

Transpose of a Directed Graph GT = transpose of directed G.

» GT = (V, ET), ET = {(u, v) : (v, u) E}.

» GT is G with all edges reversed.

Can create GT in O(|V| +|E|) time if using adjacency lists.

G and GT have the same SCC’s. (u and v are reachable from each other in G if and only if reachable from each other in GT.)

Page 29: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 29

Algorithm to determine SCCsSCC(G)1. call DFS(G) to compute finishing times f[u] for all u

2. compute GT

3. call DFS(GT), but in the main loop, consider vertices in order of decreasing f[u] (as computed in first DFS)

4. output the vertices in each tree of the depth-first forest formed in second DFS as a separate SCC

SCC(G)1. call DFS(G) to compute finishing times f[u] for all u

2. compute GT

3. call DFS(GT), but in the main loop, consider vertices in order of decreasing f[u] (as computed in first DFS)

4. output the vertices in each tree of the depth-first forest formed in second DFS as a separate SCC

Time: O(|V| + |E|).

Page 30: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 30

Example

13/14

12/15 3/4 2/7

11/16 1/10

a b c

e f g5/6

8/9

h

d

G

Page 31: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 31

Example

GT

-/15 -/4 -/7

-/16 -/10

a b c

e f g-/6

-/9

h

d-/14

Page 32: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 32

Example

-/15 -/4 -/7

-/16 -/10

a b c

e f g-/6

-/9

h

d-/14

Page 33: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 33

How does it work? Idea:

» By considering vertices in second DFS in decreasing order of finishing times from first DFS, we are visiting vertices of the component graph in topologically sorted order.

» Because we are running DFS on GT, we will not be visiting any v from a u, where v and u are in different components.

Notation:» d[u] and f [u] always refer to first DFS.

» Extend notation for d and f to sets of vertices U V:

» d(U) = minuU{d[u]} (earliest discovery time)

» f(U) = maxuU{ f [u]} (latest finishing time)

Page 34: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 34

SCCs and DFS finishing times

Proof: Case 1: d(C) < d(C)

» Let x be the first vertex discovered in C.

» At time d[x], all vertices in C and C are white. Thus, there exist paths of white vertices from x to all vertices in C and C.

» By the white-path theorem, all vertices in C and C are descendants of x in depth-first tree.

» By the parenthesis theorem, f [x] = f(C) > f(C).

Lemma 22.14Let C and C be distinct SCC’s in G = (V, E). Suppose there is an edge (u, v) E such that u C and v C. Then f(C) > f(C).

Lemma 22.14Let C and C be distinct SCC’s in G = (V, E). Suppose there is an edge (u, v) E such that u C and v C. Then f(C) > f(C).

C C

u v

x

d(C) = minuC{d[u]})

f (C) = maxuC{ f [u]}

d(x) < d(v) < f(v) < f(x)

Page 35: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 35

SCCs and DFS finishing times

Proof: Case 2: d(C) > d(C)

» Let y be the first vertex discovered in C. » At time d[y], all vertices in C are white and

there is a white path from y to each vertex in C all vertices in C become descendants of y. Again, f[y] = f(C).

» At time d[y], all vertices in C are also white.» By earlier lemma, since there is an edge (u,

v), we cannot have a path from C to C.» So no vertex in C is reachable from y.» Therefore, at time f [y], all vertices in C are

still white.» Therefore, for all v C, f[v] > f [y], which

implies that f(C) > f(C).

Lemma 22.14Let C and C be distinct SCC’s in G = (V, E). Suppose there is an edge (u, v) E such that u C and v C. Then f(C) > f(C).

Lemma 22.14Let C and C be distinct SCC’s in G = (V, E). Suppose there is an edge (u, v) E such that u C and v C. Then f(C) > f(C).

C C

u v

y

Page 36: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 36

SCCs and DFS finishing times

Proof: (u, v) ET (v, u) E. Since SCC’s of G and GT are the same, f(C) > f(C),

by Lemma 22.14.

Corollary 22.15Let C and C be distinct SCC’s in G = (V, E). Suppose there is an edge (u, v) ET, where u C and v C. Then f(C) < f(C).

Corollary 22.15Let C and C be distinct SCC’s in G = (V, E). Suppose there is an edge (u, v) ET, where u C and v C. Then f(C) < f(C).

Page 37: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 37

Correctness of SCC When we do the second DFS, on GT, start with SCC C

such that f(C) is maximum.» The second DFS starts from some x C, and it visits all

vertices in C.

» Corollary 22.15 says that since f(C) > f(C) for all C C, there are no edges from C to C in GT.

» Therefore, DFS will visit only vertices in C.

» Which means that the depth-first tree rooted at x contains exactly the vertices of C.

Page 38: Jan. 2011 Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.

graphs-2 - 38

Correctness of SCC The next root chosen in the second DFS is in SCC C

such that f(C) is maximum over all SCC’s other than C. » DFS visits all vertices in C, but the only edges out of C go to

C, which we’ve already visited.

» Therefore, the only tree edges will be to vertices in C. We can continue the process. Each time we choose a root for the second DFS, it can

reach only» vertices in its SCC—get tree edges to these,

» vertices in SCC’s already visited in second DFS—get no tree edges to these.


Recommended