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

Approximating Distances in Graphs

Jan 11, 2016

Download

Documents

aiko

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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?