Create Presentation
Download Presentation

Download Presentation
## From Hierarchical Partitions to Hierarchical Covers:

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**From Hierarchical Partitions to Hierarchical Covers:**Optimal Fault-Tolerant Spanners for Doubling Metrics Shay Solomon Weizmann Institute of Science**Doubling Metrics**• Ball B(p,r) = all points within distance r from p Definition (doubling dimension) • Metric (X,δ) has doubling dimension d if every ball • can be covered by 2dballs of half the radius complete graph non-negative wt function with triangle inequality • A metric is doubling if its doubling dimension is constant d ≤ 3**Doubling Metrics**• Ball B(p,r) = all points within distance r from p Definition (doubling dimension) • Metric (X,δ) has doubling dimension d if every ball • can be covered by 2dballs of half the radius • Euclidean space ℝd has • doubling dimension Ѳ(d) 23 boxes to cover larger 3-dim’ box**Doubling Metrics**• Ball B(p,r) = all points within distance r from p Definition (doubling dimension) • Metric (X,δ) has doubling dimension d if every ball • can be covered by 2dballs of half the radius • A metric is doubling if its doubling dimension is constant**Doubling Metrics**• Ball B(p,r) = all points within distance r from p Definition (doubling dimension) • Metric (X,δ) has doubling dimension d if every ball • can be covered by 2dballs of half the radius • A metric is doubling if its doubling dimension is constant Packing lemma R r • Point set with max pairwise distance R and min • pairwise distance r contains ≤ (R/r)O(d) points.**Doubling Metrics**• First used by [Assouad, ‘83], • algorithmically by [Clarkson, STOC‘97] • and [Gupta-Krauthgamer-Lee, FOCS‘03] • Extensively studied since • [Krauthgamer-Lee, SODA’04], [Talwar, STOC’04], • [Gao-Guibas-Nguyen, SoCG’04], … • A metric is doubling if its doubling dimension is constant**Spanners**• doubling metric (complete graph) • spanning subgraph of the metric H is a (1+ε)-spanner if: it preserves all pairwise distances up to a factor of 1+ε there is a path in H between p and q with weight 1+ε = stretch of H v1 v2 v1 v2 v1 v2 2 1-spanner 3-spanner 2 (X,δ) 1 1 1 1 1 v3 v3 v3**Spanners**• doubling metric (complete graph) • spanning subgraph of the metric H is a (1+ε)-spanner if: it preserves all pairwise distances up to a factor of 1+ε there is a path in H between p and q with weight 1+ε = stretch of H -spanner path v1 v2 v1 v2 v1 v2 2 1-spanner 3-spanner 2 (X,δ) 1 1 1 1 1 v3 v3 v3**Doubling Metrics**Why doubling metrics? bounded “volume” growth For the uniform metric (doubling dimension Ω(log n)): (1+ε)-spanner (ε < 1) complete graph • Spanners for doubling metrics • [Gao-Guibas-Nguyen,SoCG’04], [Chan-Gupta-Maggs- • Zhou, SODA’05],[HarPeled-Mendel, SoCG’05], … • Euclidean spanners • [Chew, SoCG’86], [Clarkson, STOC’87], … 1 1 1 • A metric is doubling if its doubling dimension is constant**Applications of spanners**• Approximation algorithms • Distance oracles and labels • Network design • Compact routing • Metric TSP problem • Machine learning • Robotics • …**Useful Properties of Spanners**stretch 1+ε • Small number of edges, ideally**Useful Properties of Spanners**stretch 1+ε • Small number of edges, ideally • Small degree, ideally • (maximum degree of a vertex) • FOCUS OF TALK**Useful Properties of Spanners**stretch 1+ε • Small number of edges, ideally • Small degree, ideally • (maximum degree of a vertex) • FOCUS OF TALK • Fast implementation**Useful Properties of Spanners**stretch 1+ε • Small number of edges, ideally • Small degree, ideally • (maximum degree of a vertex) • FOCUS OF TALK • Fast implementation Additional properties: small weight and diameter**Fault-Tolerant Spanners**• Fault-Tolerance (FT) – • resilient to vertex & edge faults in the network • Essential for practical applications H is k-fault-tolerant (FT) (1+ε)-spanner = remains (1+ε)-spanner after k vertex faults (removals) Incident edges become faulty**Fault-Tolerant Spanners**• Fault-Tolerance (FT) – • resilient to vertex & edge faults in the network • Essential for practical applications H is k-fault-tolerant (FT) (1+ε)-spanner = remains(1+ε)-spanner after k vertex faults (removals) Incident edges become faulty H \ F = (1+ε)-spanner for X \ F, for all |F| ≤ k**Fault-Tolerant Spanners**v1 v2 v1 2 v2 (X,δ) H = 1-spanner 1 1 1 1 v3 v3 v1 v2 v1 2 v2 H \ F = empty 1 1 F = {v3} v3 faulty metric_dist(v1,v2) = 2, spanner_dist(v1,v2) =**Fault-Tolerant Spanners**v1 v2 v1 2 v2 (X,δ) H = 1-spanner 1 1 1 1 v3 v3 v1 v2 v1 2 v2 H \ F = empty 1 1 F = {v3} v3 faulty metric_dist(v1,v2) = 2, spanner_dist(v1,v2) = k-FT degree of each point ≥ k+1 Ω(kn) edges**FT Spanners – Open Questions**Open Questions from [Narasimhan-Smid, 2007] (for low-dimensional Euclidean metrics): • Open Problem I: “Is there an alg. that constructs a k-FT • (1+ε)-spanner with O(kn) edges in O(n log n + kn) time?” • Open Problem II: “Is there an alg. that constructs a k-FT • (1+ε)-spanner with degree O(k) in O(n log n + kn) time?”**FT Spanners – Open Questions**Open Questions from [Narasimhan-Smid, 2007] (for low-dimensional Euclidean metrics): • Open Problem I: “Is there an alg. that constructs a k-FT • (1+ε)-spanner with O(kn) edges in O(n log n + kn)time?” • Open Problem II: “Is there an alg. that constructs a k-FT • (1+ε)-spanner with degree O(k) in O(n log n + kn) time?” optimal time (in algebraic comp. tree model)**Preliminaries**(net-tree, net-tree spanner)**Net-Tree**• net-tree - based on hierarchical partition • net-tree is for doubling metrics • Euclidean metrics analogs: • quadtree (compressed quadtree) • split tree (fair split tree) • dumbbell tree • …**Quadtree Example**• 4-ary tree • 1-1 correspondence between leaves and points • Hierarchical partition of the point set**Quadtree Example**• 4-ary tree • 1-1 correspondence between leaves and points • Hierarchical partition of the point set • Each node is represented by an arbitrary descendant leaf • (edge weights increase geometrically with the level) • Net-tree is similar**Net-Tree**Internal node picks arbitrary descendant leaf point Assume min pairwise distance = 1 level 3 v3 T level 2 v3 v8 v12 v12 v8 level 1 v3 v5 v7 v10 ≥ 1 X level 0 v1 v3 v7 v8 v9 v10 v11 v12 v13 v2 v4 v5 v6**Net-Tree**Internal node picks arbitrary descendant leaf point Assume min pairwise distance = 1 level 3 v3 T ≤ 8 8 ≥ 4 level 2 v3 v8 v12 ≥ 2 ≤ 4 4 v12 v8 level 1 v3 v5 v7 v10 ≥ 1 ≤ 2 2 X level 0 v1 v3 v7 v8 v9 v10 v11 v12 v13 v2 v4 v5 v6**Net-Tree**Internal node picks arbitrary descendant leaf point Assume min pairwise distance = 1 level 3 v3 T ≤ 8 8 ≥ 4 level 2 v3 v8 v12 ≥ 2 ≤ 4 4 v12 v8 level 1 v3 v5 v7 v10 ≥ 1 ≤ 2 2 X level 0 v1 v3 v7 v8 v9 v10 v11 v12 v13 v2 v4 v5 v6 dist(i-level node, descendant) ≤ 2i + … + 21 ≤ 2i+1**Net-Tree**level 3 v3 T 8 level 2 v3 v8 v12 4 v12 v8 level 1 v3 v5 v7 v10 2 X level 0 v1 v3 v7 v8 v9 v10 v11 v12 v13 v2 v4 v5 v6 • More properties: • T may have many levels • degree < O(1)O(d) (packing lemma) for tree nodes**Net-Tree**level 3 v3 T 8 level 2 v3 v8 v12 4 v12 v8 level 1 v3 v5 v7 v10 2 X level 0 v1 v3 v7 v8 v9 v10 v11 v12 v13 v2 v4 v5 v6 • More properties: • Tmay have many levels • degree < O(1)O(d) (packing lemma) for tree nodes • degree < #levels· O(1)O(d) for points**Small Degree Net-Tree**level 3 T 8 level 2 4 level 1 2 X level 0 v1 v3 v7 v8 v9 v10 v11 v12 v13 v2 v4 v5 v6 Internal node picks arbitrary descendant leaf point pick descendant carefully:leftmost leaf in rightmost subtree**Small Degree Net-Tree**level 3 v10 T 8 level 2 v4 v8 v12 4 v13 v9 level 1 v3 v5 v7 v11 2 X level 0 v1 v3 v7 v8 v9 v10 v11 v12 v13 v2 v4 v5 v6 Internal node picks arbitrary descendant leaf point pick descendant carefully:leftmost leaf in rightmost subtree each leaf point is in one internal node (if #children ≥ 2) degree O(1)O(d)**Net-Tree Spanner**Addcross edge between i-level nodes x,yif δ(x,y) ≤ γ·2i γ = O(1/ε) dist between tree nodes = dist between repr’s**Net-Tree Spanner**• Addcross edge between i-level nodes x,yif δ(x,y) ≤ γ·2i • γ = O(1/ε) dist between tree nodes = dist between repr’s Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**Addcross edge between i-level nodes x,yif δ(x,y) ≤ γ·2i γ = O(1/ε); edge between nodes edge between repr’s Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**Addcross edge between i-level nodes x,yif δ(x,y) ≤ γ·2i γ = O(1/ε); edge between nodes edge between repr’s degree of nodes - ε-O(d) degree of points - ε-O(d) #edges - ε-O(d)· n stretch ?? Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**spanner path up, cross, down q' p' level j q p Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**spanner path up, cross, down q' p' level j q p Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**spanner path up, cross, down q' p' level j q p Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**spanner path up, cross, down q' p' level j q p Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**spanner path up, cross, down q' p' level j q p Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**spanner path up, cross, down q' p' level j q p Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**wt(up-path) ≤ 2j+1 wt(down-path) ≤ 2j+1 spanner path up, cross, down q' p' level j q p Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**wt(up-path) ≤ 2j+1 wt(down-path) ≤ 2j+1 spanner path up, cross, down wt(cross-edge)> γ·2j-1 - 2·2j q' p' level j 2j 2j q N0 p Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**wt(up-path) ≤ 2j+1 wt(down-path) ≤ 2j+1 spanner path up, cross, down wt(cross-edge)> γ·2j-1 - 2·2j q' p' q p Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**wt(up-path) ≤ 2j+1 wt(down-path) ≤ 2j+1 spanner path up, cross, down wt(cross-edge)> γ·2j-1 - 2·2j q' p' wt(up-path), wt(down-path) = O(ε)-slack q p Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**wt(up-path) ≤ 2j+1 wt(down-path) ≤ 2j+1 spanner path up, cross, down wt(cross-edge)> γ·2j-1 - 2·2j q' p' wt(up-path), wt(down-path) = O(ε)-slack δ(p,q) = wt(cross-edge) + ε-slack q p Net-tree spanner = tree edges & cross edges**Net-Tree Spanner**• Constant degree net-tree spanner: • Use net-tree • Choose unique representatives for internal nodes • Add cross edges to get constant degree net-tree spanner • This approach was used in [CGMZ05,GR08] • Similar approach was used in [ADMSS95]