2,045 research outputs found
Fully Dynamic Single-Source Reachability in Practice: An Experimental Study
Given a directed graph and a source vertex, the fully dynamic single-source
reachability problem is to maintain the set of vertices that are reachable from
the given vertex, subject to edge deletions and insertions. It is one of the
most fundamental problems on graphs and appears directly or indirectly in many
and varied applications. While there has been theoretical work on this problem,
showing both linear conditional lower bounds for the fully dynamic problem and
insertions-only and deletions-only upper bounds beating these conditional lower
bounds, there has been no experimental study that compares the performance of
fully dynamic reachability algorithms in practice. Previous experimental
studies in this area concentrated only on the more general all-pairs
reachability or transitive closure problem and did not use real-world dynamic
graphs.
In this paper, we bridge this gap by empirically studying an extensive set of
algorithms for the single-source reachability problem in the fully dynamic
setting. In particular, we design several fully dynamic variants of well-known
approaches to obtain and maintain reachability information with respect to a
distinguished source. Moreover, we extend the existing insertions-only or
deletions-only upper bounds into fully dynamic algorithms. Even though the
worst-case time per operation of all the fully dynamic algorithms we evaluate
is at least linear in the number of edges in the graph (as is to be expected
given the conditional lower bounds) we show in our extensive experimental
evaluation that their performance differs greatly, both on generated as well as
on real-world instances
An Improved Algorithm for Incremental DFS Tree in Undirected Graphs
Depth first search (DFS) tree is one of the most well-known data structures
for designing efficient graph algorithms. Given an undirected graph
with vertices and edges, the textbook algorithm takes time to
construct a DFS tree. In this paper, we study the problem of maintaining a DFS
tree when the graph is undergoing incremental updates. Formally, we show: Given
an arbitrary online sequence of edge or vertex insertions, there is an
algorithm that reports a DFS tree in worst case time per operation, and
requires preprocessing time.
Our result improves the previous worst case update time
algorithm by Baswana et al. and the time by Nakamura and
Sadakane, and matches the trivial lower bound when it is required
to explicitly output a DFS tree.
Our result builds on the framework introduced in the breakthrough work by
Baswana et al., together with a novel use of a tree-partition lemma by Duan and
Zhan, and the celebrated fractional cascading technique by Chazelle and Guibas
Improved Algorithms for Decremental Single-Source Reachability on Directed Graphs
Recently we presented the first algorithm for maintaining the set of nodes
reachable from a source node in a directed graph that is modified by edge
deletions with total update time, where is the number of edges and
is the number of nodes in the graph [Henzinger et al. STOC 2014]. The
algorithm is a combination of several different algorithms, each for a
different vs. trade-off. For the case of the
running time is , just barely below . In
this paper we simplify the previous algorithm using new algorithmic ideas and
achieve an improved running time of . This gives,
e.g., for the notorious case . We obtain the
same upper bounds for the problem of maintaining the strongly connected
components of a directed graph undergoing edge deletions. Our algorithms are
correct with high probabililty against an oblivious adversary.Comment: This paper was presented at the International Colloquium on Automata,
Languages and Programming (ICALP) 2015. A full version combining the findings
of this paper and its predecessor [Henzinger et al. STOC 2014] is available
at arXiv:1504.0795
Incremental -Edge-Connectivity in Directed Graphs
In this paper, we initiate the study of the dynamic maintenance of
-edge-connectivity relationships in directed graphs. We present an algorithm
that can update the -edge-connected blocks of a directed graph with
vertices through a sequence of edge insertions in a total of time.
After each insertion, we can answer the following queries in asymptotically
optimal time: (i) Test in constant time if two query vertices and are
-edge-connected. Moreover, if and are not -edge-connected, we can
produce in constant time a "witness" of this property, by exhibiting an edge
that is contained in all paths from to or in all paths from to .
(ii) Report in time all the -edge-connected blocks of . To the
best of our knowledge, this is the first dynamic algorithm for -connectivity
problems on directed graphs, and it matches the best known bounds for simpler
problems, such as incremental transitive closure.Comment: Full version of paper presented at ICALP 201
Near Optimal Parallel Algorithms for Dynamic DFS in Undirected Graphs
Depth first search (DFS) tree is a fundamental data structure for solving
graph problems. The classical algorithm [SiComp74] for building a DFS tree
requires time for a given graph having vertices and edges.
Recently, Baswana et al. [SODA16] presented a simple algorithm for updating DFS
tree of an undirected graph after an edge/vertex update in time.
However, their algorithm is strictly sequential. We present an algorithm
achieving similar bounds, that can be adopted easily to the parallel
environment.
In the parallel model, a DFS tree can be computed from scratch using
processors in expected time [SiComp90] on an EREW PRAM, whereas
the best deterministic algorithm takes time
[SiComp90,JAlg93] on a CRCW PRAM. Our algorithm can be used to develop optimal
(upto polylog n factors deterministic algorithms for maintaining fully dynamic
DFS and fault tolerant DFS, of an undirected graph.
1- Parallel Fully Dynamic DFS:
Given an arbitrary online sequence of vertex/edge updates, we can maintain a
DFS tree of an undirected graph in time per update using
processors on an EREW PRAM.
2- Parallel Fault tolerant DFS:
An undirected graph can be preprocessed to build a data structure of size
O(m) such that for a set of updates (where is constant) in the graph,
the updated DFS tree can be computed in time using
processors on an EREW PRAM.
Moreover, our fully dynamic DFS algorithm provides, in a seamless manner,
nearly optimal (upto polylog n factors) algorithms for maintaining a DFS tree
in semi-streaming model and a restricted distributed model. These are the first
parallel, semi-streaming and distributed algorithms for maintaining a DFS tree
in the dynamic setting.Comment: Accepted to appear in SPAA'17, 32 Pages, 5 Figure
- …