Computer Science > Data Structures and Algorithms
[Submitted on 30 Oct 2016 (v1), last revised 13 Feb 2022 (this version, v9)]
Title:Linear-Time Safe-Alternating DFS and SCCs
View PDFAbstract:An alternating graph is a directed graph whose vertex set is partitioned into two classes, existential and universal. This forms the basic arena for a plethora of infinite duration two-player games where Player~$\square$ and~$\ocircle$ alternate in a turn-based sliding of a pebble along the arcs they control. We study alternating strongly-connectedness as a generalization of strongly-connectedness in directed graphs, aiming at providing a linear time decomposition and a sound structural graph characterization. For this a refined notion of alternating reachability is introduced: Player~$\square$ attempts to reach vertices without leaving a prescribed subset of the vertices, while Player~$\ocircle$ works against. This is named \emph{safe alternating reachability}. It is shown that every arena uniquely decomposes into safe alternating strongly-connected components where Player~$\square$ can visit each vertex within a given component infinitely often, without having to ever leave out the component itself. Our main result is a linear time algorithm for computing this alternating graph decomposition. Both the underlying graph structures and the algorithm generalize the classical decomposition of a directed graph into strongly-connected components. The algorithm builds on a linear time generalization of the depth-first search on alternation, taking inspiration from Tarjan 1972 machinery. Our theory has direct applications in solving well-known infinite duration pebble games faster. Dinneen and Khoussainov showed in 1999 that deciding a given Update Game costs $O(mn)$ time, where $n$ is the number of vertices and $m$ is that of arcs. We solve the task in $\Theta(m+n)$ linear~time. The complexity of Explicit McNaughton-Müller Games also improves from cubic to quadratic.
Submission history
From: Carlo Comin [view email][v1] Sun, 30 Oct 2016 17:22:00 UTC (66 KB)
[v2] Sat, 19 Nov 2016 20:23:11 UTC (66 KB)
[v3] Tue, 22 Nov 2016 13:07:27 UTC (66 KB)
[v4] Mon, 28 Nov 2016 11:01:58 UTC (66 KB)
[v5] Sun, 9 Jun 2019 10:18:10 UTC (76 KB)
[v6] Fri, 5 Jun 2020 21:19:02 UTC (80 KB)
[v7] Wed, 10 Jun 2020 16:46:03 UTC (82 KB)
[v8] Sat, 5 Dec 2020 16:40:48 UTC (81 KB)
[v9] Sun, 13 Feb 2022 17:07:15 UTC (86 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.