28,006 research outputs found
Join-Reachability Problems in Directed Graphs
For a given collection G of directed graphs we define the join-reachability
graph of G, denoted by J(G), as the directed graph that, for any pair of
vertices a and b, contains a path from a to b if and only if such a path exists
in all graphs of G. Our goal is to compute an efficient representation of J(G).
In particular, we consider two versions of this problem. In the explicit
version we wish to construct the smallest join-reachability graph for G. In the
implicit version we wish to build an efficient data structure (in terms of
space and query time) such that we can report fast the set of vertices that
reach a query vertex in all graphs of G. This problem is related to the
well-studied reachability problem and is motivated by emerging applications of
graph-structured databases and graph algorithms. We consider the construction
of join-reachability structures for two graphs and develop techniques that can
be applied to both the explicit and the implicit problem. First we present
optimal and near-optimal structures for paths and trees. Then, based on these
results, we provide efficient structures for planar graphs and general directed
graphs
Fast Parallel Operations on Search Trees
Using (a,b)-trees as an example, we show how to perform a parallel split with
logarithmic latency and parallel join, bulk updates, intersection, union (or
merge), and (symmetric) set difference with logarithmic latency and with
information theoretically optimal work. We present both asymptotically optimal
solutions and simplified versions that perform well in practice - they are
several times faster than previous implementations
Space-Efficient DFS and Applications: Simpler, Leaner, Faster
The problem of space-efficient depth-first search (DFS) is reconsidered. A
particularly simple and fast algorithm is presented that, on a directed or
undirected input graph with vertices and edges, carries out a
DFS in time with bits of working memory, where is the
(total) degree of , for each , and . A slightly more complicated variant of the algorithm works in the same
time with at most bits. It is also shown that a DFS can
be carried out in a graph with vertices and edges in
time with bits or in time with either
bits or, for arbitrary integer , bits. These
results among them subsume or improve most earlier results on space-efficient
DFS. Some of the new time and space bounds are shown to extend to applications
of DFS such as the computation of cut vertices, bridges, biconnected components
and 2-edge-connected components in undirected graphs
Parallel Working-Set Search Structures
In this paper we present two versions of a parallel working-set map on p
processors that supports searches, insertions and deletions. In both versions,
the total work of all operations when the map has size at least p is bounded by
the working-set bound, i.e., the cost of an item depends on how recently it was
accessed (for some linearization): accessing an item in the map with recency r
takes O(1+log r) work. In the simpler version each map operation has O((log
p)^2+log n) span (where n is the maximum size of the map). In the pipelined
version each map operation on an item with recency r has O((log p)^2+log r)
span. (Operations in parallel may have overlapping span; span is additive only
for operations in sequence.)
Both data structures are designed to be used by a dynamic multithreading
parallel program that at each step executes a unit-time instruction or makes a
data structure call. To achieve the stated bounds, the pipelined data structure
requires a weak-priority scheduler, which supports a limited form of 2-level
prioritization. At the end we explain how the results translate to practical
implementations using work-stealing schedulers.
To the best of our knowledge, this is the first parallel implementation of a
self-adjusting search structure where the cost of an operation adapts to the
access sequence. A corollary of the working-set bound is that it achieves work
static optimality: the total work is bounded by the access costs in an optimal
static search tree.Comment: Authors' version of a paper accepted to SPAA 201
- β¦