1.12k likes | 1.31k Views
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) .
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]