370 likes | 522 Views
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
E N D
Distance sensitivity oracles SurenderBaswana 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 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)
Versions of the shortest paths problem Single source shortest paths (SSSP): Space:O(n) Preprocessing time : O(m+nlog 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+n2loglogn) [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 Model of a real life network: • Prone to failure of nodes/links • Failures are rare • Repairmechanism 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. Natural generalization of shortest paths problem
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 s 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) P(s,t) 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) [Rodittyand Zwick 2005]
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
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]
Single source approximatedistance 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]
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: ϴ(n2log n) [Demetrescu et al. 2008] Preprocessing time: O(mnpolylog n) [Bernstein 2009]
Replacement paths problem in undirected graphs s 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+nlog n) Tools needed : • Fundamental of shortest paths problem • Dijkstra’s algorithm P(s,t) t
Replacement paths problem in undirected graphs s T xi ei xi+1 t
Replacement paths problem in undirected graphs How will P(s,t,ei)look like ? s Ui xi ei xi+1 u t Di
Replacement paths problem in undirected graphs What about P(v,t,e)? s 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 Ui xi ei 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 ei) = min Space = O(n) Preprocessing time : • Use heap data structure to compute ei) efficiently O(m+n log n)
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. j n 1 i A 29 41.5 3.1 99 781 67.4
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. n 1 i A 29 41.5 3.1 99 781 67.4 True fact wrong inference
Range-minima problem : O(n log n) space Using collaboration j i A n 1 i
Range-minima problem : O(n log n) space 8 4 2 1 A n 1 i Compute (n × log n) matrix Ms.t. M[i,t] = min {A[i],A[i+1],….,A[i + ] }
Range-minima problem : O(n log n) space A n 1 i j j
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). a x b u v How does P(u,v,x) appear relative to P(u,v) ?
All-pairs distance sensitivity oracleTools and Observations: 1 2 4
All-pairs distance sensitivity oracleTools and Observations: 1 2 4 z y x
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)
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)inGR
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)
Exploring ways to compute d(u,v,x) … x v’(x) u’(x) t t v u If Detour of P(u,v,x) departs afteru’(x), then we are done ! What if Detour of P(u,v,x) departs beforeu’(x)? What if Detour of P(u,v,x) enters P(u,v)afterv’(x)? Use backward data structure at v to compute d(v,u,x) if possible
Exploring ways to compute d(u,v,x) … x u’(x) v’(x) v u The Detour of P(u,v,x) skips all vertices from P(u,v) lying from level to
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 Middledata structure per vertex: O(n log n) Total space of data structure: O(n2)
Open ProblemsSingle source distance sensitivity oracle: • (1+ε)-approximation for undirected weighted graphs.
Open ProblemsAll-pairs distance sensitivity oracle: • Better space-query trade off for planar graphs ? • Handling multiple failures ?