An Optimal $3$-Fault-Tolerant Connectivity Oracle
Evangelos Kosinas
TL;DR
We present an optimal DFS-based connectivity oracle for undirected graphs that withstands up to three vertex failures. The method preprocesses in $O(n+m)$ time, uses $O(n)$ space, and answers, in $O(1)$ time, queries about whether two vertices remain connected after removing any set $F$ with $|F|\le 3$. Central to the approach is a DFS-tree framework that avoids compact vertex-cut representations, instead leveraging internal components, hanging subtrees, and a connectivity graph $\mathcal{R}$ to capture inter-component connectivity; this yields not only fast queries but also efficient extensions to count the number of components and to perform related vertex-cut queries. The work integrates with the Kosinas DFS-based framework and offers a path toward optimal solutions for higher vertex-failure counts, providing insights and tools (low/high points, left/right skipping points, and batch-even processing via permutations) that may generalize beyond $d_\star=3$.
Abstract
We present an optimal oracle for answering connectivity queries in undirected graphs in the presence of at most three vertex failures. Specifically, we show that we can process a graph $G$ in $O(n+m)$ time, in order to build a data structure that occupies $O(n)$ space, which can be used in order to answer queries of the form "given a set $F$ of at most three vertices, and two vertices $x$ and $y$ not in $F$, are $x$ and $y$ connected in $G\setminus F$?" in constant time, where $n$ and $m$ denote the number of vertices and edges, respectively, of $G$. The idea is to rely on the DFS-based framework introduced by Kosinas [ESA'23], for handling connectivity queries in the presence of multiple vertex failures. Our technical contribution is to show how to appropriately extend the toolkit of the DFS-based parameters, in order to optimally handle up to three vertex failures. Our approach has the interesting property that it does not rely on a compact representation of vertex cuts, and has the potential to provide optimal solutions for more vertex failures. Furthermore, we show that the DFS-based framework can be easily extended in order to answer vertex-cut queries, and the number of connected components in the presence of multiple vertex failures. In the case of three vertex failures, we can answer such queries in $O(\log n)$ time.
