Distance sensitivity oracles
Download
Report
Transcript Distance sensitivity oracles
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
d(u,v): distance from u to v
Number of edges on P(u,v)
Objective:
reporting P(u,v) in O(|P(u,v)|) time
reporting d(u,v) in O(1) time
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]
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.
Motivation
Natural generalization of
shortest paths problem
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 report
P(u,v,S) for any subset S of at most k vertices/edges.
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
A related problem: replacement paths problem
Problem definition: Given a
s
source s, destination t, compute
d(u,v,e) efficiently for each e ϵ P(s,t) .
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)
t
Also the best till date
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]
Single source distance sensitivity oracle
Query: report d(s,v,x) for any v,x ϵ V
Trivial solution:
Also the best known
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]
Single source distance sensitivity oracle
for 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]
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)
[B. and Khanna 2010]
Undirected weighted graphs
stretch: 3
space: O(n log n)
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]
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).
s
Time complexity: O(m+n log n)
P(s,t)
Tools needed :
t
•
Fundamental of shortest paths problem
•
Dijkstra’s algorithm
Replacement paths problem in undirected
graphs
s
ei
xi
xi+1
t
T
Replacement paths problem in undirected
graphs
s
How will P(s,t,ei)
look like ?
Ui
ei
xi
xi+1
u
t
Di
Replacement paths problem in undirected
graphs
s
d(s,t,e)
d(s,u)P(v,t,e)
+ w(e)+? d(v,t,e)
What=about
for=some
(u,v)v ϵ D
P(v,t,e)
P(v,t)edge
for each
Ui
ei
xi
xi+1
u
t
v
Di
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
d(𝑠, 𝑡,ei) = min d(𝑠, 𝑢) + d(𝑡, 𝑣) + 𝑤 𝑢, 𝑣
Space = O(n)
Preprocessing time :
𝑢ϵ𝑈𝑖, 𝑣ϵ 𝐷𝑖
O(m+n log n)
Use heap data structure to compute d(𝑠, 𝑡,ei) efficiently
Range-minima problem
Query:
Report_min(A,i,j) : report smallest element from {A[i],…,A[j]}
1
A
3.1
29
i
j
99
781
n
41.5 67.4
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.
Range-minima problem
Why does O(n2) bound on space appear so hard to break ?
1
A
3.1
n
i
29
99
781
… If we fix the first parameter i, we need Ω(n) space.
True fact
So
for all i, we need Ω(n2) space.
wrong inference
41.5 67.4
Range-minima problem : O(n log n) space
Using collaboration
i
j
A
1
i
n
Range-minima problem : O(n log n) space
2𝑡
8
4
2
1
A
1
n
i
Compute (n × log n) matrix M s.t.
M[i,t] = min {A[i],A[i+1],….,A[i + 𝟐𝒕 ] }
Range-minima problem : O(n log n) space
2𝑘+1
2𝑘
A
1
i
j
j −2𝑘
n
All-pairs distance sensitivity oracle
Tools and Observations:
u
a
x
b
v
How does P(u,v,x)
appear relative to P(u,v)
Definition: Portion ?of P(u,v,x) between a and b is called detour associated
with P(u,v,x).
All-pairs distance sensitivity oracle
Tools and Observations:
1
2
4
2𝑘
All-pairs distance sensitivity oracle
Tools and Observations:
1
2
4
x
y
z
2𝑘
All-pairs distance sensitivity oracle
Building 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 2𝑖 ,
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)
All-pairs distance sensitivity oracle
One 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
All-pairs distance sensitivity oracle
Building 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 2𝑖 ,
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)
Exploring ways to compute d(u,v,x) …
u
x
u’(x)
t
t
2𝑘
2𝑘+1
If Detour of P(u,v,x) departs after u’(x), then we
are done !
What
if Detour
of
P(u,v,x)
departs
u’(x)?
What
if Detour
of structure
P(u,v,x)
enters
after
Use
backward
data
at v before
toP(u,v)
compute
d(v,u,x) v’(x)?
if possible
v’(x)
v
Exploring ways to compute d(u,v,x) …
u
u’(x)
x
v’(x)
2𝑘
2𝑘+1
The Detour of P(u,v,x) skips all vertices from P(u,v)
lying from level 2𝑘 to 2𝑘+1
v
All-pairs distance sensitivity oracle
Building 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 2𝑖 and having2𝑖 edges,
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)
Open Problems
Single source distance sensitivity oracle:
• (1+ε)-approximation for undirected weighted graphs.
Open Problems
All-pairs distance sensitivity oracle:
• Better space-query trade off for planar graphs ?
• Handling multiple failures ?