Data Structures - PowerPoint PPT Presentation

About This Presentation
Title:

Data Structures

Description:

Input: G = (V, E), directed or undirected. Output: for all v V. ... f [v] = finishing time (v turns from ... For all u, v, exactly one of the following holds: ... – PowerPoint PPT presentation

Number of Views:14
Avg rating:3.0/5.0
Slides: 34
Provided by: dan48
Category:

less

Transcript and Presenter's Notes

Title: Data Structures


1
Data Structures
DFS, Topological Sort Dana Shapira
2
Depth-first Search
  • Input G (V, E), directed or undirected.
  • Output
  • for all v ? V.
  • dv discovery time (v turns from white to
    gray)
  • f v finishing time (v turns from gray to
    black)
  • ?v predecessor of v u, such that v was
    discovered during the scan of us adjacency list.
  • Forest of depth-first trees
  • Gp (V,Ep) Ep (pv,v), v?V and pv ?
    null

3
DFS(G)
  • DFS-Visit(u)
  • coloru ? GRAY
  • time ? time 1
  • du ? time
  • for each v ? Adju
  • do if colorv WHITE
  • then ?v ? u
  • DFS-Visit(v)
  • coloru ? BLACK
  • fu ? time ? time 1
  • 1. for each vertex u ? VG
  • 2. do coloru ? white
  • 3. ?u ? NULL
  • 4. time ? 0
  • 5. for each vertex u ? VG
  • 6. do if coloru white
  • 7. then DFS-Visit(u)

Running time is ?(VE)
4
Example (DFS)
u
v
w
1/
x
y
z
5
Example (DFS)
u
v
u
v
w
w
9/12
1/8
1/8
2/7
4/5
3/6
10/11
x
x
y
z
y
z
6
Parenthesis Theorem
  • Theorem
  • For all u, v, exactly one of the following holds
  • 1. du lt f u lt dv lt f v or dv lt f v lt
    du lt f u and neither u nor v is a descendant
    of the other.
  • 2. du lt dv lt f v lt f u and v is a
    descendant of u.
  • 3. dv lt du lt f u lt f v and u is a
    descendant of v.
  • So du lt dv lt f u lt f v cannot happen.
  • Corollary
  • v is a proper descendant of u if and only if
    du lt dv lt f v lt f u.

7
Example (Parenthesis Theorem)
y
z
t
s
2/9
1/10
11/16
3/6
B
F
C
B
4/5
7/8
12/13
14/15
C
C
C
v
w
u
x
(s (z (y (x x) y) (w w) z) s) (t (v v) (u u) t)
8
White-path Theorem
  • Theorem
  • v is a descendant of u if and only if at time
    du, there is a path u v consisting of only
    white vertices.

9
Classification of Edges
  • Tree edge Edges in Gp. v was found by exploring
    (u, v).
  • Back edge (u, v), where u is a descendant of v
    in Gp .
  • Forward edge (u, v), where v is a descendant of
    u, but not a tree edge.
  • Cross edge any other edge. Can go between
    vertices in same depth-first tree or in different
    depth-first trees.

10
Identification of Edges
  • Edge type for edge (u, v) can be identified when
    it is first explored by DFS.
  • Identification is based on the color of v.
  • White tree edge.
  • Gray back edge.
  • Black forward or cross edge.

11
Identification of Edges
Theorem In DFS of an undirected graph, we get
only tree and back edges. No forward or cross
edges.
  • Proof
  • Let (u,v)?E. w.l.o.g let du lt dv.
  • Then v must be discovered and finished before u
    is finished.
  • If the edge (u,v) is explored first in the
    direction u?v, then
  • v is white until that time then it is a tree edge
    .
  • If the edge is explored in the direction, v?u,
    u is still gray
  • at the time the edge is first explored, then it
    is a back edge.

12
Directed Acyclic Graph - DAG
  • partial order
  • a gt b and b gt c ? a gt c.
  • But may have a and b such that neither a gt b nor
    b gt a.
  • Can always make a total order (either a gt b or b
    gt a for all a ? b) from a partial order.

13
Characterizing a DAG
Lemma A directed graph G is acyclic iff a DFS of
G yields no back edges.
  • Proof
  • ?
  • Suppose there is a back edge (u, v). Then v is an
    ancestor of u in depth-first forest.
  • Therefore, there is a path v u, so v u
    v is a cycle.

v
u
B
14
Characterizing a DAG
Lemma A directed graph G is acyclic iff a DFS of
G yields no back edges.
  • Proof (Cont.)
  • ?
  • c cycle in G, v first vertex discovered in c,
    (u, v) preceding edge in c.
  • At time dv, 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.

v
u
B
15
Topological Sort
Want to sort a directed acyclic graph (DAG).
B
D
A
E
C
C
D
E
A
B
16
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)
  • call DFS(G) to compute finishing times f v for
    all v ? V
  • as each vertex is finished, insert it onto the
    front of a linked list
  • return the linked list of vertices

Running time is ?(VE)
17
Example
A
B
D

1/




C
E
Linked List
18
Example
A
B
D

5/8
1/4


9/10


2/3
6/7
C
E
Linked List
2/3

1/4
6/7




5/8
9/10
E
C
A
D
B
19
Correctness Proof
  • Just need to show if (u, v) ? E, then f v lt 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 an ancestor of u.
  • ? (u, v) is a back edge.
  • ? contradiction of Lemma (DAG has no back edges).
  • Is v white?
  • v is a descendant of u.
  • By parenthesis theorem, du lt dv lt f v lt f
    u.
  • Is v black?
  • Then v is already finished.
  • Since were exploring (u, v), we have not yet
    finished u.
  • ? f v lt f u.

20
Strongly Connected Components
  • G is strongly connected if every pair (u, v) of
    vertices in G is reachable from each other.
  • 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.

21
Component Graph
  • GSCC (VSCC, ESCC).
  • VSCC has one vertex for each SCC in G.
  • ESCC has an edge if there is an edge between the
    corresponding SCCs in G.
  • GSCC for the example considered

22
GSCC is a DAG
Lemma Let C and C? be distinct SCCs in G, let
u, v ? C, u?, v? ? C?, and suppose there is a
path u u? in G. Then there cannot also be a
path v? v in G.
  • 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 SCCs.

23
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 T(V E) time if using adjacency
    lists.
  • G and GT have the same SCCs. (u and v are
    reachable from each other in G if and only if
    reachable from each other in GT.)

24
Algorithm to determine SCCs
  • SCC(G)
  • call DFS(G) to compute finishing times f u for
    all u
  • compute GT
  • call DFS(GT), but in the main loop, consider
    vertices in order of decreasing f u (as
    computed in first DFS)
  • output the vertices in each tree of the
    depth-first forest formed in second DFS as a
    separate SCC

Running time is ?(VE)
25
Example
G
a
b
d
c
11/16
1/10
8/9
13/14
3/4
12/15
2/7
5/6
e
g
f
h
26
Example
GT
a
b
d
c
e
g
f
h
27
Example
cd
abe
h
fg
28
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
  • du and f u always refer to first DFS.
  • Extend notation for d and f to sets of vertices U
    ? V
  • d(U) minu?Udu (earliest discovery time)
  • f (U) maxu?U f u (latest finishing time)

29
SCCs and DFS finishing times
Lemma Let C and C? be distinct SCCs in G (V,
E). Suppose there is an edge (u, v) ? E such that
u ? C and v ?C?. Then f (C) gt f (C?).
x
  • Proof
  • Case 1 d(C) lt d(C?)
  • Let x be the first vertex discovered in C.
  • At time dx, 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) gt
    f(C?).

C?
C
u
v
30
SCCs and DFS finishing times
C?
C
u
v
  • Case 2 d(C) gt d(C?)
  • Let y be the first vertex discovered in C?.
  • At time dy, 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 dy, 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 w ? C, f w gt f y, which
    implies that f (C) gt f (C?).

y
31
SCCs and DFS finishing times
Corollary Let C and C? be distinct SCCs in G
(V, E). Suppose there is an edge (u, v) ? ET,
where u ? C and v ? C?. Then f(C) lt f(C?).
  • Proof
  • (u, v) ? ET ? (v, u) ? E.
  • Since SCCs of G and GT are the same, f(C?) gt f
    (C), by previous Lemma.

32
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.
  • The Corollary says that since f(C) gt 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.

33
Correctness of SCC
  • The next root chosen in the second DFS is in SCC
    C? such that f (C?) is maximum over all SCCs
    other than C.
  • DFS visits all vertices in C, but the only edges
    out of C? go to C, which weve 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 SCCget tree edges to these,
  • vertices in SCCs already visited in second
    DFSget no tree edges to these.
Write a Comment
User Comments (0)
About PowerShow.com