Incremental DFS algorithms: a theoretical and experimental study
Abstract
Depth First Search (DFS) tree is a fundamental data structure for solving graph problems. The DFS tree of a graph with vertices and edges can be built in time. Till date, only a few algorithms have been designed for maintaining incremental DFS. For undirected graphs, the two algorithms, namely, ADFS1 and ADFS2 [ICALP14] achieve total and time respectively. For DAGs, the only non-trivial algorithm, namely, FDFS [IPL97] requires total time. In this paper, we carry out extensive experimental and theoretical evaluation of existing incremental DFS algorithms in random and real graphs, and derive the following results. 1- For insertion of uniformly random sequence of edges, ADFS1, ADFS2 and FDFS perform equally well and are found to take time experimentally. This is quite surprising because the worst case bounds of ADFS1 and FDFS are greater than by a factor of and respectively. We complement this result by probabilistic analysis of these algorithms proving bound on the update time. Here, we derive results about the structure of a DFS tree in random graphs, which are of independent interest. 2- These insights led us to design an extremely simple incremental DFS algorithm for both undirected and directed graphs. This algorithm theoretically matches and experimentally outperforms the state-of-the-art in dense random graphs. It can also be used as a single-pass semi-streaming algorithm for incremental DFS and strong connectivity in random graphs. 3- Even for real graphs, both ADFS1 and FDFS perform much better than their theoretical bounds. Here again, we present two simple algorithms for incremental DFS for directed and undirected real graphs. In fact, our algorithm for directed graphs almost always matches the performance of FDFS.
Keywords
Cite
@article{arxiv.1705.02613,
title = {Incremental DFS algorithms: a theoretical and experimental study},
author = {Surender Baswana and Ayush Goel and Shahbaz Khan},
journal= {arXiv preprint arXiv:1705.02613},
year = {2017}
}
Comments
31 pages, 14 figures