863 research outputs found
Effective Edge-Fault-Tolerant Single-Source Spanners via Best (or Good) Swap Edges
Computing \emph{all best swap edges} (ABSE) of a spanning tree of a given
-vertex and -edge undirected and weighted graph means to select, for
each edge of , a corresponding non-tree edge , in such a way that the
tree obtained by replacing with enjoys some optimality criterion (which
is naturally defined according to some objective function originally addressed
by ). Solving efficiently an ABSE problem is by now a classic algorithmic
issue, since it conveys a very successful way of coping with a (transient)
\emph{edge failure} in tree-based communication networks: just replace the
failing edge with its respective swap edge, so as that the connectivity is
promptly reestablished by minimizing the rerouting and set-up costs. In this
paper, we solve the ABSE problem for the case in which is a
\emph{single-source shortest-path tree} of , and our two selected swap
criteria aim to minimize either the \emph{maximum} or the \emph{average
stretch} in the swap tree of all the paths emanating from the source. Having
these criteria in mind, the obtained structures can then be reviewed as
\emph{edge-fault-tolerant single-source spanners}. For them, we propose two
efficient algorithms running in and time, respectively, and we show that the guaranteed (either
maximum or average, respectively) stretch factor is equal to 3, and this is
tight. Moreover, for the maximum stretch, we also propose an almost linear time algorithm computing a set of \emph{good} swap edges,
each of which will guarantee a relative approximation factor on the maximum
stretch of (tight) as opposed to that provided by the corresponding BSE.
Surprisingly, no previous results were known for these two very natural swap
problems.Comment: 15 pages, 4 figures, SIROCCO 201
A Novel Algorithm for the All-Best-Swap-Edge Problem on Tree Spanners
Given a 2-edge connected, unweighted, and undirected graph with
vertices and edges, a -tree spanner is a spanning tree of
in which the ratio between the distance in of any pair of vertices and the
corresponding distance in is upper bounded by . The minimum value
of for which is a -tree spanner of is also called the
{\em stretch factor} of . We address the fault-tolerant scenario in which
each edge of a given tree spanner may temporarily fail and has to be
replaced by a {\em best swap edge}, i.e. an edge that reconnects at a
minimum stretch factor. More precisely, we design an time and space
algorithm that computes a best swap edge of every tree edge. Previously, an
time and space algorithm was known for
edge-weighted graphs [Bil\`o et al., ISAAC 2017]. Even if our improvements on
both the time and space complexities are of a polylogarithmic factor, we stress
the fact that the design of a time and space algorithm would be
considered a breakthrough.Comment: The paper has been accepted for publication at the 29th International
Symposium on Algorithms and Computation (ISAAC 2018). 12 pages, 3 figure
An Improved Algorithm for Computing All the Best Swap Edges of a Tree Spanner
A tree sigma-spanner of a positively real-weighted n-vertex and m-edge undirected graph G is a spanning tree T of G which approximately preserves (i.e., up to a multiplicative stretch factor sigma) distances in G.
Tree spanners with provably good stretch factors find applications in communication networks, distributed systems, and network design. However, finding an optimal or even a good tree spanner is a very hard computational task. Thus, if one has to face a transient edge failure in T, the overall effort that has to be afforded to rebuild a new tree spanner (i.e., computational costs, set-up of new links, updating of the routing tables, etc.) can be rather prohibitive. To circumvent this drawback, an effective alternative is that of associating with each tree edge a best possible (in terms of resulting stretch) swap edge -- a well-established approach in the literature for several other tree topologies. Correspondingly, the problem of computing all the best swap edges of a tree spanner is a challenging algorithmic problem, since solving it efficiently means to exploit the structure of shortest paths not only in G, but also in all the scenarios in which an edge of T has failed. For this problem we provide a very efficient solution, running in O(n^2 log^4 n) time, which drastically improves (almost by a quadratic factor in n in dense graphs!) on the previous known best result
Space-Efficient Fault-Tolerant Diameter Oracles
We design -edge fault-tolerant diameter oracles (-FDOs). We preprocess
a given graph on vertices and edges, and a positive integer , to
construct a data structure that, when queried with a set of
edges, returns the diameter of .
For a single failure () in an unweighted directed graph of diameter ,
there exists an approximate FDO by Henzinger et al. [ITCS 2017] with stretch
, constant query time, space , and a combinatorial
preprocessing time of .We
present an FDO for directed graphs with the same stretch, query time, and
space. It has a preprocessing time of .
The preprocessing time nearly matches a conditional lower bound for
combinatorial algorithms, also by Henzinger et al. With fast matrix
multiplication, we achieve a preprocessing time of . We further prove an information-theoretic lower bound
showing that any FDO with stretch better than requires bits
of space.
For multiple failures () in undirected graphs with non-negative edge
weights, we give an -FDO with stretch , query time ,
space, and preprocessing time . We
complement this with a lower bound excluding any finite stretch in
space. We show that for unweighted graphs with polylogarithmic diameter and up
to failures, one can swap approximation for query
time and space. We present an exact combinatorial -FDO with preprocessing
time , query time , and space . When using
fast matrix multiplication instead, the preprocessing time can be improved to
, where is the matrix multiplication
exponent.Comment: Full version of a paper to appear at MFCS'21. Abstract shortened to
meet ArXiv requirement
Exploring the Design Space of Static and Incremental Graph Connectivity Algorithms on GPUs
Connected components and spanning forest are fundamental graph algorithms due
to their use in many important applications, such as graph clustering and image
segmentation. GPUs are an ideal platform for graph algorithms due to their high
peak performance and memory bandwidth. While there exist several GPU
connectivity algorithms in the literature, many design choices have not yet
been explored. In this paper, we explore various design choices in GPU
connectivity algorithms, including sampling, linking, and tree compression, for
both the static as well as the incremental setting. Our various design choices
lead to over 300 new GPU implementations of connectivity, many of which
outperform state-of-the-art. We present an experimental evaluation, and show
that we achieve an average speedup of 2.47x speedup over existing static
algorithms. In the incremental setting, we achieve a throughput of up to 48.23
billion edges per second. Compared to state-of-the-art CPU implementations on a
72-core machine, we achieve a speedup of 8.26--14.51x for static connectivity
and 1.85--13.36x for incremental connectivity using a Tesla V100 GPU
Parallel Batch-Dynamic Graph Connectivity
In this paper, we study batch parallel algorithms for the dynamic
connectivity problem, a fundamental problem that has received considerable
attention in the sequential setting. The most well known sequential algorithm
for dynamic connectivity is the elegant level-set algorithm of Holm, de
Lichtenberg and Thorup (HDT), which achieves amortized time per
edge insertion or deletion, and time per query. We
design a parallel batch-dynamic connectivity algorithm that is work-efficient
with respect to the HDT algorithm for small batch sizes, and is asymptotically
faster when the average batch size is sufficiently large. Given a sequence of
batched updates, where is the average batch size of all deletions, our
algorithm achieves expected amortized work per
edge insertion and deletion and depth w.h.p. Our algorithm
answers a batch of connectivity queries in expected
work and depth w.h.p. To the best of our knowledge, our algorithm
is the first parallel batch-dynamic algorithm for connectivity.Comment: This is the full version of the paper appearing in the ACM Symposium
on Parallelism in Algorithms and Architectures (SPAA), 201
- …