Abstract

This paper presents a new and simple technique to solve the problem of adding a minimum number of edges to an undirected graph in order to obtain a biconnected, i.e., 2-vertex-connected, resulting graph. Our technique results in a simpler algorithm, which runs in sequential linear time, that is also faster in parallel than the previous result. Previous approaches for the problem require the usage of sorting, and advanced data structures to dynamically maintain either (1) a rooted tree when vertices are collapsing, or (2) the largest two sets among a collection of sets when an element from each of the largest two sets is being deleted. Our algorithm only needs to find a maximum integer among a set of O(n) non-negative integers that are less than n and to compute various simple tree functions, e.g., the number of vertices and a consecutive numbering of the degree-1 vertices in a rooted subtree, on a rooted tree. No sorting routine and dynamic data structure is used in the algorithm. Our simple algorithm implies a linear-time sequential implementation. For parallel implementation, all but the step for finding connected components in our algorithm can be done optimally in O( logn) time on an EREW PRAM, where n is the number of vertices in the input graph. Hence our parallel implementation runs in either O( logn) time using O((n+m)·α(m,n)/ logn) processors on a CRCW PRAM, or O( logn) time using O(n+m) processors on an EREW PRAM, where m is the number of edges in the input graph and α is the inverse Ackerman function. The previous best parallel algorithm for solving this problem runs in O( log 2n) time using O(n+m) processors on an EREW PRAM.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call