approximating distances in graphs

59
Approximating Distances in Graphs Uri Zwick Tel Aviv University Otwarte wykłady dla doktorantów informatyki Instytut Informatyki Uniwersytetu Warszawskiego Kwietnia 27-28, 2007

Upload: aiko

Post on 11-Jan-2016

35 views

Category:

Documents


0 download

DESCRIPTION

Uri Zwick. Tel Aviv University. Approximating Distances in Graphs. Otwarte wykłady dla doktorantów informatyki Instytut Informatyki Uniwersytetu Warszawskiego Kwietnia 27-28, 2007. All-Pairs Shortest Paths. APSP algorithm. n by n distance matrix. mn time. n 2 space. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Approximating  Distances in Graphs

Approximating Distances in Graphs

Uri ZwickTel Aviv University

Otwarte wykłady dla doktorantów informatykiInstytut Informatyki

Uniwersytetu Warszawskiego

Kwietnia 27-28, 2007

Page 2: Approximating  Distances in Graphs

APSPalgorith

m

All-Pairs Shortest Paths

n by ndistancematrix

Input: A weighted undirected graph G=(V,E), where |E|=m and |V|=n.

Output: An n n distance matrix.

mn timen2 space

Page 3: Approximating  Distances in Graphs

An estimated distance ’(u,v)

is of stretch t iff

(u,v) ’(u,v) t · (u,v)

An estimated distance ’(u,v)

is of surplus t iff

(u,v) ’(u,v) (u,v) + t

Approximate Shortest Paths

Let (u,v) be the distance from u to v.

Multiplicative

error

Additiveerror

Page 4: Approximating  Distances in Graphs

Multiplicative and additive spanners

Let G=(V, E) be a weighted undirected graph on n vertices. A subgraph G’=(V, E’) is a

t-spanner of G iff for every u,vV we have G’(u,v) ≤ t G(u,v).

Let G=(V, E) be a unweighted undirected graph on n vertices. A subgraph G’=(V, E’) is an

additive t-spanner of G iff for every u,vV we have

G’(u,v) ≤ G(u,v) + t.

Page 5: Approximating  Distances in Graphs

Compact datastructure

APSP

algorith

m

mn 1/k time

n 1+1/k space

Approximate Distance Oracles

O(1) query time stretch 2k1

Stretch-Space tradeoff is essentially optimal!

n by ndistancematrix

mn tim

e

n2 sp

ace

Weightedundirected graph

u,v δ’(u,v(

Page 6: Approximating  Distances in Graphs

1. All-pairs almost shortest paths (unweighted)

a. An O(n5/2)-time surplus-2 algorithm (ACIM’96)b. Additive 2-spanners with O(n3/2) edges.c. An O(n3/2m1/2)-time surplus-2 algorithm (DHZ’96)

2. Multiplicative spanners (weighted graphs)

a. (2k1)-spanners with n1+1/k edges (ADDJS’93)b. Linear time construction (BS’03)

3. Approximate distance oracles (weighted graphs)

a. Stretch=2k1 query time=O(1) space=O(kn1+1/k) (TZ’01)

4. Spanners with sublinear distance errors (unweighted)

a. Additive error O(d1/(k1)) with O(kn1+1/k) edges (TZ’05)

Page 7: Approximating  Distances in Graphs

All-Pairs Almost Shortest Pathsunweighted, undirected graphs

SurplusTimeAuthors

0mnfolklore

2(k1)n2 (m/n)1/k”

2(k1)n2+1/(3k4)”

2n5/2Aingworth-Chekuri-Indyk-Motwani ’96

2n3/2m1/2Dor-Halperin-Zwick ’96

2n7/3”

Page 8: Approximating  Distances in Graphs

1) Add each vertex v to A, independently, with probability n1/2. (Elements of A are “centers”.)

2) From every center vA, find a tree of shortest paths from v and add its edges to E’.

3) For every non-centervA:

a) If v has a neighbor uA, then add the single edge (u,v) to E’.

b) Otherwise, add all the edges incident to v to E’.

4) Solve the APSP problem on the subgraph G’=(V, E’).

O(n5/2)-time surplus-2 algorithmunweighted, undirected graphs

O(n)

O(m|A|)= O(n5/2)

O(m)

O(n|E’|)= O(n5/2)

Page 9: Approximating  Distances in Graphs

Number of edges in E’• The expected # of edges added to E’ in 2) is O(n3/2).

• The expected # of edges added to E’ in 3) is also O(n3/2).

Consider a vertex v of degree d

Hence, the expected number of edgesincident to v added to E’ is at most

d(1n1/2)d + 1 ≤ n1/2

If one of the neighbors of v is placed in A, then E’ will contain

only one edge incident on v.

v

Exercise 0: Check it!

Page 10: Approximating  Distances in Graphs

The surplus-2 algorithmCorrectness – Case 1

Case 1: No vertex on a shortest path from u to v has a neighboring center.

All the edges on the path are in E’.

We find a shortest path from u to v.

u v

Page 11: Approximating  Distances in Graphs

The surplus-2 algorithmCorrectness – Case 2

Case 2: At least one vertex on a shortest path from u to v has a neighboring center.

We find a path from u to v of surplus at most 2

u vw

(u,w)+1 (w,v)+1w’

Page 12: Approximating  Distances in Graphs

Additive 2-spanners [ACIM’96] [DHZ’96]

Every unweighted undirected graph G=(V, E) on n vertices has a subgraph

G’=(V, E’) with O(n3/2) edges such that for every u,vV we have G’(u,v) ≤ G(u,v) + 2.

Additive 6-spanners [BKMP ’04]

Every unweighted undirected graph G=(V, E) on n vertices has a subgraph

G’=(V, E’) with O(n4/3) edges such that for every u,vV we have G’(u,v) ≤ G(u,v) + 6.

Major open problem: Are there additive spanners with o(n4/3) edges?

Page 13: Approximating  Distances in Graphs

Exercise 1:

Show that with high probability, all distances larger than 2n1/2ln n are correctly computed by the O(n5/2) time surplus 2 algorithm.

Page 14: Approximating  Distances in Graphs

1) Add each vertex v to A, independently, with probability (n/m)1/2. (Elements of A are “centers”.)

2) From every center vA, find distances to all othervertices in the graph. (Do not add edges to E’.)

3) For every non-centervA:a) If v has a neighbor uA,

then add the single edge (u,v) to E’.

b) Otherwise, add all the edges incident to v to E’.

4) For every non-center vertex vA: a) Construct a set F(v)={ (v,w) | wA } of weighted

edges. The weight of an edge (v,w) is (w,v).

b) Find distances from v to all other vertices in the weighted graph G’(v)=(V, E’F(v)).

O(n3/2m1/2)-time surplus-2 algorithmunweighted, undirected graphs

Page 15: Approximating  Distances in Graphs

O(n3/2m1/2)-time surplus-2 algorithmCorrectness – Case 2

Case 2: At least one vertex on a shortest path from u to v has a neighboring center.

Consider the last vertex with a neighboring center.

We find a path from u to v of surplus at most 2

u vw

(u,w)+1 w’

Page 16: Approximating  Distances in Graphs

All-Pairs Almost Shortest Pathsweighted undirected graphs

StretchTime Reference

1mnDijkstra ’59

2n3/2m1/2Cohen-Zwick ’97

7/3n7/3”

3n2”

Some log factors ignores

Page 17: Approximating  Distances in Graphs

Spanners

Given an arbitrary dense graph, can we always find a relatively sparse subgraph that

approximates all distances fairly well?

Page 18: Approximating  Distances in Graphs

Spanners [PU’89,PS’89]

Let G=(V,E) be a weighted undirected graph.

A subgraph G’=(V,E’) of G is said to be a t-spannerof G iff δG’ (u,v) ≤ t δG (u,v) for every u,v V.

Theorem:

Every weighted undirected graph has a (2k1) -spanner of size O(n1+1/k). [ADDJS’93]

Furthermore, such spanners can be constructed deterministically in linear time. [BS’03] [RTZ’05]

The size-stretch trade-off is optimal if there are graphswith (n1+1/k) edges and girth 2k+2, as conjectured by Erdös and others.

Page 19: Approximating  Distances in Graphs

Exercise 2:

Show that the following simple algorithm constructs, in O(m) time, a (2k1)-spanner with at most n1+1/k edges of any undirected unweighted graph.

While the graph is not empty, choose a vertex vV.

Let Ni(v) be the set of vertices of distance at most i from v. Let j be the smallest integer for which |Nj(v)| ≤ n1/k |Nj1(v)|.

Add to the spanner a tree of shortest path from v to all vertices of Nj(v) and delete the vertices of Nj1(v) and all the edges adjacent to them from the graph.

Page 20: Approximating  Distances in Graphs

Exercise 3:

The girth of a graph is the size of the shortest cycle in the graph.

Use the construction of the previous exercise to show that the girth of any graph with at least n1+1/k edges is at most 2k.

Girth Conjecture (Erdös and others):

There are n-vertex graphs with Ω(n1+1/k) edges that have girth > 2k .

Known for k=1,2,3,5.

Page 21: Approximating  Distances in Graphs

A simple spanner construction algorithm[Althöfer, Das, Dobkin, Joseph, Soares ’93]

• Consider the edges of the graph in non-decreasing order of weight.

• Add each edge to the spanner if it does not close a cycle of size at most 2k.

• The resulting graph is a (2k1)-spanner.• The resulting graph has girth > 2k. • Hence, number of edges in it is at most n1+1/k.

Page 22: Approximating  Distances in Graphs

If |cycle|2k, then red edge can be removed.

Page 23: Approximating  Distances in Graphs

Exercise 4:

Let mg(n) be the maximum number of edges in an n-vertex graph of girth g.

Show that every n-vertex graph has a t-spanner with at most mt+2(n) edges and that this result is best possible.

Page 24: Approximating  Distances in Graphs

Linear time spanner construction[Baswana-Sen ’03]

• The algorithm is composed of k iterations.

• At each iteration some edges are added to the spanner and some edges and vertices are removed from the graph.

• At the end of the i-th iteration we have a collection of about n1i/k trees of depth at most i that contain all the surviving vertices of the graph.

Page 25: Approximating  Distances in Graphs

Tree properties

• The edges of the trees are spanner edges.

• The weights of the edges along every leaf-root path are non-increasing.

• For every surviving edge (u,v) we have w(u,v) w(u,p(u)), where p(u) is the parent of u.

i

w1

w3

w2

w4

w1 w2 w3

w4 w2

Page 26: Approximating  Distances in Graphs

Notation

Ai – roots of trees of the i-th iterationT(v) – the tree rooted at v

T(v)

u

v

E(u,T(v)) – the edges connecting u and T(v).e(u,T(v)) – the lightest edge from E(u,T(v)).w(u,T(v)) – the weight of e(u,T(v)) (or ).

Page 27: Approximating  Distances in Graphs

The i-th iterationEach vertex vAi-1 is added to Ai with probability n1/k.

In the last iteration Ak.

u

v1

Let v1,v2,… be the vertices of Ai-1 such thatw(u,T(v1)) ≤ w(u,T(v2)) ≤ …

v2 vrAi

Let r=r(u) be the minimal index for which vrAi.If there is no such index, let r(u)=|Ai1|.

Page 28: Approximating  Distances in Graphs

The i-th iteration (cont.)

u

v1

For every vertex u that belongs to a tree whose root is in Ai-1Ai:

v2

For every 1 ≤ j ≤ r :Add e(u,T(vi)) to the spanner.Remove E(u,T(vi)) from the graph

Remove edges that connect vertices in the same tree.

Remove vertices that have no remaining edges.

vrAi

Page 29: Approximating  Distances in Graphs

How many edges are added to the spanner?

u

v1 v2 vrAi

E[r(u)] ≤ n1/k

Hence, the expected number of edges added to the spanner in each iteration is at most n1+1/k.

Page 30: Approximating  Distances in Graphs

What is the stretch?

i1

Let e be an edge deleted in the i-th iteration.

The spanner contains a path of at most 2(i1)+1

edges between the endpoints of e.

eThe edges of the path are

not heavier than e

Hence, stretch ≤ 2k1

Page 31: Approximating  Distances in Graphs

Exercise 4:

Complete the proof that the algorithm of Baswana-Sen algorithm produces a (2k1)-spanner with at most O(kn1+1/k) edges. Show that it can be implemented to run in O(km) time.

Exercise 5:

Prove the correctness of the following variant of the Baswana-Sen algorithm:

Perform only the first (k1)/2 iterations of the original algorithm. (Assume that k is odd.) For every pair of trees produced in the last iteration, find the lightest surviving edge that connects them and add it to the spanner.

Note that a factor of k is lost in the number of edges.

Page 32: Approximating  Distances in Graphs

Compact datastructure

APSP

algorith

m

mn 1/k time

n 1+1/k space

Approximate Distance Oracles (TZ’01)

O(1) query time stretch 2k1

Stretch-Space tradeoff is essentially optimal!

n by ndistancematrix

mn tim

e

n2 sp

ace

Weightedundirected

graph

u,v δ’(u,v(

Page 33: Approximating  Distances in Graphs

Approximate Distance Oracles [TZ’01]A hierarchy of centers

A0V ; Ak Ai sample(Ai1,n1/k)

Page 34: Approximating  Distances in Graphs

Bunches A0 =A1 =A2 =

v

p1(v)

p2(v)

Page 35: Approximating  Distances in Graphs

Lemma: E[|B(v)|] ≤ kn1/k

Proof: |B(v)Ai| is stochastically

dominated by a geometric random

variable with parameter p=n1/k.

Page 36: Approximating  Distances in Graphs

The data structure

Keep for every vertex vV:

• The centers p1(v), p2(v),…, pk-1(v)

• A hash table holding B(v)

For every wV, we can check, inconstant time, whether wB(v), and if so, what is (v,w).

Page 37: Approximating  Distances in Graphs

Query answering algorithm

Algorithm distk(u,v)

wu , i0

while wB(v)

{ i i+1

(u,v) (v,u)

w pi(u) }

return (u,w)+ (w,v)

Page 38: Approximating  Distances in Graphs

Query answering algorithm

w0= u v

w1=p1(v)A1

w2=p2(u)A2

w3=p3(v)A3

Page 39: Approximating  Distances in Graphs

u v

wi1=pi1(v)Ai1

wi=pi(u)Ai

Analysis

(i1)ii

(i+1)Claim 1:

δ(u,wi) ≤ iΔ , i even

δ(v,wi) ≤ iΔ , i odd

Claim 2:

δ(u,wi) + δ(wi,v) ≤ (2i+1)Δ≤ (2k1)Δ

Page 40: Approximating  Distances in Graphs

Exercise 6:

What is the stretch of a query answering algorithm that does not swap u and v in each iteration, i.e., finds the smallest i for which w=pi(u)B(v) and returns (u,w)+ (w,v) ?

Page 41: Approximating  Distances in Graphs

Where are the spanners?

Define clusters, the “duals” of bunches.

For every uV, put in the spanner a tree of shortest paths from u to all the

vertices in the cluster of u.

Page 42: Approximating  Distances in Graphs

Bunches and Clusters

Page 43: Approximating  Distances in Graphs

Clusters A0 =A1 =A2 =

w

Page 44: Approximating  Distances in Graphs

Computing Clusters

Lemma: If vC(w) and u lies on a shortest path from w to v, then uC(w).

Using this fact, each cluster can be computed by a modified version of Dijkstra’s algorithm that only examines edges that touch vertices of the cluster.

Page 45: Approximating  Distances in Graphs

Exercise 7:

Show that the subgraph composed of the shortest path trees of the clusters is a (2k1)-spanner with an expected number of O(kn1+1/k) edges.

Page 46: Approximating  Distances in Graphs

Approximate distance oracles - summary

Preproceesing time = O(kmn1+1/k)Space = O(n1+1/k)

Query time = O(k)Stretch ≤ 2k1

The space/stretch tradeoff is essentially optimal (modulo the girth conjecture)

Can the query time be reduced to O(1)?

Manor and Naor (2006) recently gave a solution with space = O(n1+1/k) , stretch = O(k) , query time = O(1)

Page 47: Approximating  Distances in Graphs

Exercise 8:

Show that the subgraph composed of the shortest path trees of the clusters is a (2k1)-spanner with an expected number of O(kn1+1/k) edges.

Page 48: Approximating  Distances in Graphs

Additive SpannersLet G=(V,E) be a unweighted undirected graph.

A subgraph G’=(V, E’) of G is said to be an additive t-spanner of G iff δG’ (u,v) ≤ δG (u,v) +t for every u,v V.

Theorem: Every unweighted undirected graph has an additive 2-spanner of size O(n3/2). [ACIM ’96] [DHZ ’96]

Theorem: Every unweighted undirected graph has an additive 6-spanner of size O(n4/3). [BKMP ’04]

Major open problem

Do all graphs have additive spanners with only O(n1+ε) edges, for every ε>0 ?

Page 49: Approximating  Distances in Graphs

Spanners with sublinear surplus

Theorem:

For every k > 1, every undirected graph G=(V,E) on n vertices has a subgraph G’=(V,E’) with O(n1+1/k) edges such that for every u,vV, if δG(u,v)=d, then δG’(u,v)=d+O(d11/(k1)).

d d + O(d11/(k1))

Extends and simplifies a result of Elkin and Peleg (2001)Improved recently by Pettie (2007)

Page 50: Approximating  Distances in Graphs

The construction of the approximate distance oracles, when applied to unweighted

graphs, produces spanners with sublinear surplus!

We present a slightly modified construction with a slightly

simpler analysis.

Page 51: Approximating  Distances in Graphs

Balls

u

p1(u)

p2(u)

A0 =A1 =A2 =

Page 52: Approximating  Distances in Graphs

Spanners with sublinear surplus

For every uV, add to the spannera shortest paths tree of Ball[u].

Select a hierarchy of centers A0A1…Ak1.

Page 53: Approximating  Distances in Graphs

The path-finding strategy

Let Δ be an integer parameter.

Suppose we are at uAi and want to go to v.

If the first xi = ΔiΔi1 edges of a shortest path from u to v are in the spanner, then use them.

Otherwise, head for the (i+1)-center ui+1 nearest to u.

uAi v

ui+1Ai+1

xi

xi

► The distance to ui+1 is at most xi. (As u’Ball(u).)

u’

Page 54: Approximating  Distances in Graphs

The path-finding strategy

uAi v

ui+1Ai+1

xi

xi

u’

We either reach v, or at least make xi = ΔiΔi1 steps in the right direction.

Or, make at most xi = ΔiΔi1 steps, possibly in a wrong direction, but reach a center of level i+1.

If i=k1, we will be able to reach v.

Page 55: Approximating  Distances in Graphs

The path-finding strategy

u0 v

xi1

ui

x1

x0

xi2

xi = Δ iΔ i1

Δi1

After at most Δi steps:

we reach v

distance to v decreased by

Δi 2Δi1

u’

or

Page 56: Approximating  Distances in Graphs

The path-finding strategy

Surplus

2Δi1

Stretch

The surplus is incurred only once!

After at most Δi steps:

we reach v

distance to v decreased by

Δi 2Δi1

Page 57: Approximating  Distances in Graphs

Sublinear surplus

This holds for any Δ !Δ is part of the analysis, not the construction.

Page 58: Approximating  Distances in Graphs

Improved spanners with additive error

Pettie (2007) has recently obtained improved spanners with additive errors.

Page 59: Approximating  Distances in Graphs

Main open problems

• Additive spanners?

• Approximate distance oracleswith additive errors?