A new linear algorithm for checking a graph for 3-edge-connectivity Feng Sun Advisor: Dr. Robert W. Robinson Committee: Dr. E. Rodney Canfield Dr. Eileen.

Slides:



Advertisements
Similar presentations
Convex drawing chapter 5 Ingeborg Groeneweg. Summery What is convex drawing What is convex drawing Some definitions Some definitions Testing convexity.
Advertisements

Depth-First Search1 Part-H2 Depth-First Search DB A C E.
IKI 10100: Data Structures & Algorithms Ruli Manurung (acknowledgments to Denny & Ade Azurat) 1 Fasilkom UI Ruli Manurung (Fasilkom UI)IKI10100: Lecture10.
CSC401 – Analysis of Algorithms Lecture Notes 14 Graph Biconnectivity
Tirgul 7 Review of graphs Graph algorithms: –DFS –Properties of DFS –Topological sort.
CSE 2331/5331 Topic 11: Basic Graph Alg. Representations Undirected graph Directed graph Topological sort.
Breadth-First Search Seminar – Networking Algorithms CS and EE Dept. Lulea University of Technology 27 Jan Mohammad Reza Akhavan.
TECH Computer Science Graphs and Graph Traversals  // From Tree to Graph  // Many programs can be cast as problems on graph Definitions and Representations.
Graphs Chapter 20 Data Structures and Problem Solving with C++: Walls and Mirrors, Carrano and Henry, © 2013.
Chapter 8, Part I Graph Algorithms.
© 2006 Pearson Addison-Wesley. All rights reserved14 A-1 Chapter 14 excerpts Graphs (breadth-first-search)
Chapter 9 Connectivity 连通度. 9.1 Connectivity Consider the following graphs:  G 1 : Deleting any edge makes it disconnected.  G 2 : Cannot be disconnected.
 Graph Graph  Types of Graphs Types of Graphs  Data Structures to Store Graphs Data Structures to Store Graphs  Graph Definitions Graph Definitions.
Tirgul 11 DFS Properties of DFS Topological sort.
A Randomized Linear-Time Algorithm to Find Minimum Spanning Trees David R. Karger David R. Karger Philip N. Klein Philip N. Klein Robert E. Tarjan.
Lectures on Network Flows
Data Structures, Spring 2004 © L. Joskowicz 1 Data Structures – LECTURE 14 Strongly connected components Definition and motivation Algorithm Chapter 22.5.
Depth-First Search1 DB A C E. 2 Outline and Reading Definitions (§6.1) Subgraph Connectivity Spanning trees and forests Depth-first search (§6.3.1) Algorithm.
Connectivity and Paths
Graph Traversals Reading Material: Chapter 9. Graph Traversals Some applications require visiting every vertex in the graph exactly once. The application.
Testing for Connectedness and Cycles
Introduction to Graphs
Greedy Algorithms Reading Material: Chapter 8 (Except Section 8.5)
© 2004 Goodrich, Tamassia Depth-First Search1 DB A C E.
SubSea: An Efficient Heuristic Algorithm for Subgraph Isomorphism Vladimir Lipets Ben-Gurion University of the Negev Joint work with Prof. Ehud Gudes.
Data Structures, Spring 2006 © L. Joskowicz 1 Data Structures – LECTURE 14 Strongly connected components Definition and motivation Algorithm Chapter 22.5.
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
Module #1 - Logic 1 Based on Rosen, Discrete Mathematics & Its Applications. Prepared by (c) , Michael P. Frank and Modified By Mingwu Chen Trees.
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.
Introduction to Graph Theory
IS 2610: Data Structures Graph April 5, 2004.
Graphs CS 400/600 – Data Structures. Graphs2 Graphs  Used to represent all kinds of problems Networks and routing State diagrams Flow and capacity.
A Fast Algorithm To Determine Minimality of Strongly Connected Digraphs Under the direction of Dr. Robinson By Jianping Zhu.
CSC 213 – Large Scale Programming. Today’s Goals  Make Britney sad through my color choices  Revisit issue of graph terminology and usage  Subgraphs,
Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree R 陳建霖 R 宋彥朋 B 楊鈞羽 R 郭慶徵 R
A Clustering Algorithm based on Graph Connectivity Balakrishna Thiagarajan Computer Science and Engineering State University of New York at Buffalo.
7.1 and 7.2: Spanning Trees. A network is a graph that is connected –The network must be a sub-graph of the original graph (its edges must come from the.
Graphs.
V Spanning Trees Spanning Trees v Minimum Spanning Trees Minimum Spanning Trees v Kruskal’s Algorithm v Example Example v Planar Graphs Planar Graphs v.
Introduction to Graph Theory
The countable character of uncountable graphs François Laviolette Barbados 2003.
Minimum Spanning Trees Featuring Disjoint Sets HKOI Training 2006 Liu Chi Man (cx) 25 Mar 2006.
Depth-First Search1 DB A C E. 2 Depth-first search (DFS) is a general technique for traversing a graph A DFS traversal of a graph G – Visits all the vertices.
Connectivity1 Connectivity and Biconnectivity connected components cutvertices biconnected components.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Ver Chapter 13: Graphs Data Abstraction & Problem Solving with C++
Depth-First Search Lecture 21: Graph Traversals
© 2006 Pearson Addison-Wesley. All rights reserved 14 A-1 Chapter 14 Graphs.
Introduction to Graph Theory Lecture 17: Graph Searching Algorithms.
Trees Thm 2.1. (Cayley 1889) There are nn-2 different labeled trees
Network Partition –Finding modules of the network. Graph Clustering –Partition graphs according to the connectivity. –Nodes within a cluster is highly.
Senior Project Board Implementation of the Solution to the Conjugacy Problem in Thompson’s Group F by Nabil Hossain Advisers: James Belk & Robert McGrail.
CSC 213 – Large Scale Programming Lecture 31: Graph Traversals.
November 22, Algorithms and Data Structures Lecture XII Simonas Šaltenis Nykredit Center for Database Research Aalborg University
Unit 11 Graphs (2) King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science Department.
Graphs ORD SFO LAX DFW Graphs 1 Graphs Graphs
Introduction to Algorithms
Graphs.
Lecture 12 Algorithm Analysis
Biconnectivity SEA PVD ORD FCO SNA MIA 11/16/2018 2:31 AM
Planarity Testing.
Elementary Graph Algorithms
CS 583 Analysis of Algorithms
Subgraphs, Connected Components, Spanning Trees
Breadth-First Search L0 L1 L2 C B A E D F 4/25/2019 3:12 AM
Biconnectivity SEA PVD ORD FCO SNA MIA 5/6/2019 5:08 PM Biconnectivity
Lecture 12 Algorithm Analysis
Biconnectivity SEA PVD ORD FCO SNA MIA 5/23/ :21 PM
Breadth-First Search L0 L1 L2 C B A E D F 5/14/ :22 AM
Lecture 10 Graph Algorithms
Breadth-First Search L0 L1 L2 C B A E D F 7/28/2019 1:03 PM
Presentation transcript:

A new linear algorithm for checking a graph for 3-edge-connectivity Feng Sun Advisor: Dr. Robert W. Robinson Committee: Dr. E. Rodney Canfield Dr. Eileen T. Kraemer

Outline Overview Concepts and definitions Analysis of separation pairs Test results

Graph Connectivity Applications Network reliability Planar graph Vertex Connectivity (κ) Edge Connectivity (λ) Our algorithm Check whether a graph is 3-edge-connected in O(m+n) time Based on Depth-first search Modified from the algorithm of Hopcroft and Tarjan to divide a graph into 3-vertex-connected components

An example of a 3-edge-connnected graph

Concepts Graph An ordered pair of disjoint sets (V, E), where V is the vertex set and E is the edge set. E is a subset of the set V (2) of unordered pairs from V. The order of a graph is |V| and the size of a graph is |E|. A graph is labeled if the integers from 1 through n are assigned to its vertices. An unlabeled graph is an isomorphism class of labeled graphs. Tree Acyclic connected graph A subgraph which contains all the vertices of a graph is the spanning tree of the graph Edge separator A minimal edge set S such that removal of S from a graph G disconnect G. A graph is k-edge-connected if every edge-separator has at least k edges. The edge connectivity of a graph G of order n ≥ 2 is the minimum cardinality of an edge-separator.

Concepts (cont.) Palm tree Let P be a directed graph consisting of two disjoint sets of edges denoted by v→w and v --→w. P is a palm tree if P satisfies the following properties : The subgraph T containing the edges v→w is a spanning tree of P. If v --→w, then w*→v. That is, each edge not in the spanning tree of P connects a vertex with one of its ancestors in T. The edges v --→w are called the fronds of P

Depth-first Search ALGORITHM DFS(G) 1 FOR each vertex v in V(G) 2 NUMBER(v) = FATHER(v) = 0; 3 time = 0; 4 DFS-VISIT(root); END ALGORITHM PROCEDURE DFS-VISIT(v) 1 NUMBER(v) = time = time FOR w in the adjacency list of v DO 3 { 4 IF NUMBER(w) == 0 THEN 5 { 6 mark vw as a tree edge in P; 7 FATHER(w) = v; 8 DFS-VISIT(w); 9 } 10 ELSE IF NUMBER(w) < NUMBER(v) and w != FATHER(v) THEN 11 mark vw as a frond in P; 12 }

Identifying separation pairs Three cases if a graph G is not 3-edge- connected Not connected Connected but not 2- edge-connected 2-edge-connected but not 3-edge-connected Separation pair

Two types of separation pairs in a palm tree Type 1: One tree edge, one frond Type 2: Two tree edges G1 a u v x (a) Type 1(b) Type 2 v d t w G1

Important values for identifying type 1 pair

An Expanded DFS PROCEDURE FIRSTDFS-VISIT(v) 1 NUMBER(v) = time = time + 1; 2 LOWPT1(v) = LOWPT2(v) = NUMBER(v); 3 ND(v) = 1; 4 FOR w in the adjacency list of v DO 5 { 6 IF NUMBER(w) == 0 THEN 7 { 8 mark vw as a tree edge in P; 9 FATHER(w) = v; 10 FIRSTDFS-VISIT(w); 10.1 IF ( LOWPT1(w) = w ) THEN 10.2 detect a type 1 separation pair, procedure stop; 11 IF LOWPT1(w) < LOWPT1(v) THEN 12 { 13 LOWPT2(v) = MIN{LOWPT1(v), LOWPT2(w)}; 14 LOWPT1(v) = LOWPT1(w); 15 } 16 ELSE IF LOWPT1(w) == LOWPT1(v) THEN 17 LOWPT2(v) = LOWPT1(w); 18 ELSE 19 LOWPT2(v) = MIN{LOWPT2(v), LOWPT1(w)}; 20 ND(v) = ND(v) + ND(w); 21 } 22 ELSE IF NUMBER(w) < NUMBER(v) and w != FATHER(v) THEN 23 { 24 mark vw as a frond in P; 25 IF NUMBER(w) < LOWPT1(v) THEN 26 { 27 LOWPT2(v) = LOWPT1(v); 28 LOWPT1(v) = NUMBER(w); 29 } 30 ELSE IF NUMBER(w) == LOWPT1(v) THEN 31 LOWPT2(v) = NUMBER(w); 32 ELSE 33 LOWPT2(v) = MIN{LOWPT2(v), NUMBER(w)}; 34 } 35 }

Identify type 1 separation pair a u w LOWPT1(w) LOWPT2(w) ≥ w x

Preparation steps for type 2 pair

Preparation Steps for type 2 pair (cont.) E(5) (i) Before (ii) After D(4) A(1) B(2) C(3) H(8) F(6) G(7) D(5) A(1) B(2) E(4) F(6) C(3) H(8) G(7) Decrease

Properties of the palm tree

Identify type 2 separation pair 2 u a 3 v b 1 x1 y1 y2 x2

Step to identify type 2 pair

The DFS to identify type 2 pair PROCEDURE PATHSEARCH-DFS(v) (input: vertex v is the current vertex in the depth-first search) 1 FOR w IN A(v) DO 2 { 3 IF vw is a tree edge THEN 4 { 5 IF vw is a first edge of a path THEN 6 { 7 IF LOWPT1(w) < LOWEST(v) and w is not A1(v) THEN 8 LOWEST(v) = LOWPT1(w); 9 add end-of-stack marker to PStack; 10 } 11 returnVal = PATHSEARCH-DFS(w); 12 IF returnVal == 0 THEN 13 return 0; 14 } 15 ELSE // vw is a frond 16 IF NUMBER(w) < LOWEST(v) THEN 17 LOWEST(v) = NUMBER(w); 18 } 19 WHILE (a, b) on PStack satisfies a <= NUMBER(v) < b and LOWEST(v) < a 20 remove (a, b) from PStack; 21 IF no pair deleted from PStack THEN 22 add ( LOWEST(v), A1(v) ) to PStack; 23 IF (a, b) is the last pair deleted from PStack THEN 24 add ( LOWEST(v), b ) to PStack; 25 WHILE (a, b) on PStack satisfies a <= NUMBER(v) < b and HIGHPT(v) >= b 26 remove (a, b) from PStack; 27 WHILE (a, b) on PStack satisfies a = v 28 { 29 IF ( b <= a or a == 0 ) THEN 30 delete (a, b) from PStack; 31 ELSE //we find type 2 pair {(FATHER(a), a), (FATHER(b), b)} 32 return 0; 33 } 34 IF ( FATHER(v), v) is a first edge of a path THEN 35 delete all entries on PStack down to and including end-of-stack marker; 36 return 1;

Cases for lines 20 and 26 a v w x b LOWEST(v) parent(LOWEST(v)) a’ If LOWEST(v) < a, (parent(LOWPT1(w)), LOWPT1(w)) and (parent(b), b) become the new potential separation pair. We use (b, lowest(v) ) to substitute (b, a) in the PStack. a v w b highpt(v) If hightpt(v) >= b, (a, b) will be deleted from PStack.

Implementation and Test Results General graph Check graphs generated by Nauty Numbers of labeled and unlabeled 3-edge-connected graphs up to order 11. Numbers of labeled and unlabeled 3-edge-connected blocks up to order 11. The above numbers for labeled graphs and for unlabeled 3-edge-connected blocks were provided by S. K. Pootheri. Compare with Z. Chen’s algorithm for higher order random graphs Feynman diagrams Compare with Qun Wang’s quadratic algorithm

Numbers of unlabeled and labeled 3-edge- connected graphs by order n

Numbers of unlabeled 3-edge-connected graphs by order n and size m

Average testing times and scaled times for two algorithms on random graphs For each 100 random graphs were generated and about half of them are 3-edge-connected The scaled time is the actual testing time divided by m+n

Comparison of running times and scaled times for 3-edge-connectivity

Comparison of running times for our linear algorithm and a quadratic algorithm on Feynman diagrams Use a simplified algorithm for Feynman diagram Feynman diagrams were generated by a program wrote by Dr. Robinson Q. Wang developed three algorithm for testing 3-edge-connectivity of a Feynman diagram. The quadratic algorithm is the best for order less than 12

Conclusions and future work A new linear algorithm for determining whether a graph is 3-edge-connected is presented. A variation of the algorithm was developed specifically for testing Feynman diagrams. Tests showed that the implementations are correct and also faster than the available alternatives. A promising future direction is to extend our algorithm to deal with fully dynamic 3-edge- connectivity problem.

Acknowledgements Dr. Robert W. Robinson Dr. E. Rodney Canfield Dr. Eileen T. Kraemer Dr. David K. Lowenthal Other professors, staffs and students in our department