Competitive fault tolerant Distance Oracles and Routing Schemes Weizmann Open U Weizmann Bar Ilan Shiri Chechik Michael Langberg David Peleg Liam Roditty.

Slides:



Advertisements
Similar presentations
Maximum flow Main goals of the lecture:
Advertisements

Routing Complexity of Faulty Networks Omer Angel Itai Benjamini Eran Ofek Udi Wieder The Weizmann Institute of Science.
Lower Bounds for Additive Spanners, Emulators, and More David P. Woodruff MIT and Tsinghua University To appear in FOCS, 2006.
Improved Approximation for the Directed Spanner Problem Grigory Yaroslavtsev Penn State + AT&T Labs - Research (intern) Joint work with Berman (PSU), Bhattacharyya.
Surender Baswana Department of CSE, IIT Kanpur. Surender Baswana Department of CSE, IIT Kanpur.
Planning for Fast Connectivity Updates Mihai Pă traşcu Mikkel Thorup …until June 2008 Jobs, anyone?
Covers, Dominations, Independent Sets and Matchings AmirHossein Bayegan Amirkabir University of Technology.
all-pairs shortest paths in undirected graphs
Approximate Distance Oracles and Spanners with sublinear surplus Mikkel Thorup AT&T Research Uri Zwick Tel Aviv University.
Compact and Low Delay Routing Labeling Scheme for Unit Disk Graphs Chenyu Yan, Yang Xiang, and Feodor F. Dragan (WADS 2009) Kent State University, Kent,
CSE 421 Algorithms Richard Anderson Dijkstra’s algorithm.
1 On Dynamic Shortest Paths Problems Liam Roditty Uri Zwick Tel Aviv University ESA 2004.
A general approximation technique for constrained forest problems Michael X. Goemans & David P. Williamson Presented by: Yonatan Elhanani & Yuval Cohen.
1 On Compressing Web Graphs Michael Mitzenmacher, Harvard Micah Adler, Univ. of Massachusetts.
Greedy Algorithms Reading Material: Chapter 8 (Except Section 8.5)
1 Approximate Distance Oracles Mikkel Thorup AT&T Research Uri Zwick Tel Aviv University.
Additive Spanners for k-Chordal Graphs V. D. Chepoi, F.F. Dragan, C. Yan University Aix-Marseille II, France Kent State University, Ohio, USA.
Backtracking Reading Material: Chapter 13, Sections 1, 2, 4, and 5.
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
Steiner trees Algorithms and Networks. Steiner Trees2 Today Steiner trees: what and why? NP-completeness Approximation algorithms Preprocessing.
Introduction Outline The Problem Domain Network Design Spanning Trees Steiner Trees Triangulation Technique Spanners Spanners Application Simple Greedy.
Introduction to Graph Theory
Minimal Spanning Trees What is a minimal spanning tree (MST) and how to find one.
Improved Sparse Covers for Graphs Excluding a Fixed Minor Ryan LaFortune (RPI), Costas Busch (LSU), and Srikanta Tirthapura (ISU)
UNC Chapel Hill Lin/Foskey/Manocha Minimum Spanning Trees Problem: Connect a set of nodes by a network of minimal total length Some applications: –Communication.
Transitive-Closure Spanner of Directed Graphs Kyomin Jung KAIST 2009 Combinatorics Workshop Joint work with Arnab Bhattacharyya MIT Elena Grigorescu MIT.
On Graph Query Optimization in Large Networks Alice Leung ICS 624 4/14/2011.
Expanders via Random Spanning Trees R 許榮財 R 黃佳婷 R 黃怡嘉.
Distance sensitivity oracles in weighted directed graphs Raphael Yuster University of Haifa Joint work with Oren Weimann Weizmann inst.
Approximate Distance Oracles Mikkel Thorup and Uri Zwick Presented By Shiri Chechik.
An optimal dynamic spanner for points residing in doubling metric spaces Lee-Ad Gottlieb NYU Weizmann Liam Roditty Weizmann.
Fault Tolerant Graph Structures Merav Parter ADGA 2015.
Role of Rigid Components in Protein Structure Pramod Abraham Kurian.
Implicit Hitting Set Problems Richard M. Karp Erick Moreno Centeno DIMACS 20 th Anniversary.
ICS 353: Design and Analysis of Algorithms Backtracking King Fahd University of Petroleum & Minerals Information & Computer Science Department.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. Fast.
Data Structures for Emergency Planning Cyril Gavoille (LaBRI, University of Bordeaux) 8 th FoIKS Bordeaux – March 3, 2014.
Fully Dynamic Approximate Distance Oracles for Planar Graphs via Forbidden-Set Distance Labels Presented by: Shiri Chechik (Weizmann Institute) Joint with:
Theory of Computational Complexity Probability and Computing Chapter Hikaru Inada Iwama and Ito lab M1.
Steiner trees: Approximation Algorithms
Forbidden-Set Distance Labels for Graphs of Bounded Doubling Dimension
Improved Randomized Algorithms for Path Problems in Graphs
Greedy Algorithms / Minimum Spanning Tree Yin Tat Lee
Chapter 5. Optimal Matchings
Greedy Routing with Bounded Stretch
Autumn 2016 Lecture 11 Minimum Spanning Trees (Part II)
CIS 700: “algorithms for Big Data”
GRAPH SPANNERS.
Randomized Algorithms CS648
3.5 Minimum Cuts in Undirected Graphs
Approximate Distance Oracles and Spanners with sublinear surplus
CSCI B609: “Foundations of Data Science”
On the effect of randomness on planted 3-coloring models
Introduction Wireless Ad-Hoc Network
Hierarchical Routing Scheme
Minimum Spanning Tree Algorithms
Approximate Distance Oracles
Lecture 14 Shortest Path (cont’d) Minimum Spanning Tree
Compact routing schemes with improved stretch
Advanced Algorithms Analysis and Design
Existence of 3-factors in Star-free Graphs with High Connectivity
Simple Graphs: Connectedness, Trees
Winter 2019 Lecture 11 Minimum Spanning Trees (Part II)
Richard Anderson Lecture 5 Graph Theory
Lecture 13 Shortest Path (cont’d) Minimum Spanning Tree
Minimum Spanning Trees
Routing in Networks with Low Doubling Dimension
Forbidden-set labelling in graphs
More Graphs Lecture 19 CS2110 – Fall 2009.
Autumn 2019 Lecture 11 Minimum Spanning Trees (Part II)
Presentation transcript:

Competitive fault tolerant Distance Oracles and Routing Schemes Weizmann Open U Weizmann Bar Ilan Shiri Chechik Michael Langberg David Peleg Liam Roditty

Formal framework A network G A service S(G) Desired properties represented by requirement predicate P(S,G) cost(S) of constructing / maintaining S Optimization problem: Select cheapest service S satisfying P(S,G)

Example: Connectivity oracle S = database maintained over graph G Requirement predicate P conn on S:  For every two vertices u,w in G: in response to a query Q conn (u,w), answer whether u and w are connected in G. Costs:  cost 1 (S) = total / max memory for S  cost 2 (S) = query time of S

Connectivity oracles The graph G Centralized connectivity oracle for G u u0 w v w v 1 S1S

Connectivity oracles The graph G Distributed connectivity oracle for G 〈 w,3 〉 〈 u,1 〉 〈 v,3 〉 Assign each vertex v in connected component G i a label L(v) = 〈 v,i 〉 On query Q conn (L(u),L(w)): check labels 0 1

Cost of distributed connectivity oracle Memory = O(log n) per vertex Query time = O(1)

Fault Tolerance Assumption: vertices / edges may occasionally fail or malfunction Failure event: set F of failed vertices/edges

Fault Tolerance As a result of a failure event: G and S(G) are partially destroyed Surviving network: G' = G \ F Surviving service: S' = S \ F Requirement predicate P might no longer hold

Coping with failures in services Goal: Make S(G) competitive fault tolerant, i.e., ensure that the requirement predicate P(S’,G’) still holds subsequent to a failure event. Relaxed variant of problem: Construct service S(G) that can guarantee a weakened form of desired properties (i.e., some relaxed predicate P‘(S’,G’))

Rigid vs. competitive fault tolerance Rigid fault tolerance: Ensure that S(G) satisfies the requirement predicate w.r.t. the original G, i.e., that P(S’,G) still holds after a failure event. Competitive fault tolerance: S(G) satisfies the requirement predicate w.r.t. the surviving G’, i.e., P(S’,G’) must hold after a failure event. ⇨ Useful for structures (subgraphs,…) ⇨ Useful for services (oracles, routing,…)

Back to connectivity example Goal: Construct a competitive fault-tolerant connectivity oracle S capable of withstanding f edge failures (|F|≤f) (a.k.a. f-sensitivity connectivity oracle) Connectivity oracle: receives query Q conn (s,t) for vertices s, t answers whether s and t are connected

Dynamic connectivity oracle [Patrascu-Thorup- 07] Maintain a dynamic data structure Update after each edge deletion / failure Space O(|E(G)|) Query time O(f log 2 n loglogn) (following a batch of f edge deletions)

F-T connectivity oracles Note: Unlike dynamic connectivity oracles, in an F-T connectivity oracle, the faulty sets F for two consecutive queries could be very different. receive a query Q conn (s,t,F) for vertices s,t, and failure event F ⊆ E (for |F|≤f) answer whether s and t are connected in G’ = G \ F

F-T connectivity oracles Dynamic connectivity oracle: failures come one by one

F-T connectivity oracles F-T connectivity oracle: failure events F 1, F 2, … are separate F1F1 F2F2 F3F3 Q(s 1,t 1 )? s3s3 t3t3 t1t1 s1s1 t2t2 s2s2 Q(s 2,t 2 )? Q(s 3,t 3 )?

F-T connectivity oracles Claim: The dynamic connectivity oracle of [PT-07] can be modified into F-T connectivity oracle against f edge failures.

F-T connectivity oracles Given query Q conn (s,t,F) (with vertices s,t and failure event F ⊆ E) : Update the data structure, deleting all the edges of F While updating, record the changes made Answer the connectivity query Q conn (s,t) Undo all changes to the data structure Operation of the F-T connectivity oracle:

F-T connectivity oracles Claim: The resulting F-T connectivity oracle has: Space O(|E(G)|) Query time O(f log 2 n loglogn)

F-T connectivity oracles The connectivity oracle of [CLPR-10] : Space O(fkn 1+1/k log(nW)) Query time O(f log 2 n loglogn) (using the sparse spanner construction of [Chechik-Langberg-P-Roditty-10] )

(Approximate) Distance Oracle: Data-structure that can answer (approximate) distance queries Q dist (s,t) for any two vertices s, t (with a stretch of at most k) Distance oracles

Distance Oracles Thm [Thorup-Zwick-05]: For every weighted undirected graph G it is possible to construct a data structure of size O(n 1+1/k ) that is capable of answering distance queries Q dist (s,t) in O(k) time, with multiplicative approximation factor ≤ 2k-1 (returns a distance estimate đ such that dist(s,t,G)  đ  (2k-1)dist(s,t,G) )

Distributed distance oracles – Distance labeling schemes [P-99] Data structure stored in pieces at the graph vertices (as vertex labels) To answer distance query Q dist (s,t), it suffices to consult the labels L(s), L(T)

Distributed distance oracles – Distance labeling schemes [P-99] Thm [P-99]: For every weighted undirected graph G it is possible to construct an approximate distance labeling scheme of size Õ (n 1/k ) capable of answering distance queries Q dist (s,t) with multiplicative approximation factor O(k)

F-T distance oracle: Data structure capable of answering distance queries Q dist (s,t,F) between vertex pairs s,t, on the surviving graph G\F, subsequent to a failure event F F-T distance oracles

Related work [Demetrescu et al-08]: It is possible to preprocess a weighted graph in time Õ(mn 2 ) to produce a data structure of size O(n 2 logn) for answering 1-failure distance queries Q dist in O(1) time F-T distance oracles

Related work [Karger-Bernstein-09] improved preprocessing time for 1-failure queries, to O(n 2 √m), then to Õ(mn), with same size and query time. [Duan-Pettie-09] oracle for 2-failure queries, of size O(n 2 log 3 n) and query time in O(log n) F-T distance oracles

Thm [CLPR-10] There exists a polynomial-time constructible data structure of size O(kn 1+8(f+1)/(k+2(f+1)) log(nW)), that given a set of edges F of size |F|≤f and two vertices s,t, returns in time O(f  log 2 n  loglogn  loglogd) a distance estimate đ such that dist(s,t,G\F)  đ  (2k-1)dist(s,t,G\F) F-T distance oracles

Neighborhoods B ρ (v) = ρ -neighborhood of v = vertices at distance ρ or less from v B 0 (v) B 1 (v) B 2 (v)

Tree covers Basic notion: A tree T covering the ρ -neighborhood of v v B 2 (v) covering T

G = weighted undirected graph A tree cover TC( ,k) : collection of trees {T 1,…,T l } such that 1. For every v there exists a tree T i such that B  (v)  T i 2. For every T i and every v  T i, dist(v,r i,T i )  (2k-1)  3. For every v, the number of trees that contain v is O(kn 1/k ). Tree Covers TiTi B  (v) (2k-1)  v O(kn 1/k )

Lemma [Awerbuch-Kutten-P-91, Cohen-93] A tree cover TC( ,k) can be constructed in time Õ(mn 1/k ) Tree Covers

Lemma (F-T connectivity oracle [CLPR-10]) There exists a poly time constructible data structure of size O(fkn 1+1/k log(nW)), that given a set of failed edges F of size f and two vertices s,t, replies in time O(f log 2 n loglogn) whether s and t are connected in G\F Connectivity Oracle (reminder)

Construction The algorithm has log(nW) iterations Iteration i handles distances ≤ 2 i G i = graph obtained by removing from G all edges of weight > 2 i f-Sensitivity Distance Oracles

Iteration i: Construct a tree cover TC i with ρ= 2 i and k G i | T = subgraph of G i induced by T vertices For each T  TC i, construct connectivity oracle Conn_Or T on G i | T For each vertex v store pointer to tree T i (v)  TC i containing B ρ (v) f-Sensitivity Distance Oracles

Lemma The size of the data structure is O(fkn 1+1/k log(nW)) f-Sensitivity Distance Oracles

Q dist (s,t,F) For i  1 to log(nW) if Conn_Or Ti(s) (s,t,F) = true, then return đ=(8k-2)(f+1)2 i-1 Return  Answering Queries

Lemma Consider vertices s,t and failure set F. Let d=dist(s,t,G\F). The estimated distance đ returned by Q dist (s,t,F) satisfies d  đ  (8k-2)(f+1)d f-Sensitivity Distance Oracles

Lemma The f-sensitivity distance query (s,t,F) can be implemented to return a distance estimate in time O(f  log 2 n  loglogn  loglogd) f-Sensitivity Distance Oracles

Main result [CLPR-10] 2-sensitive compact routing scheme: Given a message M at a source vertex s and a destination t, in the presence of failed edges F={e 1,e 2 }, routes M from s to t over a path of length O(k ⋅ dist(s,t,G\{e 1,e 2 }). Total information stored in vertices: O(kn 1+1/k log(nW)logn). 2-sensitivity routing

Use hierarchy of tree covers as in distance oracle. To route from s to t, try increasingly higher levels Suppose dist(s,t,G) ≤ 2 i There is a tree T  TC i that contains B  (s) for  =2 i ⇨ T contains also the destination t 2-sensitivity routing T B  (s) t

T is of depth ≤ (2k-1) ⋅ 2 i The route from s to t is at most k ⋅ 2 i+2 = O(k ⋅ dist(s,t,G)) Only remaining problem: handle edge disconnections… 2-sensitivity routing T B  (s) t

Consider this tree T u v 2-sensitivity routing Each edge e=(u,v)  T – if failed - T u (e) T v (e) disconnects T into two connected components, T u (e) and T v (e)

A recovery edge of e is any edge e’ of G that connects T u (e) and T v (e). Define for each edge e  T a recovery edge rec(e). u v rec(e) 2-sensitivity routing T u (e) T v (e)

Slight simplification for analysis: Assume the graph edges are sorted -  e 1,…, e m , and choose rec(e) for every e to be the first recovery edge e i of e 2-sensitivity routing

Consider the recovery edge rec(e) = (u',v‘) of the edge e. Denote by P(u,u‘) (resp., P(v,v‘)) the path connecting u and u’ (resp., v and v’) in the tree T u (e) (resp., T v (e)) Denote the entire alternative path for e=(u,v) by P(e) = P(u,u‘) ∙ (u',v') ∙ P(v',v). rec(e) P(u,u’) P(v,v’) e 2-sensitivity routing

Failed edges: e 1 = ( u 1, v 1 ) and e 2 = ( u 2, v 2 ) Simplest case: e 1 and e 2 are not in T : just route on T. 2-sensitivity routing

Still simple case: e 1  T, e 2  T. 2-sensitivity routing ⇨ T ⋃ rec(e 1 ) \ { e 1, e 2 } is broken into two connected components only when rec(e 1 ) = e 2 To overcome this, it suffices to store, for each edge e  T, one additional recovery edge.

Hard case: both e 1, e 2  T.  Subcase 1 (not too hard): e 2 does not appear on the alternative path P(e 1 ) via rec(e 1 ) (and s,t are connected in G i | T \{e 1,e 2 }): 2-sensitivity routing ⇨ rec(e 1 ), rec(e 2 ) suffice for routing from s to t

 Subcase 2 (hardest): both e 1 is on P(e 2 ) and e 2 is on P(e 1 ). 2-sensitivity routing ⇨ rec(e 1 ) = rec(e 2 )

Store for e 1 (similarly, for each edge e  T) two additional recovery edges rec u1 (e 1 ) and rec v1 (e 1 ). Choose rec u1 (e 1 ) to be the edge that “bypasses” as many edges on P(u 1,u 1 ‘) as possible. 2-sensitivity routing

Specifically: Consider the path P’ from u 1 to any other recovery edge e’ ≠ rec(e 1 ) P’ has some common prefix with P(u 1,u 1 ‘). rec u1 (e 1 ) ← recovery edge e’ of e 1 that minimizes the length of the common prefix rec v1 (e 1 ) chosen analogously w.r.t P(v 1,v 1 ‘) 2-sensitivity routing

These choices ensure successful routing (requires detailed case analysis) The routing process

T1T1 T2T2 T3T3

T1T1 T2T2 T3T3 First subcase: The routing process

T1T1 T2T2 T3T3 Second subcase: The routing process

Thm [CLPR-10] There exists a 2-sensitive compact routing scheme that given a message M at a source vertex s and a destination t, in the presence of failed edges e 1 and e 2, routes M from s to t in a distributed manner over a path of length at most O(k ⋅ dist(s,t,G\{e 1,e 2 }). The total amount of information stored in vertices of G is O(kn 1+1/k log(nW)logn). The routing process