A Simple Algorithm for Finding All k-Edge-Connected Components

PLoS One. 2015 Sep 14;10(9):e0136264. doi: 10.1371/journal.pone.0136264. eCollection 2015.

Abstract

The problem of finding k-edge-connected components is a fundamental problem in computer science. Given a graph G = (V, E), the problem is to partition the vertex set V into {V1, V2,…, Vh}, where each Vi is maximized, such that for any two vertices x and y in Vi, there are k edge-disjoint paths connecting them. In this paper, we present an algorithm to solve this problem for all k. The algorithm preprocesses the input graph to construct an Auxiliary Graph to store information concerning edge-connectivity among every vertex pair in O(Fn) time, where F is the time complexity to find the maximum flow between two vertices in graph G and n = ∣V∣. For any value of k, the k-edge-connected components can then be determined by traversing the auxiliary graph in O(n) time. The input graph can be a directed or undirected, simple graph or multigraph. Previous works on this problem mainly focus on fixed value of k.

Publication types

  • Research Support, Non-U.S. Gov't

MeSH terms

  • Algorithms*
  • Informatics / methods*

Grant support

This work is supported by National Natural Science Foundation of China (No. 11171086, 61433012, U1435215), Research Grants Council of Hong Kong (No. HKU 7114/13E, HKU 7164/12E, HKU 7111/12E), Natural Sciences and Engineering Research Council of Canada, NSERC 7811-2009, Natural Science Foundation of Hebei Province (No. A2013201218), and Chinese Academy of Sciences research grant (No. KGZD-EW-103-5(9)).