Presentation is loading. Please wait.

Presentation is loading. Please wait.

All-Pairs Bottleneck Paths in Vertex Weighted graphs Asaf Shapira Microsoft Research Raphael Yuster University of Haifa Uri Zwick Tel-Aviv University.

Similar presentations


Presentation on theme: "All-Pairs Bottleneck Paths in Vertex Weighted graphs Asaf Shapira Microsoft Research Raphael Yuster University of Haifa Uri Zwick Tel-Aviv University."— Presentation transcript:

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


Download ppt "All-Pairs Bottleneck Paths in Vertex Weighted graphs Asaf Shapira Microsoft Research Raphael Yuster University of Haifa Uri Zwick Tel-Aviv University."

Similar presentations


Ads by Google