Data Structures, Spring 2004 © L. Joskowicz 1 Data Structures – LECTURE 14 Strongly connected components Definition and motivation Algorithm Chapter 22.5.

Slides:



Advertisements
Similar presentations
Introduction to Algorithms Graph Algorithms
Advertisements

Graph Algorithms Algorithm Design and Analysis Victor AdamchikCS Spring 2014 Lecture 11Feb 07, 2014Carnegie Mellon University.
Comp 122, Spring 2004 Graph Algorithms – 2. graphs Lin / Devi Comp 122, Fall 2004 Identification of Edges Edge type for edge (u, v) can be identified.
Graphs - II Algorithms G. Miller V. Adamchik CS Spring 2014 Carnegie Mellon University.
1 Strongly connected components. 2 Definition: the strongly connected components (SCC) C 1, …, C k of a directed graph G = (V,E) are the largest disjoint.
CSC401 – Analysis of Algorithms Lecture Notes 14 Graph Biconnectivity
Tirgul 7 Review of graphs Graph algorithms: –DFS –Properties of DFS –Topological sort.
Elementary Graph Algorithms Depth-first search.Topological Sort. Strongly connected components. Chapter 22 CLRS.
Theory of Computing Lecture 6 MAS 714 Hartmut Klauck.
Lecture 16: DFS, DAG, and Strongly Connected Components Shang-Hua Teng.
1 Chapter 22: Elementary Graph Algorithms IV. 2 About this lecture Review of Strongly Connected Components (SCC) in a directed graph Finding all SCC (i.e.,
CS 312 – Graph Algorithms1 Graph Algorithms Many problems are naturally represented as graphs – Networks, Maps, Possible paths, Resource Flow, etc. Ch.
Graph Traversals Visit vertices of a graph G to determine some property: Is G connected? Is there a path from vertex a to vertex b? Does G have a cycle?
Graphs - Definition G(V,E) - graph with vertex set V and edge set E
Graph Traversals Visit vertices of a graph G to determine some property: Is G connected? Is there a path from vertex a to vertex b? Does G have a cycle?
1 Graph Algorithms Andreas Klappenecker [based on slides by Prof. Welch]
Tirgul 8 Graph algorithms: Strongly connected components.
Tirgul 11 DFS Properties of DFS Topological sort.
CS 473Lecture 151 CS473-Algorithms I Lecture 15 Graph Searching: Depth-First Search and Topological Sort.
CPSC 311, Fall CPSC 311 Analysis of Algorithms Graph Algorithms Prof. Jennifer Welch Fall 2009.
Data Structures, Spring 2004 © L. Joskowicz 1 Data Structures – LECTURE 13 Minumum spanning trees Motivation Properties of minimum spanning trees Kruskal’s.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2001 Lecture 4 Tuesday, 2/19/02 Graph Algorithms: Part 2 Network.
Graph Traversals Reading Material: Chapter 9. Graph Traversals Some applications require visiting every vertex in the graph exactly once. The application.
CPSC 411 Design and Analysis of Algorithms Set 8: Graph Algorithms Prof. Jennifer Welch Spring 2011 CPSC 411, Spring 2011: Set 8 1.
1 Data Structures DFS, Topological Sort Dana Shapira.
Lecture 10 Topics Application of DFS Topological Sort
CSE 780 Algorithms Advanced Algorithms Graph Alg. DFS Topological sort.
Tirgul 11 BFS,DFS review Properties Use. Breadth-First-Search(BFS) The BFS algorithm executes a breadth search over the graph. The search starts at a.
Data Structures, Spring 2004 © L. Joskowicz 1 Data Structures – LECTURE 12 Graphs and basic search algorithms Motivation Definitions and properties Representation.
Lecture 15: Depth First Search Shang-Hua Teng. Graphs G= (V,E) B E C F D A B E C F D A Directed Graph (digraph) –Degree: in/out Undirected Graph –Adjacency.
Data Structures, Spring 2006 © L. Joskowicz 1 Data Structures – LECTURE 14 Strongly connected components Definition and motivation Algorithm Chapter 22.5.
Elementary graph algorithms Chapter 22
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2004 Lecture 5 Wednesday, 10/6/04 Graph Algorithms: Part 2.
Depth-First Search Idea: Keep going forward as long as there are unseen nodes to be visited. Backtrack when stuck. v G G G G is completely traversed.
Graph Algorithms Using Depth First Search Prepared by John Reif, Ph.D. Distinguished Professor of Computer Science Duke University Analysis of Algorithms.
Introduction to Graph Theory
Theory of Computing Lecture 10 MAS 714 Hartmut Klauck.
COSC 3101A - Design and Analysis of Algorithms 10
Spring 2015 Lecture 10: Elementary Graph Algorithms
The Shape of the Web So, the Web is a directed graph, but what does it look like?
Elementary Graph Algorithms CLRS Chapter 22. Graph A graph is a structure that consists of a set of vertices and a set of edges between pairs of vertices.
Lecture 11 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
Jan Topological Order and SCC Edge classification Topological order Recognition of strongly connected components.
1 Chapter 22 Elementary Graph Algorithms. 2 Introduction G=(V, E) –V = vertex set –E = edge set Graph representation –Adjacency list –Adjacency matrix.
Elementary Graph Algorithms Many of the slides are from Prof. Plaisted’s resources at University of North Carolina at Chapel Hill.
Graph Algorithms.
Connectivity1 Connectivity and Biconnectivity connected components cutvertices biconnected components.
Chapter 22: Elementary Graph Algorithms
MAT 2720 Discrete Mathematics Section 8.2 Paths and Cycles
 Quotient graph  Definition 13: Suppose G(V,E) is a graph and R is a equivalence relation on the set V. We construct the quotient graph G R in the follow.
 2004 SDU 1 Lecture5-Strongly Connected Components.
5. Biconnected Components of A Graph If one city’s airport is closed by bad weather, can you still fly between any other pair of cities? If one computer.
CSC317 1 At the same time: Breadth-first search tree: If node v is discovered after u then edge uv is added to the tree. We say that u is a predecessor.
Chapter 22: Elementary Graph Algorithms Overview: Definition of a graph Representation of graphs adjacency list matrix Elementary search algorithms breadth-first.
Graph Algorithms – 2. graphs Parenthesis Theorem Theorem 22.7 For all u, v, exactly one of the following holds: 1. d[u] < f [u] < d[v] < f [v] or.
Introduction to Algorithms
Main algorithm with recursion: We’ll have a function DFS that initializes, and then calls DFS-Visit, which is a recursive function and does the depth first.
Graph Algorithms Using Depth First Search
CSCE 411 Design and Analysis of Algorithms
Graph Algorithms – 2 DAGs Topological order
Lecture 10 Algorithm Analysis
Graph Algorithms – 2.
Advanced Algorithms Analysis and Design
Applications of DFS Topological sort (for directed acyclic graph)
Data Structures – LECTURE 13 Minumum spanning trees
CS 583 Analysis of Algorithms
Biconnectivity SEA PVD ORD FCO SNA MIA 5/23/ :21 PM
Richard Anderson Lecture 5 Graph Theory
Presentation transcript:

Data Structures, Spring 2004 © L. Joskowicz 1 Data Structures – LECTURE 14 Strongly connected components Definition and motivation Algorithm Chapter 22.5 in the textbook (pp 552—557).

Data Structures, Spring 2004 © L. Joskowicz 2 Strongly connected components Definition: the strongly connected components (SCC) C 1, …, C k of a directed graph G = (V,E) are the largest disjoint sub-graphs (no common vertices or edges) such that for any two vertices u and v in C i, there is a path from u to v and from v to u. Equivalence classes of the binary path(u,v) relation, denoted by u ~ v. Applications: networking, communications. Problem: compute the strongly connected components of G in linear time Θ(|V|+|E|).

Data Structures, Spring 2004 © L. Joskowicz 3 Example: strongly connected components d bfeac g h

Data Structures, Spring 2004 © L. Joskowicz 4 Example: strongly connected components d bfeac g h

Data Structures, Spring 2004 © L. Joskowicz 5 Strongly connected components graph Definition: the SCC graph G ~ = (V ~,E ~ ) of the graph G = (V,E) is as follows: –V ~ = {C 1, …, C k }. Each SCC is a vertex. –E ~ = {(C i,C j )| i≠j and (x,y)  E, where x  C i and y  C j }. A directed edge between components corresponds to a directed edge between them from any of their vertices. G ~ is a directed acyclic graph (no directed cycles)! Definition: the transpose graph G T = (V,E T ) of the graph G = (V,E) is G with its edge directions reversed: E T = {(u,v)| (v,u)  E}.

Data Structures, Spring 2004 © L. Joskowicz 6 Example: transpose graph G T d b f e a c g h d b f e a c g h G GTGT

Data Structures, Spring 2004 © L. Joskowicz 7 Example: SCC graph C1C1 C2C2 C4C4 C3C3 d b f e a c g h

Data Structures, Spring 2004 © L. Joskowicz 8 SCC algorithm Idea: compute the SCC graph G ~ = (V ~,E ~ ) with two DFS, one for G and one for its transpose G T, visiting the vertices in reverse order. SCC(G) 1. DFS(G) to compute f [v], ∀ v  V 2. Compute G T 3.DFS(G T ) in the order of decreasing f [v] 4.Output the vertices of each tree in the DFS forest as a separate SCC.

Data Structures, Spring 2004 © L. Joskowicz 9 Example: computing SCC (1) 1/15 d bfeac g h d bfeac g h 2/4 3/12 4/14 7/13 8/11 9/10 5/6

Data Structures, Spring 2004 © L. Joskowicz 10 Example: computing SCC (2) d bf e a c g h C1C1 C4C4 C2C2 C3C ’ 4 Labeled transpose graph G T

Data Structures, Spring 2004 © L. Joskowicz 11 Proof of correctness: SCC (1) Lemma 1: Let C and C’ be two distinct SCC of G = (V,E), let u,v  C and u’,v’  C’. If there is a path from u to u’, then there cannot be a path from v to v’. Lemma 2: Let C and C’ be two distinct SCC of G, and let (u,v)  E where and u  C and v’  C’. Then, f [C] > f [C’] where f [C] = min u  C (f [C]) for C  G. Corollary: for edge (u,v)  E T, and u  C and v’  C’ f [C] < f [C’]

Data Structures, Spring 2004 © L. Joskowicz 12 Proof of correctness: SCC (2) Theorem: The SCC algorithm computes the strongly connected components of a directed graph G. Proof: by induction on the number of depth-first trees found in the DFS of G T : the vertices of each tree form a SCC. The first k trees produced by the algorithm are SCC. Basis: for k = 0, this is trivially true. Inductive step: The first k trees produced by the algorithm are SCC. Consider the (k+1) st tree rooted at u in SCC C. By the lemma, f [u] = f [C] > f [C’] for SCC C’ that has not yet been visited.

Data Structures, Spring 2004 © L. Joskowicz 13 Proof of correctness: SCC (3) When u is visited, all the vertices v in its SCC have not been visited. Therefore, all vertices v are descendants of u in the depth-first tree. By the inductive hypothesis, and the corollary, any edges in G T that leave C must be in SCC that have already been visited. Thus, no vertex in any SCC other than C will be a descendant of u during the depth first search of G T. Thus, the vertices of the depth-first search tree in G T that is rooted at u form exactly one connected component.

Data Structures, Spring 2004 © L. Joskowicz 14 Uses of the SCC graph Articulation: a vertex whose removal disconnects G. Bridge: an edge whose removal disconnects G. Euler tour: a cycle that traverses all each edge of G exactly once (vertices can be visited more than once) All can be computed in O(|E|) on the SCC. d b f e a c g h C1C1 C2C2 C4C4 C3C3