Linear-Time Algorithms for Computing Twinless Strong Articulation Points and Related Problems
Abstract
A directed graph G=(V,E) is twinless strongly connected if it contains a strongly connected spanning subgraph without any pair of antiparallel (or twin) edges. The twinless strongly connected components (TSCCs) of a directed graph G are its maximal twinless strongly connected subgraphs. These concepts have several diverse applications, such as the design of telecommunication networks and the structural stability of buildings. A vertex v ∈ V is a twinless strong articulation point of G if the deletion of v increases the number of TSCCs of G. Here, we present the first linear-time algorithm that finds all the twinless strong articulation points of a directed graph. We show that the computation of twinless strong articulation points reduces to the following problem in undirected graphs, which may be of independent interest: Given a 2-vertex-connected (biconnected) undirected graph H, find all vertices v that belong to a vertex-edge cut-pair, i.e., for which there exists an edge e such that H \v,e\ is not connected. We develop a linear-time algorithm that not only finds all such vertices v, but also computes the number of edges e such that H \v,e\ is not connected. This also implies that for each twinless strong articulation point v which is not a strong articulation point in a strongly connected digraph G, we can compute the number of TSCCs in G v. We note that the problem of computing all vertices that belong to a vertex-edge cut-pair can be solved in linear-time by exploiting the structure of 3-vertex-connected (triconnected) components of H, represented by an SPQR tree of H. Our approach, however, is conceptually simple, and thus likely to be more amenable to practical implementations.