Space-Efficient Fully Dynamic DFS in Undirected Graphs

Depth-first search (DFS) is a well-known graph traversal algorithm and can be performed in O ( n + m ) time for a graph with n vertices and m edges. We consider the dynamic DFS problem, that is, to maintain a DFS tree of an undirected graph G under the condition that edges and vertices are gradually inserted into or deleted from G. We present an algorithm for this problem, which takes worst-case O ( m n · polylog ( n ) ) time per update and requires only ( 3 m + o ( m ) ) log n bits of space. This algorithm reduces the space usage of dynamic DFS algorithm to only 1.5 times as much space as that of the adjacency list of the graph. We also show applications of our dynamic DFS algorithm to dynamic connectivity, biconnectivity, and 2-edge-connectivity problems under vertex insertions and deletions.

[1]  Surender Baswana,et al.  Dynamic DFS in Undirected Graphs: breaking the O(m) barrier , 2015, SODA.

[2]  Timothy M. Chan,et al.  Dynamic Connectivity: Connecting to Networks and Geometry , 2008, 2008 49th Annual IEEE Symposium on Foundations of Computer Science.

[3]  Surender Baswana,et al.  Incremental Algorithm for Maintaining DFS Tree for Undirected Graphs , 2014, ICALP.

[4]  Wing-Kai Hon,et al.  Improved data structures for the orthogonal range successor problem , 2011, Comput. Geom..

[5]  Jeffrey Scott Vitter,et al.  Fast Construction of Wavelet Trees , 2014, SPIRE.

[6]  Rajeev Raman,et al.  Succinct indexable dictionaries with applications to encoding k-ary trees, prefix sums and multisets , 2007, ACM Trans. Algorithms.

[7]  Surender Baswana,et al.  Fault Tolerant and Fully Dynamic DFS in Undirected Graphs: Simple Yet Efficient , 2018, MFCS.

[8]  Kunihiko Sadakane,et al.  A Space-Efficient Algorithm for the Dynamic DFS Problem in Undirected Graphs , 2017, WALCOM.

[9]  Giorgio Gambosi,et al.  The Incremental Maintenance of a Depth-First-Search Tree in Directed Acyclic Graphs , 1997, Inf. Process. Lett..

[10]  Robert E. Tarjan,et al.  A data structure for dynamic trees , 1981, STOC '81.

[11]  Gonzalo Navarro Wavelet trees for all , 2014, J. Discrete Algorithms.

[12]  Gonzalo Navarro,et al.  Self-indexing Based on LZ77 , 2011, CPM.

[13]  Ruosong Wang,et al.  Improved Algorithms for Maintaining DFS Tree in Undirected Graphs , 2016, ArXiv.

[14]  Roberto Grossi,et al.  High-order entropy-compressed text indexes , 2003, SODA '03.

[15]  Shahbaz Khan,et al.  Near Optimal Parallel Algorithms for Dynamic DFS in Undirected Graphs , 2017, SPAA.

[16]  Simon J. Puglisi,et al.  Range Predecessor and Lempel-Ziv Parsing , 2016, SODA.

[17]  Surender Baswana,et al.  Incremental DFS algorithms: a theoretical and experimental study , 2018, SODA.

[18]  Daniele Frigioni,et al.  Dynamically Switching Vertices in Planar Graphs , 2000, Algorithmica.

[19]  Surender Baswana,et al.  On Dynamic DFS Tree in Directed Graphs , 2015, MFCS.

[20]  Ruosong Wang,et al.  An Improved Algorithm for Incremental DFS Tree in Undirected Graphs , 2016, SWAT.

[21]  Guy Jacobson,et al.  Space-efficient static trees and graphs , 1989, 30th Annual Symposium on Foundations of Computer Science.

[22]  Michael A. Bender,et al.  The LCA Problem Revisited , 2000, LATIN.

[23]  David Richard Clark,et al.  Compact pat trees , 1998 .