Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
182 KB
Nội dung
Comp 122, Spring 2004 Graph Algorithms – 2 Graph Algorithms – 2 Comp 122, Fall 2004 graphs-2 - 2 Lin / Devi 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. Comp 122, Fall 2004 graphs-2 - 3 Lin / Devi Directed Acyclic Graph DAG – Directed graph with no cycles. Good for modeling processes and structures that have a partial order: » a > b and b > c ⇒ a > c. » But may have a and b such that neither a > b nor b > a. Can always make a total order (either a > b or b > a for all a ≠ b) from a partial order. Comp 122, Fall 2004 graphs-2 - 4 Lin / Devi Example DAG 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 Comp 122, Fall 2004 graphs-2 - 5 Lin / Devi 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.11 A directed graph G is acyclic iff a DFS of G yields no back edges. Lemma 22.11 A directed graph G is acyclic iff a DFS of G yields no back edges. v u T T T B Comp 122, Fall 2004 graphs-2 - 6 Lin / Devi 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.11 A directed graph G is acyclic iff a DFS of G yields no back edges. Lemma 22.11 A directed graph G is acyclic iff a DFS of G yields no back edges. v u T T T B Comp 122, Fall 2004 graphs-2 - 7 Lin / Devi Topological Sort Want to “sort” a directed acyclic graph (DAG). B E D C A C E D A B Think of original DAG as a partial order. Want a total order that extends this partial order. Comp 122, Fall 2004 graphs-2 - 8 Lin / Devi 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 ∈ V 2. 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 ∈ V 2. as each vertex is finished, insert it onto the front of a linked list 3. return the linked list of vertices Time: Θ(V + E). Example: On board. Comp 122, Fall 2004 graphs-2 - 9 Lin / Devi Example Linked List: A B D C E 1/ (Courtesy of Prof. Jim Anderson) Comp 122, Fall 2004 graphs-2 - 10 Lin / Devi Example Linked List: A B D C E 1/ 2/ [...]... E C Linked List: 2/3 E graphs-2 - 11 Comp 122, Lin / Devi Example A B D 1/4 2/3 E C Linked List: 1/4 D graphs-2 - 12 2/3 E Comp 122, Lin / Devi Example A B 5/ D 1/4 2/3 E C Linked List: 1/4 D graphs-2 - 13 2/3 E Comp 122, Lin / Devi Example A B 5/ D 1/4 6/ C 2/3 E Linked List: 1/4 D graphs-2 - 14 2/3 E Comp 122, Lin / Devi Example A B 5/ D 1/4 6/7 C 2/3 E Linked List: 6/7 C graphs-2 - 15 1/4 D 2/3... separate SCC formed in second DFS as a separate SCC Time: Θ(V + E) Example: On board graphs-2 - 24 Comp 122, Lin / Devi Example (Courtesy of Prof Jim Anderson) G a b 13/14 12/15 e graphs-2 - 25 d 11/16 c 1/10 8/9 3/4 f 2/7 g 5/6 h Comp 122, Lin / Devi Example GT a c d e graphs-2 - 26 b f g h Comp 122, Lin / Devi Example cd abe fg graphs-2 - 27 Comp 122, h Lin / Devi How does it work? Idea: » By considering... finished u • Therefore, f [v] < f [u] graphs-2 - 19 Comp 122, Lin / Devi 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 graphs-2 - 20 Comp 122, Lin / Devi Component Graph GSCC = (VSCC, ESCC) VSCC... are not in separate SCC’s graphs-2 - 22 Comp 122, Lin / Devi 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 Θ(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.) graphs-2 - 23 Comp 122,... - 15 1/4 D 2/3 E Comp 122, Lin / Devi Example A B 5/8 D 1/4 6/7 C 2/3 E Linked List: 5/8 B graphs-2 - 16 6/7 C 1/4 D 2/3 E Comp 122, Lin / Devi Example A 9/ B 5/8 D 1/4 6/7 C 2/3 E Linked List: 5/8 B graphs-2 - 17 6/7 C 1/4 D 2/3 E Comp 122, Lin / Devi Example A 9/10 B 5/8 D 1/4 6/7 C 2/3 E Linked List: 9/10 A graphs-2 - 18 5/8 B 6/7 C 1/4 D 2/3 E Comp 122, Lin / Devi Correctness Proof Just need to... 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) = minu∈U{d[u]} (earliest discovery time) » f (U) = maxu∈U{ f [u]} (latest finishing time) graphs-2 - 28 Comp... 122, Lin / Devi 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: graphs-2 - 21 Comp 122, Lin / Devi GSCC is a DAG Lemma 22.13 Lemma 22.13 Let C and C′ be distinct SCC’s in G, let u, vv ∈ C, u′, v′ ∈ C′, and Let C and C′ be distinct SCC’s in G, let u, ∈ C, u′, v′ ∈ C′,... 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 depthfirst tree » By the parenthesis theorem, f [x] = f (C) > f(C′) graphs-2 - 29 C′ C Comp 122, u v x Lin / Devi SCCs and DFS finishing times Lemma 22.14 Lemma 22.14 Let C and C′ be distinct SCC’s in G = (V, E) Suppose there is an Let C and C′ be distinct SCC’s in G =... 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] > f [y], which implies that f (C) > f (C′) graphs-2 - 30 Comp 122, C′ C u v x y Lin / Devi SCCs and DFS finishing times Corollary 22.15 Corollary 22.15 Let C and C′ be distinct SCC’s in G = (V, E) Suppose there is an Let C and C′ be distinct SCC’s... ETT,where u ∈ C and v ∈ C′ Then f(C) < f(C′) (u, v) ∈ E , where u ∈ C and v ∈ C′ Then f(C) < f(C′) 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 graphs-2 - 31 Comp 122, Lin / Devi 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 . Comp 122, Spring 2004 Graph Algorithms – 2 Graph Algorithms – 2 Comp 122, Fall 2004 graphs-2 - 2 Lin / Devi Identification of Edges Edge type for. back edge. » Black – forward or cross edge. Comp 122, Fall 2004 graphs-2 - 3 Lin / Devi Directed Acyclic Graph DAG – Directed graph with no cycles. Good for modeling processes and structures. 22.11 A directed graph G is acyclic iff a DFS of G yields no back edges. Lemma 22.11 A directed graph G is acyclic iff a DFS of G yields no back edges. v u T T T B Comp 122, Fall 2004 graphs-2 -