33,359 research outputs found
Faster Replacement Paths
The replacement paths problem for directed graphs is to find for given nodes
s and t and every edge e on the shortest path between them, the shortest path
between s and t which avoids e. For unweighted directed graphs on n vertices,
the best known algorithm runtime was \tilde{O}(n^{2.5}) by Roditty and Zwick.
For graphs with integer weights in {-M,...,M}, Weimann and Yuster recently
showed that one can use fast matrix multiplication and solve the problem in
O(Mn^{2.584}) time, a runtime which would be O(Mn^{2.33}) if the exponent
\omega of matrix multiplication is 2.
We improve both of these algorithms. Our new algorithm also relies on fast
matrix multiplication and runs in O(M n^{\omega} polylog(n)) time if \omega>2
and O(n^{2+\eps}) for any \eps>0 if \omega=2. Our result shows that, at least
for small integer weights, the replacement paths problem in directed graphs may
be easier than the related all pairs shortest paths problem in directed graphs,
as the current best runtime for the latter is \Omega(n^{2.5}) time even if
\omega=2.Comment: the current version contains an improved resul
Fully dynamic all-pairs shortest paths with worst-case update-time revisited
We revisit the classic problem of dynamically maintaining shortest paths
between all pairs of nodes of a directed weighted graph. The allowed updates
are insertions and deletions of nodes and their incident edges. We give
worst-case guarantees on the time needed to process a single update (in
contrast to related results, the update time is not amortized over a sequence
of updates).
Our main result is a simple randomized algorithm that for any parameter
has a worst-case update time of and answers
distance queries correctly with probability , against an adaptive
online adversary if the graph contains no negative cycle. The best
deterministic algorithm is by Thorup [STOC 2005] with a worst-case update time
of and assumes non-negative weights. This is the first
improvement for this problem for more than a decade. Conceptually, our
algorithm shows that randomization along with a more direct approach can
provide better bounds.Comment: To be presented at the Symposium on Discrete Algorithms (SODA) 201
Finding and evaluating community structure in networks
We propose and study a set of algorithms for discovering community structure
in networks -- natural divisions of network nodes into densely connected
subgroups. Our algorithms all share two definitive features: first, they
involve iterative removal of edges from the network to split it into
communities, the edges removed being identified using one of a number of
possible "betweenness" measures, and second, these measures are, crucially,
recalculated after each removal. We also propose a measure for the strength of
the community structure found by our algorithms, which gives us an objective
metric for choosing the number of communities into which a network should be
divided. We demonstrate that our algorithms are highly effective at discovering
community structure in both computer-generated and real-world network data, and
show how they can be used to shed light on the sometimes dauntingly complex
structure of networked systems.Comment: 16 pages, 13 figure
A Divide-and-Conquer Algorithm for Betweenness Centrality
The problem of efficiently computing the betweenness centrality of nodes has
been researched extensively. To date, the best known exact and centralized
algorithm for this task is an algorithm proposed in 2001 by Brandes. The
contribution of our paper is Brandes++, an algorithm for exact efficient
computation of betweenness centrality. The crux of our algorithm is that we
create a sketch of the graph, that we call the skeleton, by replacing subgraphs
with simpler graph structures. Depending on the underlying graph structure,
using this skeleton and by keeping appropriate summaries Brandes++ we can
achieve significantly low running times in our computations. Extensive
experimental evaluation on real life datasets demonstrate the efficacy of our
algorithm for different types of graphs. We release our code for benefit of the
research community.Comment: Shorter version of this paper appeared in Siam Data Mining 201
- …