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

All-Pairs Bottleneck Paths in Vertex Weighted graphs

Embed Size (px)

DESCRIPTION

All-Pairs Bottleneck Paths in Vertex Weighted graphs. Asaf Shapira Microsoft Research Raphael Yuster University of Haifa Uri Zwick Tel-Aviv University. Background. All Pairs Shortest Paths: Given a weighted directed graph, - PowerPoint PPT Presentation

Citation preview

Page 1: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

All-Pairs Bottleneck Paths

in

Vertex Weighted graphs

Asaf ShapiraMicrosoft Research

Raphael Yuster University of Haifa

Uri Zwick Tel-Aviv University

Page 2: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

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.

Page 3: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

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

Page 4: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

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.

Page 5: All-Pairs Bottleneck Paths  in  Vertex Weighted 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).

Page 6: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

[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)).

Page 7: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

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).

Page 8: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

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.

Page 9: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

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

Page 10: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

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).

Page 11: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

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

Page 12: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

The General Case

Reachability + Solve recursively

on B:

T(n/2)+O(n)

89

B = n/2 heaviest vertices

A = n/2 lightest vertices

Page 13: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

The General Case

15

A = n/2 lightest vertices

9

4

Solve short bottlenecks: O(n2.575)Bottleneck

Page 14: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

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].

Page 15: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

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.

Page 16: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

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.

Page 17: All-Pairs Bottleneck Paths  in  Vertex Weighted graphs

Thank You