Computer Science > Data Structures and Algorithms
[Submitted on 28 Jun 2016 (this version), latest version 27 Jul 2017 (v3)]
Title:Biconnectivity, chain decomposition and $st$-numbering using $O(n)$ bits
View PDFAbstract:Recent work by Elmasry et al. (STACS 2015) and Asano et al. (ISAAC 2014) reconsidered classical fundamental graph algorithms focusing on improving the space complexity. Elmasry et al. gave, among others, an implementation of depth first search (DFS) of a graph on $n$ vertices and $m$ edges, taking $O(m \lg \lg n)$ time\footnote{We use $\lg$ to denote logarithm to the base $2$.} using $O(n)$ bits of space improving on the time bound of $O(m \lg n)$ due to Asano et al. Subsequently Banerjee et al. (COCOON 2016) gave an $O(m+n)$ time implementation using $O(m+n)$ bits, for DFS and its classical applications (including testing for biconnectivity, and finding cut vertices and cut edges). Recently, Kammer et al. (MFCS 2016) gave an algorithm for testing biconnectivity using $O(n + \min \{ m, n \lg \lg n \})$ bits in linear time.
In this paper, we consider $O(n)$ bits implementations of the classical applications of DFS. These include the problem of finding cut vertices, and biconnected components, chain decomposition and $st$-numbering. Classical algorithms for them typically use DFS and some $\Omega (\lg n)$ bits of information at each node. Our $O(n)$-bit implementations for these problems take $O(m \lg^c n \lg\lg n)$ time for some small constant $c$ ($c \leq 3$). Central to our implementation is a succinct representation of the DFS tree and a space efficient partitioning of the DFS tree into connected subtrees, which maybe of independent interest for designing space efficient graph algorithms.
Submission history
From: Sankardeep Chakraborty [view email][v1] Tue, 28 Jun 2016 10:48:51 UTC (125 KB)
[v2] Fri, 7 Apr 2017 10:17:19 UTC (149 KB)
[v3] Thu, 27 Jul 2017 06:50:52 UTC (152 KB)
References & Citations
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Connected Papers (What is Connected Papers?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
alphaXiv (What is alphaXiv?)
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Hugging Face (What is Huggingface?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
CORE Recommender (What is CORE?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.