Fully Dynamic Maintenance of k-Connectivity in Parallel

Given a graph G=(V, E) with n vertices and m edges, the k-connectivity of G denotes either the k-edge connectivity or the k-vertex connectivity of G. In this paper, we deal with the fully dynamic maintenance of k-connectivity of G in the parallel setting for k=2, 3. We study the problem of maintaining k-edge/vertex connected components of a graph undergoing repeatedly dynamic updates, such as edge insertions and deletions, and answering the query of whether two vertices are included in the same k-edge/vertex connected component. Our major results are the following: (1) An NC algorithm for the 2-edge connectivity problem is proposed, which runs in O(log n log(m/n)) time using O(n/sup 3/4/) processors per update and query. (2) It is shown that the biconnectivity problem can be solved in O(log/sup 2 n/) time using O(n/spl alpha/(2n, n)/logn) processors per update and O(1) time with a single processor per query or in O(log n log/sub n///sup m/) time using O(n/spl alpha/(2n, n)/log n) processors per update and O(logn) time using O(n/spl alpha/(2n, n)/logn) processors per query, where /spl alpha/(.,.) is the inverse of Ackermann's function. (3) An NC algorithm for the triconnectivity problem is also derived, which takes O(log n log/sub n///sup m/+logn log log n//spl alpha/(3n, n)) time using O(n/spl alpha/(3n, n)/log n) processors per update and O(1) time with a single processor per query. (4) An NC algorithm for the 3-edge connectivity problem is obtained, which has the same time and processor complexities as the algorithm for the triconnectivity problem. To the best of our knowledge, the proposed algorithms are the first NC algorithms for the problems using O(n) processors in contrast to /spl Omega/(m) processors for solving them from scratch. In particular, the proposed NC algorithm for the 2-edge connectivity problem uses only O(n/sup 3/4/) processors. All the proposed algorithms run on a CRCW PRAM.


Fully Dynamic Maintenance of k-Connectivity in Parallel
Weifa Liang, Senior Member, IEEE, Richard P. Brent, Fellow, IEEE, and Hong Shen AbstractÐGiven a graph q Y i with n vertices and m edges, the k-connectivity of q denotes either the k-edge connectivity or the k-vertex connectivity of q.In this paper, we deal with the fully dynamic maintenance of k-connectivity of q in the parallel setting for k PY Q.We study the problem of maintaining k-edge/vertex connected components of a graph undergoing repeatedly dynamic updates, such as edge insertions and deletions, and answering the query of whether two vertices are included in the same k-edge/ vertex connected component.Our major results are the following: 1) An NC algorithm for the 2-edge connectivity problem is proposed, which runs in ylog n logman time using yn QaR processors per update and query.
2) It is shown that the biconnectivity problem can be solved in ylog P n time using ynPnY na log n processors per update and yI time with a single processor per query or in ylog n log m n time using ynPnY na log n processors per update and ylog n time using ynPnY na log n processors per query, where XY X is the inverse of Ackermann's function.3) An NC algorithm for the triconnectivity problem is also derived, which takes ylog n log m n log n log log naQnY n time using ynQnY na log n processors per update and yI time with a single processor per query.4) An NC algorithm for the 3-edge connectivity problem is obtained, which has the same time and processor complexities as the algorithm for the triconnectivity problem.To the best of our knowledge, the proposed algorithms are the first NC algorithms for the problems using yn processors in contrast to m processors for solving them from scratch.In particular, the proposed NC algorithm for the 2-edge connectivity problem uses only yn QaR processors.All the proposed algorithms run on a CRCW PRAM.
Index TermsÐNC algorithms, 2-edge/vertex connectivity, 3-edge/vertex connectivity, dynamic data structures, parallel algorithm design and analysis, graph problems.A fully dynamic graph algorithm is one that allows edge insertions and deletions and recomputes a desired graph property quickly after each such update.A partially dynamic graph algorithm is one that allows edge insertion updates only.In this paper, we focus on the design of fully dynamic NC algorithms for maintaining the k-connectivity of graphs.Given a graph q Y i with n vertices and m edges, the k-connectivity of q refers to either the k-edge connectivity or k-vertex connectivity [18], which will be formally defined in Section 2.1.

Previous Related Results
k-connectivity of q is a basic property in graph theory with wide applications in robust routing, distributed computing, reliable communications networks design, etc.There have been extensive studies of algorithms for dynamically maintenance of the k-connectivity of graphs with k R. For example, Even and Shiloach [12] studied the connected component problem (k I) in the early 1980s.Frederickson [15] studied the minimum spanning tree problem by giving a fully dynamic algorithm with y m p time per update and yI time per query.
Eppstein et al. [10] improved Frederickson's algorithm by presenting an y n p logman algorithm, using a sparsification technique.Later, Eppstein et al. [11] improved their own algorithm further by an ylogman factor.Henzinger and King [25] gave an algorithm for fully dynamic maintenance of minimum spanning trees with y n Q p log n time per update and constant time per query.
Randomization has also been used to improve the time complexity of fully dynamic maintenance of connected components.Henzinger and King [24], [23] showed that a spanning forest can be maintained in ylog Q n expected amortized time per update, and the query can be answered in ylog na log log n time.The update time was further improved to ylog P n by Henzinger and Thorup [27].Since the initial submission of this paper in 1995, there has been further development in this topic.In particular, Holm et al. [28] recently gave an improved algorithm for the fully dynamic maintenance of connected components with ylog P n amortized time per update and ylog na log log n time per query and an improved algorithm for the fully dynamic maintenance of minimum spanning forests with ylog R n amortized time per update and ylog na log log n time per query, thus matching the previously best randomized bound and improving substantially the previously best deterministic bounds of y n Q p log n.Note that Holm et al.'s algorithm assumes that the initial graph is empty and the update time is the amortized time.Thus, a single insertion or deletion operation in their algorithm takes n time in the worst case.In the parallel setting, Ferragina [13] studied fully dynamic maintenance of connected components on an EREW PRAM provided only a small number of processors are used, and the proposed parallel algorithm requires y n log n p p I log f log log n time using yp processors per update, where p n log n IaP , f m n log n , and H `I. Das and Ferragina [8] and Ferragina [14] developed parallel algorithms for the fully dynamic maintenance of minimum spanning trees and connected components which requires ylog n time and the total of yn PaQ log m n work.Independently, Liang and McKay [35] also proposed parallel algorithms for the same problem which requires ylog n log m n time and yn PaQ processors.As Galil and Italiano [19] pointed out, the fully dynamic maintenance of 2-connectivity, however, is much harder than the fully dynamic maintenance of connected components because the maintenance of connected components only involves merging two connected components into one connected component or splitting a connected component into two connected components per update, whereas the maintenance of 2-edge/vertex connected components may need merging yn 2-edge/vertex connected components into one or splitting a 2-edge/vertex connected component into yn 2-edge/vertex connected components per update.Westbrook and Tarjan [45] presented the first partially dynamic algorithms for the maintenance of both 2-edge connected components and biconnected (2-vertex connected) components, which require ymmY n time for the maintenance of 2-connectivity of graphs when there are m queries and edge insertions.In other words, the algorithm takes ymY n amortized time per update or per query, where mY n is the inverse of Ackermann's function.Westbrook and Tarjan left an open problem as to whether there exists a sublinear time, fully dynamic algorithm for the 2-connectivity problem.Since then, finding a sublinear time algorithm for the problem has been a challenging task.Galil and Italiano [19] presented the first sublinear time algorithm for 2-edge connectivity, by using Frederickson's clustering technique and the other techniques.Their algorithm requires ym PaQ time.Later, Frederickson [16] improved this algorithm to y m p using an ambivalent data structure.Eppstein et al. [10], [11] further improved Frederickson's algorithm by developing y n p logman and y n p time algorithms, based on their sparsification technique.They also derived algorithms for the fully dynamic maintenance of biconnectivity and triconnectivity, which take yqY n amortized time per insertion or per query, and yn time per deletion, where q is the total number of queries made.Furthermore, Henzinger and King [24] generalized their randomization technique for connected components by giving an ylog S n expected amortized time bound per update.Recently, Holm et al. [28] extended their results for connected components by presenting an algorithm for the fully dynamic maintenance of 2-edge connected components.Their algorithm requires ylog R n amortized time per update.
The fully dynamic maintenance of biconnected components seems much harder than that of 2-edge connected components.There is a reduction technique [18] which can reduce a k-edge connectivity problem to a k-vertex connectivity problem, but the reverse reduction has not yet been found.In 1992, Rauch [40] presented the first fully dynamic algorithm for the maintenance of biconnected components.Her algorithm takes ym PaQ amortized time per update and yI time per query.She later improved her algorithm to yminf m p log nY ng using new data structures and the sparse certificate technique [41].In 1995, Henzinger and Poutre Â [26] further improved her result to y n log n p log m n .Later, Henzinger and King [23], [24] presented polylogarithmic time randomized algorithms for the fully dynamic maintenance of biconnectivity [23] using a novel decomposition of graphs and the randomization technique.Their algorithm requires yÁ log R n expected amortized time per update, where Á is the maximum degree of the graph.Holm et al. [28] further improved the above results by giving a deterministic algorithm, which takes ylog R n amortized time per update.
When k Q, Galil and Italiano [20] presented a partially dynamic algorithm for the maintenance of 3-edge connected components.Their algorithm takes yn qqY n time for a sequence of q queries and updates on an n-vertex graph.Independently, La Poutre Â et al. [34] presented a partially dynamic algorithm which has the same time bound as Galil Italiano [20].Later, Galil and Italiano [21] claimed that they developed a fully dynamic algorithm for the problem which requires ym PaQ time per update and per query by minor modifications to their 2-edge connectivity algorithm [19].Moreover, La Poutre Â [33] also proposed a partially dynamic algorithm for the maintenance of triconnected components, which needs yn qqY n time for a sequence of q queries and updates.As for k b Q, there are only a few results available.Kanevsky et al. [30] presented a partially dynamic algorithm for the maintenance of 4-vertex connected components which requires yqY n amortized time per update and per query provided that the graph is triconnected, where q is the number of operations performed.Dinitz [9] presented a partially dynamic algorithm for the maintenance of 4-edge connected components.Note that using Eppstein et al.'s [10], [11] sparsification technique and the above algorithms, the following results then follow easily: 1) fully dynamic maintenance of 3-edge connected components can be done in yn PaQ time per update and per query, 2) fully dynamic maintenance of triconnected components can be done in yqY n time per insertion or per query, and in yn time per deletion, and 3) fully dynamic maintenance of 4-vertex connected components can be done in ylog n time per insertion, in yn log n time per deletion, and in yI time per query.Surprisingly, we have not seen any NC algorithms for the fully dynamic maintenance of k-connectivity with k !P in the parallel environment.In particular, we have not seen any NC algorithms for the addressed problems using yn processors only.In this paper, we will focus on developing such NC algorithms for the problems for the first time.It must be mentioned that the previously known sequential algorithms except the algorithms by Henzinger and King [23], [24] and Holm et al. [28] are hardly parallelizable since they use the restricted clustering decomposition and depth-first search technique which are inherently sequential.The algorithms by Henzinger and King [23], [24] are Las Vegas type of randomized algorithms, which are incomparable to the deterministic algorithms, because the deterministic simulation of the randomized algorithms may require m amount of work.The algorithm due to Holm et al. [28] does guarantee that each update can be done in ylog R n amortized time, but the time complexity is amortized, which means that all the data structures must be rebuilt after undergoing m updates.The rebuild takes n time.In other words, it takes n time per update in the worst case.Therefore, even if their algorithm can be parallelized, n processors must be required in order to achieve a polylogarithmic time complexity per update in the worst case.

Our Contributions
In this paper, we deal with the fully dynamic maintenance of k-edge/vertex connectivity property of a graph in the parallel environment with k PY Q after undergoing an intermixed sequence of insertion, deletion, and query operations, which are described as follows: . SameConnComp(x,y): return true if vertices x and y are in the same k-edge/vertex connected component; otherwise, return false. .InsertEdge(x,y): insert a new edge between vertex x and vertex y. .DeleteEdge(x,y): delete an existent edge between vertex x and vertex y.We present NC algorithms for the fully dynamic maintenance of k-edge/vertex connected components in q for k PY Q by using yn processors in contrast to the usual m processors needed for computing these properties from scratch.Our major results are as follows: 1.An NC algorithm for the 2-edge connectivity problem is presented, which requires ylog n logman time using yn QaR processors per update and per query; 2.An NC algorithm for the biconnectivity problem is also given, which requires either ylog P n time using ynPnY na log n processors per update and yI time with a single processor per query or ylog n log m n time using ynPnY na log n processors per update and ylog n time with ynPnY na log n processors per query; 3.An NC algorithm for the triconnectivity problem is derived, which requires ylog n log m n log n log log naQnY n time using ynQnY na log n processors per update and yI time with a single processor per query; 4.An NC algorithm for the 3-edge connectivity problem is obtained, which has the same time and processor complexities as the algorithm for the fully dynamic maintenance of triconnectivity.To the best of our knowledge, the proposed algorithms for the above problems are the first NC algorithms that use only yn processors in contrast to m n processors for solving them from scratch.At the same time, it should be mentioned that the basic idea of the proposed algorithm for the fully maintenance of 2-edge connectivity comes from Galil et al.'s sequential algorithm, although, their algorithm by itself is not easily parallelizable.Our NC algorithm for this problem is achieved by replacing the sequential part of their algorithm with a highly parallelizable approach.
In this paper, the following three parallel computational models will be used: 1.An Exclusive Read and Exclusive Write (EREW for short) PRAM in which concurrent read and concurrent write are forbidden.2. A CREW PRAM in which Concurrent Read is allowed but only Exclusive Write is permitted.

A CRCW PRAM in which both Concurrent Read and
Concurrent Write are allowed, but the write conflicts are resolved arbitrarily.The remainder of this paper is organized as follows: In Section 2, we introduce some basic concepts with respect to the k-edge/vertex connectivity, such as the sparse k-edge/ vertex certificates, Galil et al.'s reduction technique [18], and Eppstein et al.'s sparsification technique [10].In Section 3, for the sake of simplicity, we consider the fully dynamic maintenance of 2-edge connected components in a connected graph.The data structures used for the maintenance are described and the algorithms for connectivity queries, edge insertions, and edge deletions are presented.In Section 4, we first extend the results in connected graphs to disconnected graphs and then present an improved NC algorithm for fully dynamic maintenance of 2-edge connectivity in general graphs.We finally discuss the fully dynamic maintenance of 3-edge connected components.In Section 5, we deal with the fully dynamic maintenance of biconnected components and triconnected components and we conclude our discussions in Section 6.

Definitions
q Y i is k-edge connected if it is still connected after deleting any k À I edges from it.Assuming that q contains no less than k I vertices, q is k-vertex connected if it is still connected after deleting any k À I vertices from it.If q is not k-edge/vertex connected, it contains k-edge/vertex connected components.Given a graph q and an integer k, a pair of vertices u and v in q is said to be k-edge connected if the removal of any k À I edges from q leaves u and v connected.This is an equivalence relationship and written as k , i.e., if a pair of vertices x and y is k-edge connected, we write x k y.The vertices in q are partitioned by this relationship into equivalence classes and each equivalence class is a k-edge connected component in q.
It seems much more complicated to define the k-vertex connected component in q with k b Q.Here, we only define this concept for I k Q, which will be used in this paper.Given a graph q Y i, let i I Y i P Y F F F Y i h be an edge partition of i into equivalence classes such that two edges e H and e HH are in the same equivalence class if and only if either 1) e H e HH , or 2) there is a simple cycle in q containing both e H and e HH .For all i, I i h, let i be the set of endpoints of the edges in i i .Then, the subgraph q i i Y i i is a biconnected component (or 2vertex connected component) in q.An edge contained in no cycle is a biconnected component by itself and is referred to as a bridge in q.A graph q without including any bridge is called 2-edge connected.If q contains bridges, then the removal of a bridge disconnects the graph.Usually, 2-vertex connectivity is called biconnectivity and a biconnected component is called a block.If, for every pair of vertices, there are two vertex disjoint paths in q between them, then q is called a biconnected graph.It is well known [1] that q is not biconnected if and only if there is a vertex v P whose removal disconnects q.Such a v is called an articulation point of q.
Let fY g be a pair of vertices in a biconnected graph q.Suppose the edges in q are partitioned into equivalence classes i I Y i P Y F F F Y i p such that two edges, which lie on a common path not containing any vertex of fY g except as an endpoint, are in the same class.The classes i i are called the separation classes of q with respect to fY g.If there are at least two separation classes, then fY g is a separation pair of q unless 1) there are exactly two separation classes, one class consists of a single edge, or 2) there are exactly three classes, each consisting of a single edge.If q is a biconnected graph that does not contain a separation pair, then q is triconnected.Let fY g be a separation pair of q and i I Y i P Y F F F Y i p be the separation classes of q with respect to fY g.Let i H k iI i i and i HH p ikI i i and ji H j !P and ji HH j !P. Let q I i H Y i H fY g and q P i HH Y i HH fY g, where i H and i HH are the sets of endpoints of edges in i H and i HH .q I and q P are called the split graphs of q with respect to fY g.Replacing q by the two split graphs is called splitting q.The new edges Y added to both q I and q P are called virtual edges.If q is biconnected, then any split graph of q is also biconnected.Suppose q is split, the split graphs are split and so on, until no more splits are possible.The graphs constructed in this way are called split components of q.The split components of q are of three types: triple bonds of form fY gY fY Y Y Y Y g, triangles of form fY Y gY fY Y Y Y Y g, and triconnected graphs.The split components of q are called triconnected components in q.A triconnected component usually is also called 3-vertex connected component and 3-vertex connectivity is called triconnectivity.
An inverted tree Y i is a directed tree rooted at a distinguished vertex r, r P , such that for every other vertex v (v T r) there is a parent pointer pointing to the parent p v of v, an edge hvY p vi P i , and p r r.Given an inverted tree and any two vertices v and u in it, the lowest common ancestor vgeuY v of u and v is the first common vertex on the paths from u (v) to the root.It is known that every LCA query in can be answered in yI time using one processor on an EREW PRAM provided that is properly preprocessed.The preprocessing takes ylog n time and uses yn processors on an EREW PRAM if contains n vertices [42].Note that all the trees used in this paper are maintained as inverted trees.

Transformation Technique of Graphs
We now introduce a technique to transform a general graph with arbitrary degree into a graph with bounded degree.It is well known [22] that a graph q Y i can be transformed to another graph q H H Y i H such that every vertex in q H has no degree greater than three.The transformation proceeds as follows: For each vertex u of degree d !R in q, assume that v H Y v I Y F F F Y v dÀI are the adjacent vertices of u in q.Then, q H is generated by replacing u with new vertices u H Y u I Y F F F Y u dÀI , adding edges u i Y u iI mod d and edges u i Y v i to q H , H i d À I.One important property of the transformation is that it preserves the 2-edge connectivity of q [19].That is, if two vertices are in a 2-edge connected component in q, then they will also be in the same 2-edge connected component in q H . Otherwise, they are still not in the same 2-edge connected component in q H .It is clear that q H contains ym n edges and vertices and each vertex has degree no greater than three.Without loss of generality, in Section 3, we assume q Y i is a graph with ym n vertices and each vertex has a degree no greater than three when dealing with the 2-edge connectivity.Otherwise, the transformation can be applied, which takes ylog n time using ym n processors on an EREW PRAM.

The Sparse k-Edge (k-Vertex) Certificate
Let q Y i be an arbitrary graph.An edge separator in q is such a subset of edges that the removal of the edges in it will disconnect q.A sparse k-edge certificate of q is a subgraph r in q containing ykn edges and every edge separator in r of size less than k is also an edge separator in q.A sparse k-vertex certificate of q can be defined similarly.In the following, we show how to find a sparse k-edge/ k-vertex certificate of q [38], [4].
Let I be a maximal spanning forest in q and i be a maximal spanning forest of graph q i q À iÀI jI j for i b I. Denote by i i jI j , the union of the i maximal spanning forests I Y P Y F F F Y i .The graph k is a sparse k-edge certificate of q and has the following property: Lemma 1 [38], [39].The graph k is l-edge connected if and only if q is l-edge connected for any integer l with I l k.
Lemma 1 always holds no matter whether q is a simple graph or not.We now introduce the scan-first search technique [4] on q which will be used to find a sparse k-vertex certificate of q.Definition 1.A scan-first search in a connected undirected graph q Y i starting from a specified vertex r is a systematic way of visiting the vertices in q.To scan a vertex is to visit all previously unvisited adjacent vertices of that vertex.At the beginning of the search, only r is visited.Then, the search iteratively scans an already visited but unscanned vertex until all vertices are scanned.
If q is disconnected, a scan-first search spanning forest of q is then obtained by applying the scan-first search on each connected component in q.Cheriyan et al. [4] presented an efficient parallel algorithm for finding a scan-first search forest in q, which proceeds as follows: It first finds an arbitrary spanning tree in q.It then traverses by labeling the vertices with their preorder numberings in .It finally constructs the following scan-first tree : Let v be the parent of v in and xv be the set of adjacent vertices of v in q; v is such a vertex in xv that it has the smallest preorder numbering for every v P , v T r.
Lemma 2 [4].For a graph with n vertices and m edges, a scanfirst search spanning forest can be found in ylog n time using gnY m processors on a CRCW PRAM, where gnY m is the number of processors used to find spanning trees in all connected components in ylog n time.
Note that, currently, the best result of gnY m is ym nmY na log n on a CRCW PRAM [6].With the above preparation, the sparse k-vertex certificate of q is obtained as follows: For i IY PY F F F Y k, let i i be the edge set of a scan-first search spanning forest in graph q iÀI Y i À i I F F F i iÀI and q H Y i.Then, the graph g k i I F F F i k is a sparse k-vertex certificate of q, which contains n vertices and no more than kn À I edges.
Lemma 3 [4].The graph g k defined is l-vertex connected if and only if q is l-vertex connected for any integer l with I l k. [10] is based on a certificate concept.Before introducing the technique, we reproduce some of the definitions which are fundamental to the technique.

Eppstein et al.'s sparsification technique
Definition 2. For any graph property and graph q Y i, a certificate for q is a graph q H such that q has the property if and only if q H has the property.
Definition 3.For any graph property and a graph q Y i, a strong certificate for q is a graph q H on the same vertex set such that, for any r, q r has the property if and only if q H r has the property.
Definition 4. Let e be a function mapping graphs to strong certificates.Then, e is stable if it has the following two properties: 1) for any graphs q and r, eq r eeq r; 2) for any graph q and edge e P i, eq À feg differs from eq by yI edges.
The sparsification technique is described as follows: We partition the edges in q Y i into dmane groups, all except one contain exactly n edges.The remaining group, called the small group may contain between 1 and n edges.When inserting an edge into q, we place it into the small group.When deleting an edge from a group, we move another edge from the small group into the group, to keep the group size invariant (i.e., n edges exactly).If deleting the last edge in the small group, we remove the small group entirely and, if inserting an edge to the small group while there are already n edges in it, we start a new small group.Having finished edge grouping, we now establish a complete binary tree f with dmane leaf nodes, which correspond to the dmane groups.f is called the sparsification tree in which every node corresponds to a subgraph formed by the edges in the graphs at the leaf nodes of f that are the descendants of the node.For every node in f , we maintain a sparse certificate for it.The sparse certificate at a leaf node is obtained by applying the procedure of finding a sparse certificate to the subgraph consisting of the edges in the corresponding group.The sparse certificate at a nonleaf node is the union of the sparse certificates of its two children nodes.
Each update in q will cause either a single leaf node of f to split or two leaf nodes to merge in the worst case.Since only the edge insertions and deletions are allowed, the number of edges in every group except the small group, will never be changed.When an edge is inserted or deleted, only yI groups are involved.For each of these groups and its ylog m n ancestor nodes in f , we maintain the sparse certificates of these nodes dynamically.As results, the sparse certificate of q is the sparse certificate at the root of f .

The Reduction Technique
A reduction technique due to Galil and Italiano [18] can reduce a k-edge connectivity problem in a graph q Y i to a k-vertex connectivity problem in another graph 9 k q 9 Y 9i and 9 k q is constructed as follows: For every vertex v in q, there are k À P vertices 9v I Y 9v P Y F F F Y 9v kÀP in 9 k q, referred to as node-vertices of 9 k q.For every edge e in q, there is a vertex 9e in 9 k q, referred to as arcvertex of 9 k q.Let v be any vertex of q and u H Y u I Y F F F Y u dÀI be the adjacent vertices of v in q, and e i vY u i be an edge in q, H i d À I.Then, edges 9e i Y 9e iI mod d and 9e i Y 9v j are in 9 k q, H i d À I, H j k À P. Notice that 9 k q is obtained from q by replacing v and its incident edges e H Y e I Y F F F Y e dÀI by a wheel with k À P hubs and vertices 9e H Y 9e I Y F F F Y 9e dÀI .This implies that 9 k q has ym kn vertices and ykm edges.Clearly, 9 k q can be constructed in ylog n time using ykm n processors on an EREW PRAM if q contains yn vertices and ym edges.The graph 9 k q has the following property: Following Theorem 1, to check whether two vertices, x and y in q, are k-edge connected can be done through checking whether their corresponding node-vertices 9x I and 9y I in 9 k q are k-vertex connected.

MAINTAINING 2-EDGE CONNECTED COMPONENTS IN CONNECTED GRAPHS
For the sake of simplicity, in this section, we assume that q Y i is connected and contains ym n vertices and edges.Every vertex in q has a degree no greater than three.
Otherwise, the transformation technique will be applied in order to obtain a graph with the degree no more than three.Fig. 1a shows such a graph.

Overview
We present our results in the following order: First, we decompose q into a number of disjoint connected subgraphs and build data structures for each of them to keep the information on the subgraph.Also, we build a data structure to keep the information among the subgraphs, which is referred to as the compact representation q of q. q is the super graph of q, defined as follows: Each vertex in q corresponds to a subgraph of q.There is an edge between two vertices in q if there are edges in q between the vertices in the two corresponding subgraphs.For any two subgraphs in q, we use two data structures to keep the edge information between them.Then, we assume that all the data structures for 2-edge connected components in each subgraph have been already built.Now, consider a query which asks whether two given vertices x and y are in the same 2-edge connected component in q.To answer this query, we proceed as follows: Let x be in g x and y be in g y .We check whether g x and g y are in the same 2-edge connected component in q.If yes, then x and y are in the same 2-edge connected component in q.Otherwise, for every articulation point g in q separating g x from g y , we examine the induced subgraph of q by the vertices in g to see whether there is a potential bridge internal to the subgraph separating x from y in q.If yes, then x and y are not in the same 2-edge connected component in q.Finally, we deal with the fully dynamic maintenance of the data structures when there is an edge insertion or deletion.Note that each insertion/deletion only involves updating a constant number of subgraphs and q.Accordingly, we only update those involved subgraphs and q instead of the entire graph q, which is much cheaper in terms of the maintenance cost because of the smaller sizes of these subgraphs and q compared to q.Therefore, it is possible to reduce the maintenance cost to respond the updates and queries.
The rest of this section is organized as follows: Section 3.2 introduces the data structures that the proposed algorithm uses and Section 3.3 presents algorithms for constructing the data structures.Section 3.4 proposes an algorithm for query processing, using the proposed data structures.Section 3.5 shows how to maintain the data structures efficiently when there are edge insertions and deletions.

Data Structures for 2-Edge Connected Components
The proposed algorithm, basically, is a parallel implementation of Galil and Italiano's algorithm [19].Therefore, most data structures used in their algorithm are adopted.Let q Y i be a connected graph with the maximum degree three.The vertex cluster partition of q is described as follows: Following the vertex clustering idea by Frederickson [15], the vertex set is partitioned into I Y P Y F F F Y p disjoint subsets such that 1) uaP j i j dQuaPe for all i, I i p and 2) the induced subgraph of q by the vertices in i is connected, where u is a parameter to be determined later.p iI i and p ymau because q contains ym n vertices and each vertex in it has a degree no greater than three.Each vertex subset i is a vertex cluster (or cluster for short) of q.The size of a cluster is the number of vertices in it.However, the size of each cluster is yu.For example, a spanning tree in q is shown in Fig. 1b.The vertex set of q is partitioned into two vertex clusters g I fIY PY QY RY SY IIg and g P fTY UY VY WY IHg with u R.

Data Structures Pertinent to a Vertex Cluster g
Induced Subgraph qg of g.Let g be a vertex cluster.An edge in q with both its endpoints in g is said to be internal to g while an edge in q with only one endpoint in g is said to be incident to g.The induced subgraph of q by the vertices in g is denoted by qg.For the above example, qg I is shown in Fig. 2a.Edge PY R in q is internal to g I while edge RY T in q is incident to g I .
Full Representation p g of g.The full representation p g of a vertex cluster g is a simple graph, which consists of qg a vertex for each vertex cluster adjacent to g and the edges incident to g.In other words, the vertex set of p g consists of the vertices internal to g and the corresponding vertices of the vertex clusters which are incident to g.The edge set of p g is composed of all the edges in q internal and incident to g. Fig. 2b shows p g I , where g P is the cluster adjacent to g I .
Tree Representation g of g.The tree representation g of a vertex cluster g is a tree in which the edges are the bridges in qg and the vertices are the 2-edge connected components in qg.For a given qg I , in Fig. 2a, the tree representation g I of g I is shown in Fig. 3a, where vertices 1, 2, and 3 are in a 2-edge connected component called , vertices 4, 5, and 11 are in the 2-edge connected components called , , and d, respectively.

Edge Set Presentation between Two Vertex Clusters
Given two clusters g i and g j , let i iYj fe I Y e P Y F F F Y e h g be a subset of i in which the two endpoints of every edge are in g i and g j , respectively.The edges in i iYj are represented by two data structures: One is for g i , named ig i Y g j , and the other is for g j , named ig j Y g i .Let be an endpoint set of the edges in i iYj , which is a subset of g j , then ig i Y g j fy j y is a 2-edge connected component vertex in g j , including x and x P g.Therefore, ig i Y g j is a vertex subset of g j .In other words, ig i Y g j contains those vertices of g j that, for each such vertex u, there is at least an edge xY y P i iYj incident to u, where x P g i , y P u, and u is a 2-edge connected component in qg j .ig i Y g j is represented by a balanced binary search tree and the key to access a vertex in it is the preorder numbering of the vertex in g j .For the example, in Fig. 1b, there are two vertex clusters g I and g P .i PYI fRY TY SY TY IIY IHg.ig P Y g I fY Y dg.Fig. 3b shows ig P Y g I , where preorderx is the preorder numbering of x in g I .

Super Graphs and Equivalent Graphs
The super graph q of q is a multigraph defined as follows: Each vertex in q is a vertex cluster.There is an edge  between two vertex clusters g i and g j if ji iYj j I and there are two edges between them if ji iYj j !P. For example, the graph in Fig. 4 is a super graph of a graph q.
A simple graph qY i, derived from q, is defined as follows: fg i j g i is vertex lusterg fv iYjYI Y v iYjYP jthere re two edges in q etween g i nd g j gY where v iYjYk is an artificial vertex, k IY P.
i fg i Y g j jthere is only one edge in q etween g i nd g j g fg i Y v iYjYk Y v iYjYk Y g j jthere re two edges etween Thus, the vertex set of q is a subset of the vertex set of q.Graph qY i is called the equivalent graph of q in the sense that they both have the same sets of articulation points and bridges.Assume that q contains m H edges and n H vertices.Then, qY i contains no more than Pm H edges and n H m H vertices.For example, the graph in Fig. 5a is the equivalent graph of a super graph shown in Fig. 4.
From now on, we assume that there is no big difference between q and q with respect to the articulation points and bridges.The purpose that we here introduce the equivalent graph q for q is to make Tarjan and Vishkin's parallel algorithm for finding biconnected components can be applied, which is only applicable for simple graphs.

Construction of Data Structures
We now show how to construct the defined data structures in parallel.In order to obtain a vertex cluster partition of q, a spanning tree Y i of q is generated, using any efficient parallel algorithm such as the algorithm by Awerbuch and Shiloach [2].Assume has already been built and stored as an inverted tree.Our approach for the vertex cluster partition of q is based on the following lemma due to Lipton and Tarjan [37].
Lemma 4 [37].Given an n-vertex tree with the maximum degree three, there is a vertex partitioning by removing exactly one edge from the tree.As the result, the tree is separated into two subtrees and the number of vertices in each subtree is between naQ and dPnaQe.
The vertex cluster partition of q then can be obtained as follows: Lemma 5. Given an inverted tree with m vertices and the maximum degree three, partition its vertices into mau vertex clusters such that every vertex cluster contains yu vertices.This can be done in ylogmau time using ym processors on an EREW PRAM, where m !QuaP, mau is the number of clusters, and is constant.
Proof.Let p be a forest of inverted trees.Initially, p f g.
For each tree H P p, we proceed as follows: If the number of vertices n I in H is between uaP and QuaP, we do nothing about it.Otherwise, traverse H by a Eulerian tour and make it into a linked list v. Delete such an edge in v that the two resulting subtrees have almost the same Fig. 4. The super graph q of a graph q.
Fig. 5.The equivalent graph q of q and the resulting graph through replacing a vertex cluster g P in q by p g P .(a) The equivalent graph q of a super graph q.(b) Replace g P and its artificial adjacent vertices by p g P in q.
number of vertices (one has n I aQ vertices and the other has Pn I aQ vertices in the worst case).The existence of such a partition is guaranteed by Lemma 4. Remove H from p and add the two new trees to p .Repeat the above procedure on p until the size of every tree in p is between uaP and QuaP.There are ylogmau calls for the procedure.As a result, every tree in p is a vertex cluster of q because its size is between uaP and QuaP and the tree is a connected subgraph in q.Therefore, the vertex cluster partition can be done in ylog m time using ym processors on an EREW PRAM [31] because the size of the resulting tree is reduced by one third at least for each procedure call, compared with the size of its immediate predecessor.t u Note that the restricted vertex cluster partition by Frederickson cannot be applied here because it uses the depth-first-search technique which seems highly sequential.Furthermore, although the algorithms for finding a spanning tree and a vertex cluster partition take ylog n time using ym n processors and ylogmau time using ym processors, respectively, they are only done once.In the design of dynamic algorithms, the time spent for this part is called preprocessing time, which is not taken into account as part of the dynamic maintenance cost for the operations including insertions, deletions, and queries.
Given a vertex cluster partition of q, the defined data structures are constructed as follows: For a vertex cluster g, the graph qg can be constructed in yI time using yu processors on a CRCW PRAM because qg contains yu vertices and edges and the degree of each vertex in it is constant.Since each vertex cluster g contains yu vertices and each vertex in q has a degree no greater than three, then the full representation p g of g contains yu vertices and edges.p g can be constructed in ylog u time with yu processors using the adjacency lists of those vertices in q that are also in g and the vertex cluster partition of q.Note that the maximum degree of the vertices in p g is yu, not a constant.The tree representation g of g can be obtained by the following lemma: Lemma 6.The full tree representation g of a vertex cluster g can be constructed in ylog u time using yu processors on a CRCW PRAM.
Proof.We here provide a constructive proof.We know that qg is a simple graph.First, find all biconnected components in qg by applying Tarjan and Vishkin's algorithm [44].This takes ylog u time with yu processors on a CRCW PRAM because qg contains yu vertices and edges.Then, find all bridges in qg.The edge in a biconnected component consisting of one edge only is a bridge in qg, which can be found in yI time with yu processors after all biconnected components in qg have been found.Let f be the set of bridges in qg.Let q H g be the resulting graph after removing the edges in f from qg, which can be done in yI time with yu processors because of the constant degree of each vertex in qg.Finding connected components in q H g, which in fact are the 2-edge connected components (fgs) in qg takes ylog u time using yu processors on a CRCW PRAM [43].Finally, use the vertex in fg with the smallest index to label all the vertices in it.The fg is then represented by that vertex.Thus, all the vertices in the fg have a unique representative.Let h be such a labeling function, i.e., hu v for all u P fg, where v is the vertex in fg with the smallest index.
Let HH be a spanning tree of qg.We now construct the tree g.Let p g v be the parent of v in g.Then, the vertex set of g consists of all 2-edge connected components in qg.The edges in g are defined as follows: Initially, set p g hv X v for all v P fg.Then, for every edge xY y in f, assign p g hx X hy if y is the parent of x in HH ; p g hy X hx otherwise.This can be done in yI time with yu processors because f contains yu edges. t

u
Given an inverted tree g i of g i , assigning every vertex in g i a preorder numbering takes ylog u time using yu processors on an EREW PRAM [31].Then, all ig j Y g i s can be constructed in ylog u time using yu processors by sorting the preorder numbering of vertices in increasing order because the degree of each vertex in qg i is no more than three, assuming that g j is a vertex cluster adjacent to g i .
The super graph q can be constructed in yI time using ymau P processors because q contains ymau vertices.Thus, the equivalent graph q of q can be constructed in the same time and processor bounds because q contains ymau P vertices and edges.
Consequently, the data structures pertinent to a vertex cluster g can be maintained in ylog u time using yu processors and the data structures for q and q can be maintained in ylogmau log u time using ymau P processors on a CRCW PRAM, which will be proven in Section 3.4.

The Algorithm for Queries
Given a pair of vertices x and y, the query is about whether x and y are in the same 2-edge connected component in q.Instead of using q, an auxiliary graph q xYy will be used to answer the query.Let g x and g y be the vertex clusters containing x and y, respectively.The simple graph q xYy is obtained from q through replacing vertices g x , g y and their adjacent artificial vertices and the edges incident to them by the full representations p g x and p g y of g x and g y .For example, Fig. 5b shows the resulting graph after replacing g P and its adjacent artificial vertices in q in Fig. 5a by its full representation p g P .Now, assume that x and y are not in the same 2edge connected component in q.Then, there must be at least one bridge e P i in q separating x from y and any such bridge can be one of the following two types: 1) If e is either internal to g x , or g y , or an edge between two different clusters; 2) if e is internal to a vertex cluster g with g T g x and g T g y .To check these two types of bridges, we have the following theorem: Theorem 2 [19].Let x and y be any two vertices in q.Then, the following is true: 1) e is a Type 1 bridge in q if and only if the corresponding edge is a bridge in q xYy ; 2) if e is a Type 2 bridge in q separating x from y and e is internal to a cluster g (g T g x and g T g y ), then g is an articulation point in q xYy .
Following Theorem 2, the checking algorithm proceeds as follows: It checks Type 1 bridges in q xYy first.If there is no Type 1 bridge, then it checks Type 2 bridges.If no Type 2 bridge exists, then, x and y are in the same 2-edge connected component in q; otherwise, x and y are in the different 2-edge connected components in q.The rest of this section, therefore, focuses on checking the two types of bridges.However, Type 1 bridge can be easily detected by the following lemma: Lemma 7. Given a simple connected graph with n I vertices and m I edges, to determine whether there exist bridges in any path between two given vertices takes ylog n I time using yn I m I processors on a CRCW PRAM.
Proof.First, find all biconnected components in the graph by applying Tarjan and Vishkin's algorithm and identify those biconnected components consisting of one edge only (the edges are the bridges of the graph).Let f be the set of such edges.Then, find a spanning tree in the graph by applying any efficient spanning tree algorithm and identify the edges in path % in between the two given vertices.Finally, if there is an edge in both f and %, then it is a bridge of the graph separating the two vertices.The time spent for finding biconnected components is ylog n I and the number of processors used is ym I n I .Constructing f takes yI time using yn I processors.can be found in ylog n I time using ym I n I processors.All the edges in % can be identified in ylog n I time using yn I processors.Therefore, all the bridges in the graph separating x from y can be found in ylog n I time using ym I n I processors on a CRCW PRAM.

t u
As a result, Type 1 bridges in q between x and y can be found in ylog u logmau time using yu mau P processors on a CRCW PRAM because q xYy contains yu mau P vertices and edges by Lemma 7.

Type 2 Bridge Checking
We now deal with Type 2 bridges.We first introduce the following notions and notations for later use: Let a vertex cluster g be an articulation point in q xYy separating x and y.Then, g is also an articulation point in both q and q separating g x from g y by the definition of equivalent graphs.Let eg f I Y P Y F F F Y t g be a set of vertex clusters in which each vertex cluster j in q is adjacent to g, I j t and t !P. Let I Y P Y F F F Y s be the s connected components in the resulting graph q À fgg after the removal of g and the edges incident to it from q, where each vertex in i represents a vertex cluster, I i s.Without loss of generality, let I f I Y P Y F F F Y p g be the connected component containing g x , P f I Y P Y F F F Y q g be the connected component containing g y , and be a connected component containing the vertex clusters in eg À I P , Q i s, where lI , l P , and iYj are the vertex clusters, I l I p, I l P q, I j ri, and Q i s.Clearly, p q s iQ ri t.Given the tree representation g of g and an edge e in it, let I g and P g be the resulting subtrees after the removal of e from g.The connected component i ( f iYI Y iYP Y F F F Y iYri g) defined is said to be compatible with e if all the edges between iYj and g, I j ri, are incident to either I g or P g, but not to both, Q i s.For example, the connected component Q , shown in Fig. 6a is compatible with edge uY v, but the connected component R is incompatible with edge Y d, which is explained as follows: There are two edges, v I Y v and v P Y v , in q such that both v I P I and v P P P while i is a vertex cluster in R , i IY P. Let and be the 2-connected components in qg containing endpoints v and v of the two edges and I g and P g be the resulting trees including and d after the removal of Y d from g.We then have P I g, but P P g while both v I P I in R and v P P P in R .Following the definition, R is incompatible with edge Y d.
Let e I Y e P Y F F F Y e l be any l clusters in q adjacent to cluster g, l b H.Then, ie i Y g T Y, for all i, and color each vertex in ie i Y g with the color blue, I i l.Denote by !eI Y e P Y F F F Y e l a vertex in g which is the root of a subtree containing all the blue vertices but no other subtree rooted at a proper descendant of !eI Y e P Y F F F Y e l also contains all the blue vertices.In other words, !eI Y e P Y F F F Y e l is such a vertex in g that all the edges between e i and g are incident below it, I i l.
Here, ªbelowº means that a vertex is included in a subtree of g rooted at !e I Y e P Y F F F Y e l .For example, given two clusters e I and e P adjacent to g, shown in Fig. 6b, vertex w is !eI Y e P , but vertex f is not because the subtree rooted at f does not include the blue vertices and e in ie P Y g, where Y Y , d, and e are blue vertices in g.
Recall that g x and g y are the clusters including vertices x and y which are adjacent to g, i P I , and j P P , I i p and I j q.A vertex v in g is colored red if there is an edge between i and g incident to v, I i p.Similarly, a vertex u in g is colored black if there is an edge between j and g incident to u, I j q.Define the top-red vertex & as !I Y P Y F F F Y p and the top-black vertex as !I Y P Y F F F Y q .We now check Type 2 bridges.Let g be an articulation point in q xYy separating x from y.Then, a Type 2 bridge internal to g separating x from y in q may exist.Our objective is to find the bridge if it exists.The intuition behind the algorithm is as follows: Assume that there is an edge e uY v in g and the corresponding edge of e in q is a bridge separating x from y.Let I g and P g be the two subtrees including u and v after the removal of e from g.Following the definition of g x and g y , every path in q between x and y must have the following structure.It starts with a path outside of g ending at a vertex of g that corresponds to a red vertex in g.It ends with a path outside g starting at a vertex of g that corresponds to a black vertex in g.Since the corresponding edge of e internal to g is the bridge of q separating x from y, then there is a path in q from x to y containing the corresponding edge of e.Thus, e satisfies the following two conditions: 1) e must be in a path in g between a red vertex and a black vertex and 2) each i is compatible with e, Q i s.In other words, for a given i , all the edges between i and g are incident to either I g or P g, but not to both, Q i s.The query algorithm, thus, is to check whether there is such an edge e in g in order to determine whether there is a bridge in q separating x from y.We have the following lemma: Lemma 8 [19].Let g be a vertex cluster that is an articulation point in q xYy separating x from y.There is a bridge inside g separating x from y in q if and only if there is an edge e in g that satisfies the following two conditions: 1) The removal of e separates red vertices from black vertices and 2) each connected component i is compatible with e, Q i s.
Given & and in g, let v vgeY & be the lowest common ancestor of & and in g.Condition 1 of Lemma 8 can be further decomposed into four cases which are expressed in the following lemma, depending on the relative positions of the three vertices &, , and v in g: Lemma Lemmas 8 and 9 imply that we only need to check whether there is an edge e in % &Y of g separating red vertices from black vertices and every i is compatible with e, Q i s, in order to check whether there is a bridge inside g separating x from y in q.The algorithm proceeds as follows: It first considers all the edges between g and the clusters in I and P .If there is no edge e in % &Y separating red vertices from black vertices in g (Case 1), then there is no bridge inside g separating x from y in q and the query is answered.Otherwise, it examines Cases 2-4 of Lemma 9. Here, we only deal with Case 3. Case 4 is analogous while Case 2 can be dealt by checking the edges in two paths % &Yv and % Yv in g, respectively, using the very similar fashion.However, the algorithm for Case 3, due to Galil and Italiano, is highly sequential and, therefore, hard to parallelize.A parallel algorithm for Case 3 is proposed below.
Assume that r is the root of g and each vertex v in g has a preorder numbering preorderv.
where cluster iYj P i .If some i is not in path % &Yr of g between & and r, then all the edges between iYj and g are incident to one of the two subtrees, I g and P g, after the removal of any edge e in % &Y from g for all j, I j ri.This means that i is always compatible with e in g for any edge e in % &Y and all the edges between iYj in i and g do not help determine whether e separates red vertices from black vertices in g.So, discard all such i s that are not in path % &Yr for further consideration, Q i s. i .Thus, each cluster g i H P H i has a label H i , H i s H .The checking of Case 3 is implemented through constructing two auxiliary graphs q i first, i IY P, and then using the graphs to check whether there is an edge in % &Y in g satisfying the two conditions in Lemma 8.The objective of constructing q I and q P is to find a maximal subpath % &Y H i H of % &Y including & such that no edge in it can satisfy the two conditions in Lemma 8.
The auxiliary graph q I I Y i I is constructed as follows: There is an edge H i Y H j P i I if and only if 1) there is a cluster g i H P H i and a cluster g j H P H j and i i H Yj H T Y or 2) there is a cluster g j H P H j and there is an edge between g j H and g incident below H i in g.Fig. 7a illustrates Condition (2) in the construction of q I , where u represents a 2-edge connected component in qg.There is an edge between g j H and g incident to u which is below H i , and u P g.It is obvious that for a given pair of vertices H i and H j in q I , if either Condition (1) or Condition 2 holds, then there is an edge in q I and a corresponding path % H i Y H j in g in which no edge can satisfy the two conditions in Lemma 8 because there are some H l s which are incompatible with e for every edge e in % H i Y H j .Let gg be a connected component in q I I Y i I in which H l and H h are the two vertices with the smallest and the largest indexes l and h.In case gg contains only one vertex, then l h.Clearly, H lY h s H .We assign every vertex v P gg a pair of labels, l and h.Let lY h represent a closed interval with l h.Denote by l i Y h i the pair of labels assigned to H i .Then, we have the following lemma: Lemma 10.Let gg be a connected component in q I I Y i I and every vertex in it is labeled with a pair of labels l i and h i as above.Then, there are H j s, which are incompatible with e for every edge e in path % H Proof.Let gg be a connected component in q I in which every vertex has been labelled with l i and h i .Then, the vertices H li and H hi are included in gg by the definition.Following the above discussion, we know that there is no edge in % H Y H in g satisfying the two conditions in Lemma 8 for every edge H Y H P i I in q I by the construction of q I and l i Y h i .Thus, every edge in q I corresponds to a subpath of % &Yr in g in which no edge satisfies the two conditions in Lemma    Proof.Let gg H be a connected component in q I consisting of vertices Assume that these vertices are sorted by their preorder numberings in g in decreasing order, i.e., preorder H ij b preorder H ijI and I j k À I.Then, there is no edge in path in g satisfying the two conditions in Lemma 8, which is derived by Lemma 10 directly.
Let gg i and gg j be the two connected components in q I and l i Y h i and l j Y h j the pairs of labels for them.If l i Y h i l j Y h j T Y, we can distinguish four cases: in g satisfies the two conditions in Lemma 8.

l i `lj and h i `hj . There is no edge in
3. l i `lj but h i b h j .This case is similar to Case 1, omitted.4. l i b l j and h i b h j .This case is similar to Case 2 and omitted. is the union of the subpaths derived from the corresponding edges in the connected component including & in q P .t u The example, shown in Fig. 8, illustrates the idea used in the proof of Lemma 11.Assume that H j I Y H j P Y H j Q , and are the vertices in a connected component in q I , H iI Y H iP Y H iQ , and H iR are the vertices in another connected component in q I .We have shown that there is no edge in either of g satisfying the two conditions of Lemma 8, by Lemma 10.Suppose that iQ , and H iR are in the same connected component in q P , by the definition of q P .Clearly, there is no edge in path % H j I Y H i R in g satisfying the two conditions in Lemma 8 due to that % H Having built q I and q P , to decide whether there is an edge in % &Y in g satisfying the two conditions in Lemma 8 (Case 3), it proceeds as follows: If preorder b preorder H i H , then there is no edge in % &Y satisfying the two conditions in Lemma 8 because % &Y is a subpath of % &Y H Y satisfying the two conditions of Lemma 8, we proceed by checking whether there is a vertex cluster j P P including g y such that u P i j Y g and where ndz is the number of vertices in a subtree of g rooted at z.In other words, we need to check whether there is an edge between j and g incident to u and u is below H i H in g, I j q.Fig. 7b illustrates this case.If (1) holds, then no edge in % H i H Y satisfies the two conditions of Lemma 8, which means there is no bridge internal to g separating x from y in q.We then examine the other articulation points g H , if existing in q xYy , separating x from y to determine whether x and y are in the same 2-edge connected component in q.If none of the articulation points contains a bridge separating x from y in q, then x and y are in the same 2-edge connected component in q.

Implementing the Operations
Now, we discuss the implementation details of the proposed algorithm for query processing.Due to space limitations, some unimportant details are omitted.Assume that the data structures defined are available.q xYy is constructed as follows: First, a graph q H is generated from q by removing the vertices g x and g y and their adjacent artificial vertices (i.e., the new vertices added in the generation of q).Then, q xYy is generated by merging the adjacency lists of q H , p g x , and p g y , which takes ylog u logmau time using yu mau P processors on a CRCW PRAM because q xYy contains yu mau P vertices and edges.
Given the graph q xYy , the next objective is to find all articulation points gs in q xYy separating x from y. Obviously, each such g is also an articulation point in both q and q, separating g x from g y , which can be found by the following lemma: Lemma 12. Finding all articulation points in q separating g x from g y takes ylogmau log u time using ymau Q processors on a CRCW PRAM.
Proof.Since q and q are the equivalent graphs, an articulation point in q is also an articulation point in q.We proceed with the following in parallel: For each vertex g in q, make a copy q g of q for g, delete g and its incident edges from q g , and compute the connected components of the resulting graph q g À fgg.If vertices g x and g y are not in the same connected component in q g À fgg, then g is an articulation point in q separating g x from g y .Since the connected component computation in graph q g À fgg for each g requires ylogmau time and ymau P processors on a CRCW PRAM [43], finding all articulation points in q separating g x from g y requires ylogmau log u time and ymau Q processors on a CRCW PRAM because q contains ymau vertex clusters (all the other vertices in q are artificial vertices) and ymau P edges.

t u
Now, assume that every vertex v in g has been assigned a preorder numbering preorderv.Otherwise, such an assignment can be done in ylog u time with yu processors using the Euler traversal technique [31] because g is an inverted tree containing yu vertices and edges.Also, answering a LCA query in g can be answered in yI time using one processor on an EREW PRAM [42].

Proof.
For every e i , the two vertices in ie i Y g with the smallest and the largest preorder numberings in g can be found in ylog u time using one processor due to the fact that ie i Y g contains yu vertices and is maintained as a balanced binary search tree.Let u i and v i be the two vertices found from ie i Y g.The complexity for the construction of q I is as follows: Checking Condition 1 takes yI time using ymau P processors because there are ymau vertex clusters and checking Condition 2 takes ylog u time using ymau processors, which has been proven by the following lemma: Lemma 14 [19].Let g H be any cluster adjacent to g and let v be any vertex of g.Then, to check whether there are edges in q between g H and g incident below v in ylog u time with one processor on a CRCW PRAM.
Notice that we use the same data structure as Galil and Italiano [21] did in this part.The proof of Lemma 14 is omitted.
The construction of q I thus requires ylog u time and ymau P processors because I s H mau. Finding connected components in q I requires ylogmau time and ymau P processors on a CRCW PRAM because q I contains ymau vertices and ymau P edges [43].Broadcasting the smallest and the largest indices of the vertices in a connected component to all the vertices in it requires ylogmau time and ymau processors on an EREW PRAM.Similarly, the construction of q P and finding connected components in q P takes ylogmau time using ymau P processors on a CRCW PRAM.As a result, the maximum index i H of a vertex in the connected component in q P containing & can be found in the above time and processor bounds.Thus, the path % &Y H i H in g can be found, which does not contain any edge satisfying the two conditions in Lemma 8. Checking whether there is any edge in % H i H Y satisfying the two conditions of Lemma 8 can be done in ylog u time using ymau processors by Lemma 14, because there are ymau vertices in g.Thus, we have the following theorem: Theorem 3. The query about whether x and y are in the same 2-edge connected component in a connected graph q Y i can be answered in ylog m time using ym QaR processors on a CRCW PRAM.
Proof.The construction of q xYy takes ylog u logmau time using yu mau P processors.Following Theorem 2, Type 1 bridge checking takes ylog u logmau time using yu mau P processors.Type 2 bridge checking needs finding all articulation points in q xYy separating x from y, which requires ylog u logmau time using ymau Q processors.Checking all the cases in Lemma 9 requires ylogmau log u time using ymau P processors.The theorem then follows, by setting u m QaR .t u

Inserting and Deleting Edges
In this section, we consider the snsertidgexY y operation.Let g x and g y be the vertex clusters including x and y.When a new edge xY y is inserted, the degrees of vertices x and y in the original graph q increase by one.If none of them becomes four, only the data structures pertinent to g x and g y are required to be updated, i.e., p g x , g x , p g y , g y , ig x Y g y , ig y Y g x , and q needed be updated.Otherwise, if either the degree of x or the degree of y becomes four, then the transformation given in Section 2 will be applied.This leads to a constant number of extra vertices and edges in the resulting graph.Assume that the degree of x in q now is four.We apply the transformation to the cluster g x .As a result, all data structures pertinent to g x must be updated to reflect the change.However, to keep the vertex degree of a graph no greater than three, the insertion of extra vertices may lead to the size of g x becoming greater than QuaP.We deal with this latter case by splitting g x two vertex clusters g H and g HH .Since the original size of g x is between uaP and QuaP and the degree of each vertex in it is no greater than three, the two new clusters g H and g HH as well as the data structures pertinent to them can be constructed in ylog u time using yu mau P processors on a CRCW PRAM, which is explained as follows: The full representations p g H and p g HH and the tree representations g H and g HH of g H and g HH can be obtained in ylog u time with yu processors by the discussion in Section 3.3.The balanced binary search tree for the other cluster g j adjacent to g x , ig H Y g j , ig j Y g H , ig HH Y g j , and ig j Y g HH can be constructed in ylog u time using yu processors because the degree of every vertex in g x is at most three.The handling of g y can be done similarly.The super graph q and its equivalent graph q can be updated in ylogmau log u time using ymau P processors because they contain ymau P vertices.
To perform an insertion of xY y, we distinguish two cases depending on whether xY y is an edge internal to a cluster or an intercluster edge. 1) If g x g y g, then xY y is an internal edge.As a result, only the data structures related to g, p g and g, are updated, which takes ylog u time using yu processors on a CRCW PRAM.
2) If g x T g y , then xY y is an intercluster edge.The data structures needed to be updated are p g x , g x , p g y , g y , ig x Y g y , ig y Y g x , and q.This takes ylog u logmau time using ymau P processors on a CRCW PRAM.In summary, inserting an edge xY y causes at most two clusters to be split and at most constant clusters' data structures to be updated.Following the above discussion, each update requires ylog u logmau time using yu mau P processors on a CRCW PRAM.
To keep ylog m time complexity per update and per query in the worst case, we need to be cautious when dealing with the data structure maintenance.Let m t be the number of edges in the graph at time t.We show an update at time t can be implemented in ylog m t time with ym QaR t processors on a CRCW PRAM.Let u t dm QaR t e.When the value of u changes due to an snsertidge or heleteidge operation, there will be at least dm QaR t aPe more updates before u becomes twice as large or one half as small as it was before.Following the idea of Galil and Italiano [19] that adjusts a constant number of clusters each time there is an update, this gives a total of ym QaR t cluster adjustments.Since there are no more than ym t au t ym IaQ t clusters that need to be adjusted and the adjustments can be accomplished before a new round of adjustment starts.Thus, whenever there is an insertion, the clusters can be scanned to find any cluster that is too small and a constant number of these clusters can be merged with a neighbor if needed.
The processing for the deletion case is similar to that for the insertion case, which is omitted here.Therefore, we have the following theorem: Theorem 4. Full dynamic maintenance of 2-edge connected components in a connected graph q Y i with m edges can be done in ylog m time using ym QaR processors on a CRCW PRAM.
Proof.From the discussion above and Theorem We deal with the fully dynamic maintenance of 2-edge connected components in disconnected graphs by extending the results of connected graphs.Let q be a disconnected graph consisting of l connected components.We augment q by adding l À I dummy edges such that the augmented graph is connected and no cycle in the augmented graph includes two dummy edges.Every edge in q is assigned weight 1 and every dummy edge is assigned weight 2. Such augmentation does not change the property of 2-edge connected components in q, i.e., two vertices x and y are in a 2-edge connected component in the augmented graph if and only if they are in the same 2-edge connected component in q.The key here is to maintain a vertex cluster partition of a minimum spanning tree instead of maintaining a vertex cluster partition of an arbitrary spanning tree in the augmented graph.
When inserting an edge e xY y, we check whether there is already a dummy edge in between them.If yes, we decrease the weight of e from 2 to 1; otherwise, we insert this edge with weight 1 to and update , which can be implemented in ylog m time with ym PaQ processors on a CREW PRAM, using either Ferragina's algorithm [14] or Liang and McKay's algorithm [35].If e becomes an edge in the new minimum spanning tree through deleting a dummy edge e H , then e H is deleted.When deleting an edge e xY y, we check whether e is in .If yes, is updated; otherwise, e is deleted.Therefore, we have the following theorem: Theorem 5. Full dynamic maintenance of 2-edge-connected components in a disconnected graph q Y i can be done in ylog m time using ym QaR processors on a CRCW PRAM.
Proof.It is straightforward from Theorem 4.

t u
The above proposed algorithm can be further improved if the sparsification technique of Eppstein et al. [10] is employed.In the following, we present an improved algorithm for the problem, using the sparsification technique.
If q is k-edge connected, we can use a sparse k-edge certificate k ( k iI i ) of q instead of q itself when dealing with the k-edge connectivity of q.Eppstein et al. [10] have shown that k is a strong k-edge certificate of q.Obviously, the sparse 2-edge certificate of q is a special case with k P. For any fixed k, k can be maintained in time ylog n with yn PaQ processors per update, using the k copies of the algorithm for fully dynamic maintenance of minimum spanning forests, where copy i is used to maintain forest i , i IY F F F Y k.Also, k is stable since at most a single edge flips in one of the k minimum spanning forests when there is an update.Theorem 6. Full dynamic maintenance of 2-edge connected components in a graph q Y i can be done in ylog n log m n time using yn QaR processors on a CRCW PRAM.
Proof.By applying the sparsification technique, we first build a tree f and maintain the sparse 2-edge certificate at every node in f by two dynamic data structures, one for 1-edge connectivity which requires ylog n time and yn PaQ processors on a CREW PRAM [14], [35] and another for 2-edge connectivity P I P , i.e., I and P .We then run the parallel algorithm for the maintenance of 2-edge connected components in P , described in the beginning of this section, at the root node of f .So, for every edge insertion and deletion, the maintenance time spent for all the data structures involved is ylog n log m n and the number of processors used is yn QaR because the height of f is ylog m n .Similarly, the query can be answered at the root of f in the same time and processor bounds as above.Proof.Let Q be a sparse 3-edge certificate of q.By applying the reduction technique of Galil et al. that reduces the k-edge connectivity of q into the k-vertex connectivity of another graph 9 k q, we first construct 9 Q Q from Q , which takes ylog n time using yna log n processors on a CRCW PRAM because 9 Q Q contains yn vertices and edges.We then maintain a tree f in which each node contains a sparse 3-vertex certificate of the subgraph induced by the edges at the leaf nodes in the subtree rooted at the node, using  [10] is applicable only if the certificate is both sparse and strong.For k-vertex connectivity of a graph q, Eppstein et al. [10] have shown that g k ( k jI f j ) is a strong, sparse certificate of q, where f j is a breadth-first search forest in graph q À jÀI iI f i .However, currently, the number of processors used in any NC algorithm for finding a breadth-first search forest is no better than the number of scalar operations for matrix multiplication, which is yn PXQUT [7].To reduce the number of processors used, we adopt an alternative approach to find a sparse k-vertex certificate and show the found certificate is a strong certificate.
To find a sparse k-vertex certificate of q Y i, we use the scan-first search technique [4].Let g k q Y k iI i i , where i i is the edge set of the spanning forest p i obtained by applying the scan-first search in graph q i q À iÀI jI p j .It is obvious that g k is sparse when k is fixed.In the following, we show that g k is strong too: Lemma 15. g k is a strong k-vertex certificate of q Y i.
Proof.Let be a k À IEvertex cut in any graph g k r which partitions the vertices in À into two subsets e and f.Obviously, r does not contain any edge between a vertex in e and a vertex in f.Let s i P À fs I Y s P Y F F F Y s iÀI g be the first vertex in the ith scan-first search of q i q À p I À p P À F F F À p iÀI , where p i is a scan-first search spanning forest of q i .Let be a tree rooted at r containing s I and P p I .We claim either r P e, r P f, or r P .If r P , then r s I by the following argument: The index of r is smaller than the index of s I because r is visited before s I by the definition of scan-first search.This contradicts that s I has the smallest index in .So, either r P e or r P f.Without loss of generality, assume that r P e.In the following, we show that all the edges between s I and the vertices in f are included in , therefore, in p I because P p I .We proceed as follows: If r s I , then all such edges incident to s I are in obviously.Now, consider r P e. Assume that there is an edge s I Y v P i and v P f, but s I Y v T P .We show this is impossible.Since s I and v are in the same connected component in q, they must be in the same spanning tree in q.Therefore, both s I and v are included in .Let pv be the parent of v in .We then have either pv P e, pv P f, or pv P and only one of these holds.If pv P e, then there is an edge between pv (P e) and v (P f) after the deletion of all the vertices in and the edges incident to them.This contradicts that is a k À IEvertex cut between e and f.Thus, either pv P f or pv P .Obviously, it is also impossible that pv P f because the index of s I is smaller than that of any other vertex in f by the definition of scan-first search.Thus, s I must be the parent of v in because s I Y v P i.Therefore, pv must be in and pv s I , i.e., the edge s I Y v must be included in .In other words, all the edges between s I and the vertices in f are included in p I instead of in g k À p I and À fs I g forms a k À PEvertex cut in g k À p I .We proceed in the same way on the resulting graph.As a result, each application of scan-first search will eliminate a vertex from q and in the end p k must be disconnected.But this can only happen if is also a vertex cut in q and, hence, in q r.We have already shown that any vertex cut in g k r is also a vertex cut in q r.The converse follows immediately from the fact that g k is a subgraph of q.Hence, g k is a strong certificate of q. t u

Maintaining Biconnected Components
Assume that q is connected.Otherwise, two types of data structures are maintained, one for 1-edge connectivity (connected components) and another for biconnectivity (2-vertex connected components).As a result, if there is a query to ask whether vertices u and v are in the same biconnected component in q, we first check the data structures for 1-edge connectivity to see whether u and v are connected.If yes, we then run the query algorithm on the data structures for biconnectivity.Otherwise, the response to the query is false.It is known that the fully dynamic maintenance of 1-edge connectivity can be done in ylog n log m n time using yn PaQ processors on a CREW PRAM [8], [35].Theorem 8. Fully dynamic maintenance of biconnected components of a graph q Y i requires ylog P n time using ynPnY na log n processors per update and yI time with one processor per query or requires ylog n log m n time using ynPnY na log n processors per update and ylog n time using ynPnY na log n processors per query on a CRCW PRAM.
Proof.When an edge is inserted or deleted, it results in only yI leaf node updates in f .Meanwhile, the sparse 2-vertex certificates of the involved leaf nodes and their ancestor nodes in the paths in f from the leaf nodes to the root node need to be updated.Finding the sparse 2-vertex certificate at a node requires ylog n time and ynPnY na log n processors by Cheriyan et al.'s algorithm [4].At the root node, we run Tarjan and Vishkin's algorithm [44] to maintain biconnected components in the sparse 2-vertex certificate at the root node while finding biconnected components in a graph with n vertices and m edges requires ylog n time and ym n processors on a CRCW PRAM, which can also be implemented in ylog P n with ym na log n processors by Brent's theorem [3].Therefore, updating all data structures requires ylog n log m n log P n ylog P n time and ynPnY na log n processors when there is an insertion or a deletion.For a query, we just check the root node of f to see whether the two vertices are in the same biconnected component, which takes yI time using one processor.If we want to reduce the update time further, there is another approach in which, for each update, we recompute the sparse 2-vertex certificates for all involved nodes in f and for each query about whether there exist k vertex disjoint paths, we run the algorithm by Khuller and Schieber [32] at the root of f .For the case where k P, their algorithm requires ylog n time and ynPnY na log n processors.So, it requires ylog n log m n time using ynPnY na log n processors per update and ylog n time using ynPnY na log n processors per query on a CRCW PRAM.

t u
Notice that there is a faster algorithm for testing k vertex disjoint paths between a pair of vertices [29], which requires yk log log k log n time and yn P kkgnY m kn processors on an arbitrary CRCW PRAM.This algorithm is superior to the algorithm of Khuller and Schieber [32] only when k is not constant.

Maintaining Triconnected Components
Assume that q is biconnected.Otherwise, two types of data structures are maintained, one for biconnectivity and another for triconnectivity of q.That is, if there is a query to ask whether vertices u and v are in the same triconnected component, we first check the data structures for biconnectivity to see whether u and v are biconnected.If yes, we then run the query procedure on the data structures for triconnectivity.Otherwise, the response to the query is false.By Theorem 8, the fully dynamic maintenance of biconnectivity can be done in ylog n log m n time using ynPnY na log n processors on a CRCW PRAM.Proof.The approach employed is the same as the one used for Theorem 8, except that we replace Tarjan and Vishkin's [44] algorithm for biconnectivity by the algorithm for triconnectivity due to Fussel et al. [17].
Their algorithm for the fully dynamic maintenance of triconnectivity of a graph with n vertices and m edges requires ylog n time and ym n log log na log n processors on a CRCW PRAM, which also can be implemented in ylog n log log namY n time using ym nmY na log n processors by Brent's theorem.tu

CONCLUSIONS
In this paper, we have studied the problem of fully dynamic maintenance of k-connectivity of graphs and presented the first NC algorithms with ỹn work for it, where k PY Q.In particular, our NC algorithm for 2-edge connectivity uses on processors only.For the biconnectivity problem, we have obtained an NC algorithm with yn processors.From this algorithm, we have also derived NC algorithms with yn processors for the fully dynamic maintenance of 3-edge connectivity and triconnectivity.However, for the addressed problems there is still a gap between the best sequential time complexity for them and the amount of work needed in parallel.It is interesting and challenging to find better NC algorithms for them to reduce or eliminate the gap.

Fig. 1 .
Fig. 1.A graph, its spanning tree, and the vertex cluster partition.(a) A graph q Y i.(b) A spanning tree and a vertex cluster partition of q.

Fig. 2 .
Fig. 2. The induced subgraph qg I and the full representation p g I of g I .(a) The induced subgraph qg I of G by the vertices in cluster g I .(b) The full presentation p g I of a vertex cluster g I where g I fIY PY QY RY SY IIg.

Fig. 3 .
Fig. 3. (a) The tree representation g I of g I .(b) ig P Y g I and its binary search tree representation.

Fig. 6 .
Fig. 6.The notions on g.(a) Q is compatible with uY v while R is incompatible with Y d in g.(b) An illustration of !eI Y e P .

Fig. 7 .
Fig. 7. Checking whether an edge in % &Y satisfies the two conditions of Lemma 8. (a) Condition 2 in the construction of q I .(b) An illustration of checking whether an edge in % H i H Y satisfies the two conditions of Lemma 8.

vertices and 2 )
each connected component H i is compatible with e, I i s H .
i H and there is no edge in % &Y H i H satisfying the two conditions in Lemma 8 by Lemma 11, where vertices H iH and & are in the same connected component in q P and H i H has the maximum index i H in the connected component.Otherwise, although there is no edge in path % &Y H i H satisfying the two conditions of Lemma 8, we cannot guarantee that this claim also holds in path % H i H Y .Path % &Y is the union of % &Y H i H and % H i H Y .To check whether there is an edge in path % H i H

Lemma 13 .
Let e I Y e P Y F F F Y e l be l vertex clusters adjacent to a vertex cluster g. !eI Y e P Y F F F Y e l can be found in ylog u log l time with yl processors on a CRCW PRAM, where I l dmaue and is constant.

t u 4 . 2
Maintaining 3-Edge Connected Components Theorem 7. Fully dynamic maintenance of 3-edge connected components in a graph q Y i requires ylog n log m n log n log log naQnY n time using ynQnY na log n processors per update and yI time with a single processor per query on a CRCW PRAM.

Theorem 9 .
Fully dynamic maintenance of triconnected components in a graph q Y i requires ylog n log m n log n log log naQnY n time using ynQnY na log n processors per update and yI time with one processor per query.The algorithm runs in a CRCW PRAM.
Lemma 11.Let gg be a connected component in q P P Y i P , including vertex & H H such that i H is the maximum index of the vertices in it.Then, there is no edge e in % &Y H i H in g satisfying 1) the removal of e separates red vertices from black Thus, each edge H Y H in a connected component, including &, corresponds to a path % H Y H in g.So, we conclude that there is no edge in % &Y H i H in g satisfying the two conditions in Lemma 4 because % &Y H Then, sort the sequence of Pl vertices in g by their preorder numberings in increasing order, which can be done in ylog l time with yl processors.!eI Y e P Y F F F Y e l is the LCA of the two vertices with the smallest and the largest preorder numberings in the sorted sequence.So, the entire computation takes ylog l log u time and uses yl processors on a CRCW PRAM.t uCorollary 1. & and can be found in ylogmau log u time using ymau processors on a CRCW PRAM.Proof.It can be derived from Lemma 13 with l mau because I pY q mau, is constant.tuRecall that i !iYI Y iYP Y F F F Y iYri, where iYj P i , I j ri, and Q i s.Finding the sequence Q Y R Y F F F Y s takes ylog u logmau time using CRCW PRAM.Let I & and P , which can be found in the same time and processor bounds.Then, discard those i s that are not in % &Yr .Let H H , where H s H s and H H &.