2,836 research outputs found
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
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
Engineering DFS-Based Graph Algorithms
Depth-first search (DFS) is the basis for many efficient graph algorithms. We
introduce general techniques for the efficient implementation of DFS-based
graph algorithms and exemplify them on three algorithms for computing strongly
connected components. The techniques lead to speed-ups by a factor of two to
three compared to the implementations provided by LEDA and BOOST.
We have obtained similar speed-ups for biconnected components algorithms. We
also compare the graph data types of LEDA and BOOST
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
- …