Download presentation
Presentation is loading. Please wait.
Published byLeo Morrison Modified over 9 years ago
1
All-Pairs Bottleneck Paths in Vertex Weighted graphs Asaf Shapira Microsoft Research Raphael Yuster University of Haifa Uri Zwick Tel-Aviv University
2
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(n 3- )) algorithms for directed/undirected graphs, with small integer edge weights.
3
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 v 83 4 2 u v 8 3 9 6 1 6 24
4
Previous Results [Polack 60]: O(n 3 ) algorithm for all pairs bottleneck paths in edge weighted directed graphs. [Hu 61]: O(n 2 ) 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.
5
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(n 2.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(n 2.86 ).
6
[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 Wittnesses for boolean matrix multiplication: a matrix W st: 1.If c ij =1 then W ij = k for some k st a ik =b kj =1. 2.If c ij =0 then W ij = 0. [Alon-Naor 92, Galil Margalit 92]: The witness matrix W can be computed in time O(n +o(1) ).
7
Min Witnesses for Bool Mat Multip Wittnesses for boolean matrix multiplication: a matrix W st: 1.If c ij =1 then W ij = k for some k st a ik =b kj =1. 2.If c ij =0 then W ij = 0. Minimum wittnesses for boolean matrix multip: a matrix W st: 1.If c ij =1 then W ij = k for the smallest k st a ik =b kj =1. 2.If c ij =0 then W ij = 0. [Czumaj, Kowaluk, Lingas 06]: The minimum witnesses matrix can be computed in time O(n 2.575 ).
8
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.
9
Finding Short Bottlenecks Bottleneck of a path = heaviest vertex on the path. P t (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. Q t (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 v 83 4 26 How can we compute bottlenecks of paths of length k ? b k (u,v) = Min (Min-Witness(P r · Q k-r )) u,v 0 ≤ r ≤ k Patch together two paths that meet at the bottleneck
10
Finding Short Bottlenecks Lemma: Bottlenecks of length O(1) are computable in O(n 2.575 ). We need to compute P t in O(n 2.575 ) ? A: adjacency matrix of G with 1’s on diagonal. b k (u,v) = Min (Min-Witness(P k · Q k-r )) u,v 0 ≤ r ≤ k P t (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. P t = (A · P t-1 ) B B: B ij =1 iff w(u) ≤ w(v).
11
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
12
The General Case Reachability + Solve recursively on B: T(n/2)+O(n ) 8 9 B = n/2 heaviest vertices A = n/2 lightest vertices
13
The General Case 1 5 A = n/2 lightest vertices 9 4 Solve short bottlenecks: O(n 2.575 ) Bottleneck
14
Running Time Running time is give by T(n) = 2T(n/2) + O(n 2.575 ) = O(n 2.575 ) In fact: Algorithms shows that finding bottlenecks is as easy finding minimum witnesses. We also prove the converse. Implies O(n 2.575 ) algorithm for finding maximum vertex weighted triangle. First proved by [Vassilevska Williams Yuster 06]. Improved by [Czumaj Lingas 06].
15
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(n 2.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.
16
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(n w ) algorithm for min-witnesses of boollean matrix-multiplication. 1) [Vassilevska Williams uster 06]: O(n 2.792 ) algorithm for bottlenecks paths in edge weighted graphs.
17
Thank You
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.