Top Banner
Distance sensitivity oracles Surender Baswana Department of CSE, IIT Kanpur.
37

Distance sensitivity oracles

Feb 24, 2016

Download

Documents

Sugar

Distance sensitivity oracles. Surender Baswana Department of CSE, IIT Kanpur. Shortest paths problem. Definition: Given a graph G=(V,E), w : E  R, build a data structure which can report shortest path or distance between any pair of vertices. P( u,v ) : shortest path from u to v - 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: Distance sensitivity oracles

Distance sensitivity oracles

Surender BaswanaDepartment of CSE, IIT Kanpur.

Page 2: Distance sensitivity oracles

Shortest paths problem

Definition: Given a graph G=(V,E), w: E R, build a data structure which can report shortest path or distance between any pair of vertices.

P(u,v): shortest path from u to vd(u,v): distance from u to v

Objective: reporting P(u,v) in O(|P(u,v)|) time reporting d(u,v) in O(1) time

Number of edges on P(u,v)

Page 3: Distance sensitivity oracles

Versions of the shortest paths problem

Single source shortest paths (SSSP): Space: O(n) Preprocessing time : O(m+n log n) Dijkstra’s algorithm O(mn) Bellman Ford algorithm

All-pairs shortest paths(APSP): Space: O(n2) Preprocessing time : O(n3) Floyd Warshal algorithm O(mn+n2log n) Johnson’s algorithm O(mn+n2loglog n) [Pettie 2004]

Page 4: Distance sensitivity oracles

Distance sensitivity oracle

Notations: P(u,v,x): shortest path from u to v in G\{x} d(u,v,x): distance from u to v in in G\{x}

Distance sensitivity oracle:

A compact data structure capable of reporting P(u,v,x) and d(u,v,x) efficiently.

Page 5: Distance sensitivity oracles

Motivation

Model of a real life network:• Prone to failure of nodes/links• Failures are rare • Repair mechanism exists usually (failed node/link is up after some time)

Problem formulation:Given a parameter k << n, build a compact data structure which can reportP(u,v,S) for any subset S of at most k vertices/edges.

Natural generalization of shortest paths problem

Page 6: Distance sensitivity oracles

Outline of the talk

• Survey of the results on distance sensitivity oracles

• Replacement-paths problem for undirected graphs

• All-pairs distance sensitivity oracle

• Open problems

Page 7: Distance sensitivity oracles

RESULTS ON DISTANCE SENSITIVITY ORACLES

Page 8: Distance sensitivity oracles

A related problem: replacement paths problem

Problem definition: Given a source s, destination t, compute d(u,v,e) efficiently for each e ϵ P(s,t) .

Trivial algorithm: For every edge e ϵ P(s,t), run Dijkstra’s algorithm from s in G\{e}.

Time complexity: O(mn)

s

t

P(s,t)

Also the best till date

Page 9: Distance sensitivity oracles

A related problem: replacement paths problem

Better bounds available for replacement paths problem for

Undirected graphs: Time complexity: O(m+n log n) [Gupta et al. 1989] [Hershberger and Suri, 2001]

Unweighted directed graphs: Time complexity: O(m ) (Randomized MonteCarlo algorithm)

[Roditty and Zwick 2005]

Page 10: Distance sensitivity oracles

Single source distance sensitivity oracle

Query: report d(s,v,x) for any v,x ϵ V

Trivial solution: For each xϵ V, store a shortest paths tree in G\{x} Space: ϴ(n2) Preprocessing time: O(mn+n2log n)

Lower bound (even for the replacement paths problem): Space: Ω(m) Preprocessing time: Ω(m) [Hershberger, Suri, Bhosle 2004]

Also the best known

Page 11: Distance sensitivity oracles

Single source distance sensitivity oraclefor planar graphs

For a planar graph G=(V,E) on n vertices and a source s, we can build a data structure for reporting d(s,v,x) with parameters:

Space O(n polylog n)Preprocessing time O(n polylog n)Query time O(log n)

[B., Lath, and Mehta SODA2012]

Page 12: Distance sensitivity oracles

Single source approximate distance sensitivity oracle

d’(s,v,x) ≤ t d(s,v,x) for all v,x ϵ V

Undirected unweighted graphs stretch: (1+ε) for any ε>0 space: O(n log n)

Undirected weighted graphs stretch: 3 space: O(n log n)

[B. and Khanna 2010]

Page 13: Distance sensitivity oracles

All-pairs distance sensitivity oracle

Query: report d(u,v,x) for any u,v,x ϵ V

Trivial solution: For each v,xϵ V, store a shortest paths tree rooted at v in G\{x} Space: ϴ(n3) Preprocessing time: O(mn2+n3log n)

Upper bound: Space: ϴ(n2 log n) [Demetrescu et al. 2008] Preprocessing time: O(mn polylog n) [Bernstein 2009]

Page 14: Distance sensitivity oracles

REPLACEMENT PATHS PROBLEM IN UNDIRECTED

GRAPHS

Page 15: Distance sensitivity oracles

Replacement paths problem in undirected graphs

Given an undirected graph G=(V,E), source s, destination t, compute d(s,t,e) for each e ϵ P(s,t).

Time complexity: O(m+n log n)

Tools needed :

• Fundamental of shortest paths problem

• Dijkstra’s algorithm

s

t

P(s,t)

Page 16: Distance sensitivity oracles

Replacement paths problem in undirected graphs

s

t

Txi

xi+1

ei

Page 17: Distance sensitivity oracles

Replacement paths problem in undirected graphs

s

t

xi

xi+1

Ui

Di

How will P(s,t,ei) look like ?

ei

u

Page 18: Distance sensitivity oracles

Replacement paths problem in undirected graphs

s

t

xi

xi+1

Ui

Di

ei

u

v

What about P(v,t,e) ?d(s,t,e) = d(s,u) + w(e)+ d(v,t,e)for some edge (u,v)P(v,t,e) = P(v,t) for each v ϵ D

Page 19: Distance sensitivity oracles

Replacement paths problem in undirected graphs

• Compute shortest path tree rooted at s• Compute shortest path tree rooted at t• For i=1 to k do ei) = min

Space = O(n)Preprocessing time :

Use heap data structure to compute ei) efficiently

O(m+n log n)

Page 20: Distance sensitivity oracles

ALL-PAIRS DISTANCE SENSITIVITY ORACLE

Page 21: Distance sensitivity oracles

Range-minima problem

Query: Report_min(A,i,j) : report smallest element from {A[i],…,A[j]}

Aim : To build a compact data structure which can answer Report_min(A,i,j) in O(1) time for any 1 ≤ i < j ≤ n.

3.1 29 99 41.5781 67.4

i j n1

A

Page 22: Distance sensitivity oracles

Range-minima problem

Why does O(n2) bound on space appear so hard to break ?

… If we fix the first parameter i, we need Ω(n) space. So for all i, we need Ω(n2) space.

3.1 29 99 41.5781 67.4

1

A

ni

True fact

wrong inference

Page 23: Distance sensitivity oracles

Range-minima problem : O(n log n) space

i j

Using collaboration

i n1A

Page 24: Distance sensitivity oracles

Range-minima problem : O(n log n) space

2

4

8

2𝑡

1

i n1A

Compute (n × log n) matrix M s.t.M[i,t] = min {A[i],A[i+1],….,A[i + ] }

Page 25: Distance sensitivity oracles

Range-minima problem : O(n log n) space

i n1A

j

2𝑘

2𝑘+1

j

Page 26: Distance sensitivity oracles

All-pairs distance sensitivity oracleTools and Observations:

Definition: Portion of P(u,v,x) between a and b is called detour associated with P(u,v,x).

u vx

How does P(u,v,x) appear relative to P(u,v) ?

ba

Page 27: Distance sensitivity oracles

All-pairs distance sensitivity oracleTools and Observations:

2𝑘

4

21

Page 28: Distance sensitivity oracles

All-pairs distance sensitivity oracleTools and Observations:

2𝑘

4

21

x y z

Page 29: Distance sensitivity oracles

All-pairs distance sensitivity oracleBuilding it in pieces…

Forward data structure :For the graph G:Each vertex u ϵ V keeps the following information: For each level i ≤ log n, For each vertex x at level , a data structure storing d(u,v,x) for each descendant of x.

Space occupied by Forward data structure per vertex: O(n log n)

Page 30: Distance sensitivity oracles

All-pairs distance sensitivity oracleOne more Observation:

Let GR be the graph G after reversing all the edge directions.

Observation:Path P(u,v,x) in G is present, though with direction reversed,as P(v,u,x) in GR.

d(u,v,x) in G is the same as d(v,u,x) in GR

Page 31: Distance sensitivity oracles

All-pairs distance sensitivity oracleBuilding it in pieces…

Backward data structure :For the graph GR:Each vertex u ϵ V keeps the following information: For each level i ≤ log n, For each vertex x at level , a data structure storing d(u,v,x) for each descendant of x.

Space occupied by Backward data structure per vertex: O(n log n)

Page 32: Distance sensitivity oracles

Exploring ways to compute d(u,v,x) …

u v

2𝑘+1

2𝑘 tt

u’(x) x

If Detour of P(u,v,x) departs after u’(x), then we are done !

What if Detour of P(u,v,x) departs before u’(x)?

v’(x)

Use backward data structure at v to compute d(v,u,x) if possible

What if Detour of P(u,v,x) enters P(u,v) after v’(x)?

Page 33: Distance sensitivity oracles

Exploring ways to compute d(u,v,x) …

u vu’(x) v’(x)x

The Detour of P(u,v,x) skips all vertices from P(u,v)lying from level to

2𝑘

2𝑘+1

Page 34: Distance sensitivity oracles

All-pairs distance sensitivity oracleBuilding it in pieces…

Middle data structure :For the graph G:Each vertex u ϵ V keeps the following information: For each level i ≤ log n, For each vertex subpath P(x,y)originating at level a data structure storing d(u,v,P) for each descendant v of y.

Space occupied by Middle data structure per vertex: O(n log n)

Total space of data structure: O(n2)

Page 35: Distance sensitivity oracles

OPEN PROBLEMS

Page 36: Distance sensitivity oracles

Open ProblemsSingle source distance sensitivity oracle:

• (1+ε)-approximation for undirected weighted graphs.

Page 37: Distance sensitivity oracles

Open ProblemsAll-pairs distance sensitivity oracle:

• Better space-query trade off for planar graphs ?

• Handling multiple failures ?