Upload
leo-morrison
View
241
Download
2
Embed Size (px)
Citation preview
All-Pairs Bottleneck Paths
in
Vertex Weighted graphs
Asaf ShapiraMicrosoft Research
Raphael Yuster University of Haifa
Uri Zwick Tel-Aviv University
Background
All Pairs Shortest Paths: Given a weighted directed graph,
find for all pairs u v, the shortest path connecting u to v.
[Seidel 95, Alon Galil Margalit 97, Zwick 98] : Subcubic
(that is O(n3-)) algorithms for directed/undirected graphs, with
small integer edge weights.
What is a Bottleneck
Bottleneck of a path = heaviest vertex on path (inc. endpoints).
Bottleneck between u and v = minimum bottleneck of all paths
connecting u and v.
b(u,v) = Bottleneck from u to v.
u v834 2
u v
83
9
6 1
6
2 4
Previous Results
[Polack 60]: O(n3) algorithm for all pairs bottleneck paths in
edge weighted directed graphs.
[Hu 61]: O(n2) algorithm for all pairs bottleneck paths in
edge weighted undirected graphs.
[Dijkstra 59 + Fredman-Tarjan 87]: O(m+n log n) algorithm for
single source bottleneck paths in edge weighted directed
graphs.
Main Results
Theorem: Given a vertex weighted directed graph G=(V,E) it
is possible to compute b(u,v) for all pairs u,v in time O(n2.575).
d(u,v) = length of shortest path from u to v.
db(u,v) = minimum bottleneck over all paths of length d(u,v).
Theorem: Given a vertex weighted graph G=(V,E) it is
possible to compute db(u,v) for all pairs u,v in time O(n2.86).
[Coppersmith-Winograd 90]:The boolean product of two n by n
matrices can be computed using n algebraic operations(additions, subtractions, multiplications), where < 2.376.
Bollean Matrix Multiplication
kjiki
ij bac
BAC
Wittnesses for boolean matrix multiplication: a matrix W st:
1. If cij=1 then Wij = k for some k st aik=bkj=1.
2. If cij=0 then Wij = 0.
[Alon-Naor 92, Galil Margalit 92]: The witness matrix W can be
computed in time O(n+o(1)).
Min Witnesses for Bool Mat Multip
Wittnesses for boolean matrix multiplication: a matrix W st:
1. If cij=1 then Wij = k for some k st aik=bkj=1.
2. If cij=0 then Wij = 0.
Minimum wittnesses for boolean matrix multip: a matrix W st:
1. If cij=1 then Wij = k for the smallest k st aik=bkj=1.
2. If cij=0 then Wij = 0.
[Czumaj, Kowaluk, Lingas 06]: The minimum witnesses matrix
can be computed in time O(n2.575).
Additional Results
Theorem: Computing All-Pairs Bottleneck paths is (up to
constant factors) equivalent to finding minimum witnesses.
Definition: An LCA (lowest common ancestor) of vertices u, v
in a DAG is a vertex w that a has a path to u and a path to v,
such that no other vertex reachable from w has a path to u, and
a path to v.
Proposition: Computing All Pairs LCAs in a DAG is not harder
than computing All-Pairs Bottleneck Paths.
Finding Short Bottlenecks
Bottleneck of a path = heaviest vertex on the path.
Pt(u,v) = 1 if and only if there is a path from u to v, of length
at most t, such that v has maximum weight.
Qt(u,v) = 1 if and only if there is a path from u to v, of length
at most t, such that u has maximum weight.
u v834 26
How can we compute bottlenecks of paths of length k ?
bk(u,v) = Min (Min-Witness(Pr · Qk-r))u,v
0 ≤ r ≤ k
Patch together two paths that meet at the bottleneck
Finding Short Bottlenecks
Lemma: Bottlenecks of length O(1) are computable in O(n2.575).
We need to compute Pt in O(n2.575) ?
A: adjacency matrix of G with 1’s on diagonal.
bk(u,v) = Min (Min-Witness(Pk · Qk-r))u,v
0 ≤ r ≤ k Pt(u,v) = 1 if and only if there is a path from u to v, of length
at most t, such that v has maximum weight.
Pt = (A · Pt-1) B
B: Bij =1 iff w(u) ≤ w(v).
The General Case
Solve recursively the problem on A
T(n/2)
1
2
8
n
B = n/2 heaviest vertices
A = n/2 lightest vertices
The General Case
Reachability + Solve recursively
on B:
T(n/2)+O(n)
89
B = n/2 heaviest vertices
A = n/2 lightest vertices
The General Case
15
A = n/2 lightest vertices
9
4
Solve short bottlenecks: O(n2.575)Bottleneck
Running Time
Running time is give by
T(n) = 2T(n/2) + O(n2.575) = O(n2.575)
In fact: Algorithms shows that finding bottlenecks is as easyfinding minimum witnesses.
We also prove the converse.
Implies O(n2.575) algorithm for finding maximum vertex weightedtriangle. First proved by [Vassilevska Williams Yuster 06].Improved by [Czumaj Lingas 06].
Finding Short Bottleneck Paths
d(u,v) = length of shortest path from u to v.
db(u,v) = minimum bottleneck over all paths of length d(u,v).
Theorem: Given a vertex weighted graph G=(V,E) it is
possible to compute db(u,v) for all pairs u,v in time O(n2.86).
Main Idea: Handle the case of short paths using previous alg.
Handle long paths using “bridging sets”: select a small set of
vertices B, and solve the single-source problem for all v B.
whp, we hit all the “long” shortest-paths.
Concluding Remarks
3) Resolve complexity of Least Common Ancestors in DAGs: Is LCA in DAGs as hard as min-witnesses for boolean matrix multiplication? Is LCA in DAGs as easy as boolean matrix multiplication?
2) Find an O(nw) algorithm for min-witnesses of boollean matrix-multiplication.
1) [Vassilevska Williams uster 06]: O(n2.792) algorithm for bottlenecks paths in edge weighted graphs.
Thank You