Abstract
In this paper we study the problem of maintaining the strongly connected components of a graph in the presence of failures. In particular, we show that given a directed graph $$G=(V,E)$$ with $$n=|V|$$ and $$m=|E|$$ , and an integer value $$k\ge 1$$ , there is an algorithm that computes in $$O(2^{k}n\log ^2 n)$$ time for any set F of size at most k the strongly connected components of the graph $$G{\setminus }F$$ . The running time of our algorithm is almost optimal since the time for outputting the SCCs of $$G{\setminus } F$$ is at least $$\varOmega (n)$$ . The algorithm uses a data structure that is computed in a preprocessing phase in polynomial time and is of size $$O(2^{k} n^2)$$ . Our result is obtained using a new observation on the relation between strongly connected components (SCCs) and reachability. More specifically, one of the main building blocks in our result is a restricted variant of the problem in which we only compute strongly connected components that intersect a certain path. Restricting our attention to a path allows us to implicitly compute reachability between the path vertices and the rest of the graph in time that depends logarithmically rather than linearly in the size of the path. This new observation alone, however, is not enough, since we need to find an efficient way to represent the strongly connected components using paths. For this purpose we use a mixture of old and classical techniques such as the heavy path decomposition of Sleator and Tarjan (J Comput Syst Sci 26:362–391, 1983) and the classical Depth-First-Search algorithm. Although, these are by now standard techniques, we are not aware of any usage of them in the context of dynamic maintenance of SCCs. Therefore, we expect that our new insights and mixture of new and old techniques will be of independent interest.
Highlights
Computing the strongly connected components (SCCs) of a directed graph G = (V, E), where n = |V | and m = |E|, is one of the most fundamental problems in computer science
The algorithm can use a polynomial size data structure computed in polynomial time for G during a preprocessing phase
In a previous work [2] we considered the problem of finding a sparse subgraph that preserves single source reachability
Summary
Patraşcu and Thorup [26] presented connectivity algorithms that support edge deletions in this model Their result was improved by the recent polylogarithmic worst case update time algorithm of Kapron, King and Mountjoy [21]. Very recently, Georgiadis, Italiano and Parotsidis [16] considered the problem of SCCs but only for a single edge or a single vertex failure, that is |F | = 1 They showed that it is possible to compute the SCCs of G \ {e} for any e ∈ E (or of G \ {v} for any v ∈ V ) in O(n) time using a data structure of size O(n) that was computed for G in a preprocessing phase in O(m + n) time. The main contribution of Łącki [23] is a new graph decomposition that made it possible to use Italiano’s algorithm [20] efficiently
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.