We show how to find and efficiently maintain maximal k-edge-connected subgraphs in undirected graphs. In particular, we provide the following results. (1) A general framework for maintaining the maximal k-edge-connected subgraphs upon insertions of edges or vertices, by successively partitioning the graph into its k-edge-connected components. This defines a decomposition tree, which can be maintained by using algorithms for the incremental maintenance of the k-edge-connected components as black boxes at every level of the tree. (2) As an application of this framework, we provide two algorithms for the incremental maintenance of the maximal $3$-edge-connected subgraphs. These algorithms allow for vertex and edge insertions, interspersed with queries asking whether two vertices belong to the same maximal $3$-edge-connected subgraph. The first algorithm has $O(m\alpha(m,n) + n^2\log^2 n)$ total running time and uses $O(n)$ space, where $m$ is the number of edge insertions and queries, and $n$ is the total number of vertices inserted. The second algorithm performs the same operations in faster $O(m\alpha(m,n) + n^2\alpha(n,n))$ time in total, using $O(n^2)$ space. (3) We provide efficient constructions of sparse subgraphs that have the same maximal k-edge-connected subgraphs as the original graph. These are useful in speeding up computations involving the maximal k-edge-connected subgraphs in dense undirected graphs. (4) We give two deterministic algorithms for computing the maximal k-edge-connected subgraphs in undirected graphs, with running times $O(m+k^{O(1)}n\sqrt{n}\mathrm{polylog}(n))$ and $O(m+k^{O(k)}n\sqrt{n}\log{n})$, respectively. (5) A fully dynamic algorithm for maintaining information about the maximal k-edge-connected subgraphs for fixed k. Our update bounds are $O(n\sqrt{n}\log{n})$ worst-case time, and we achieve constant time for maximal k-edge-connected subgraph queries.
翻译:我们展示了如何在无向图中寻找并高效维护最大k边连通子图。具体而言,我们提供以下结果:(1)一个通用框架,通过逐步将图划分为k边连通分量,在插入边或顶点时维护最大k边连通子图。该框架定义了一棵分解树,可通过将k边连通分量的增量维护算法作为黑箱应用于树的每一层来维护。(2)作为该框架的应用,我们提供了两个增量维护最大3边连通子图的算法。这些算法支持顶点和边的插入,并允许查询两个顶点是否属于同一最大3边连通子图。第一个算法的总运行时间为 \(O(m\alpha(m,n) + n^2\log^2 n)\),空间复杂度为 \(O(n)\),其中 \(m\) 为边插入和查询的次数,\(n\) 为插入的顶点总数。第二个算法以更快的总时间 \(O(m\alpha(m,n) + n^2\alpha(n,n))\) 执行相同操作,空间复杂度为 \(O(n^2)\)。(3)我们提出了稀疏子图的高效构造方法,这些子图与原始图具有相同的最大k边连通子图,有助于加速稠密无向图中涉及最大k边连通子图的计算。(4)我们给出了两种确定性算法,用于计算无向图中的最大k边连通子图,运行时间分别为 \(O(m+k^{O(1)}n\sqrt{n}\mathrm{polylog}(n))\) 和 \(O(m+k^{O(k)}n\sqrt{n}\log{n})\)。(5)一个针对固定k值维护最大k边连通子图信息的完全动态算法。我们的更新界在最坏情况下为 \(O(n\sqrt{n}\log{n})\),并能在常数时间内回答最大k边连通子图查询。