From Hierarchical Partitions to Hierarchical Covers:

112
From Hierarchical Partitions to Hierarchical Covers : Optimal Fault-Tolerant Spanners for Doubling Metrics Shay Solomon Weizmann Institute of Science

description

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) . - PowerPoint PPT Presentation

Transcript of From Hierarchical Partitions to Hierarchical Covers:

Page 1: From Hierarchical Partitions to Hierarchical Covers:

From Hierarchical Partitions to Hierarchical Covers:Optimal Fault-Tolerant Spanners for Doubling Metrics

Shay SolomonWeizmann Institute of Science

Page 2: From Hierarchical Partitions to Hierarchical Covers:

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 2d balls of half the radius

A metric is doubling if its doubling dimension is constant

d ≤ 3

complete graphnon-negative wt function with triangle inequality

Page 3: From Hierarchical Partitions to Hierarchical Covers:

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 2d balls of half the radius

23 boxes to coverlarger 3-dim’ box

• Euclidean space ℝd has doubling dimension Ѳ(d)

Page 4: From Hierarchical Partitions to Hierarchical Covers:

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 2d balls of half the radius

A metric is doubling if its doubling dimension is constant

Page 5: From Hierarchical Partitions to Hierarchical Covers:

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 2d balls of half the radius

A metric is doubling if its doubling dimension is constant

Packing lemma Point set with max pairwise distance R and min pairwise distance r contains ≤ (R/r)O(d) points.

R r

Page 6: From Hierarchical Partitions to Hierarchical Covers:

Doubling Metrics

A metric is doubling if its doubling dimension is constant

• 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], …

Page 7: From Hierarchical Partitions to Hierarchical Covers:

• doubling metric (complete graph)• spanning subgraph of the metric

),( X

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

H

Spanners

Xqp ,),()1( qp

111-spanner 3-spanner(X,δ)

v3

v1 v2211

v3

v1 v2 21

v3

v1 v2

Page 8: From Hierarchical Partitions to Hierarchical Covers:

• doubling metric (complete graph)• spanning subgraph of the metric

),( X

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

H

Spanners

Xqp ,),()1( qp

- spanner path)1(

111-spanner 3-spanner(X,δ)

v3

v1 v2211

v3

v1 v2 21

v3

v1 v2

Page 9: From Hierarchical Partitions to Hierarchical Covers:

Doubling Metrics

A metric is doubling if its doubling dimension is constant

Why doubling metrics? bounded “volume” growth

For the uniform metric (doubling dimension Ω(log n)):(1+ε)-spanner (ε < 1) complete graph

1

11

Spanners for doubling metrics [Gao-Guibas-Nguyen,SoCG’04], [Chan-Gupta-Maggs- Zhou, SODA’05],[Har Peled-Mendel, SoCG’05], …

Euclidean spanners [Chew, SoCG’86], [Clarkson, STOC’87], …

Page 10: From Hierarchical Partitions to Hierarchical Covers:

Approximation algorithms Distance oracles and labels Network design Compact routing Metric TSP problem Machine learning Robotics …

Applications of spanners

Page 11: From Hierarchical Partitions to Hierarchical Covers:

• Small number of edges, ideally

Useful Properties of Spanners

)(nO

stretch 1+ε

Page 12: From Hierarchical Partitions to Hierarchical Covers:

• Small number of edges, ideally

• Small degree, ideally (maximum degree of a vertex) FOCUS OF TALK

Useful Properties of Spanners

)(nO

)1(O

stretch 1+ε

Page 13: From Hierarchical Partitions to Hierarchical Covers:

• Small number of edges, ideally

• Small degree, ideally (maximum degree of a vertex) FOCUS OF TALK

• Fast implementation

Useful Properties of Spanners

)(nO

)1(O

stretch 1+ε

Page 14: From Hierarchical Partitions to Hierarchical Covers:

• Small number of edges, ideally

• Small degree, ideally (maximum degree of a vertex) FOCUS OF TALK

• Fast implementation

Useful Properties of Spanners

)(nO

)1(O

stretch 1+ε

Additional properties: small weight and diameter

Page 15: From Hierarchical Partitions to Hierarchical Covers:

Fault-Tolerant Spanners

H is k-fault-tolerant (FT) (1+ε)-spanner = remains (1+ε)-spanner after k vertex faults (removals)

Incident edges become faulty

Fault-Tolerance (FT) – resilient to vertex & edge faults in the network

Essential for practical applications

Page 16: From Hierarchical Partitions to Hierarchical Covers:

Fault-Tolerant Spanners

H is k-fault-tolerant (FT) (1+ε)-spanner = remains (1+ε)-spanner after k vertex faults (removals)

Incident edges become faulty

Fault-Tolerance (FT) – resilient to vertex & edge faults in the network

Essential for practical applications

H \ F = (1+ε)-spanner for X \ F, for all |F| ≤ k

Page 17: From Hierarchical Partitions to Hierarchical Covers:

metric_dist(v1,v2) = 2, spanner_dist(v1,v2) =

Fault-Tolerant Spanners2

11 H = 1-spanner

11

faulty

2

v1 v2

v3

v1 v2

v3

v1 v2

11v3

(X,δ)

H \ F = emptyF = v3

v1 v2

Page 18: From Hierarchical Partitions to Hierarchical Covers:

metric_dist(v1,v2) = 2, spanner_dist(v1,v2) =

Fault-Tolerant Spanners2

11 H = 1-spanner

11

faulty

2

v1 v2

v3

v1 v2

v3

v1 v2

11v3

(X,δ)

H \ F = emptyF = v3

v1 v2

k-FT degree of each point ≥ k+1 Ω(kn) edges

Page 19: From Hierarchical Partitions to Hierarchical Covers:

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):

Page 20: From Hierarchical Partitions to Hierarchical Covers:

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):

optimal time (in algebraic comp. tree model)

Page 21: From Hierarchical Partitions to Hierarchical Covers:

running time degree #edges metric reference

O(n log n) + n2O(k) 2O(k) n2O(k) Euclidean LNS98

O(n log n + k2n) - O(k2n) Euclidean LNS98 O(kn log n) - O(kn log n) Euclidean LNS98

O(n logd-1 n + kn loglog n) - O(kn) Euclidean Luk99

O(kn logd n + nk2 log k) O(k) O(kn) Euclidean CZ03

- - O(kn) doubling CLN12

O(n log n + k2n) O(k2) O(k2n) doubling CLNS13

Page 22: From Hierarchical Partitions to Hierarchical Covers:

running time degree #edges metric reference

O(n log n) + n2O(k) 2O(k) n2O(k) Euclidean LNS98

O(n log n + k2n) - O(k2n) Euclidean LNS98 O(kn log n) - O(kn log n) Euclidean LNS98

O(n logd-1 n + kn loglog n) - O(kn) Euclidean Luk99

O(kn logd n + nk2 log k) O(k) O(kn) Euclidean CZ03

- - O(kn) doubling CLN12

O(n log n + k2n) O(k2) O(k2n) doubling CLNS13

O(n log n + kn) O(k) O(kn) Euclidean Kapoor-Li

O(n log n + kn) O(k) O(kn) doubling Our Results

Solve open questions from [NS07] for doubling metrics

Page 23: From Hierarchical Partitions to Hierarchical Covers:

Preliminaries(net-tree, net-tree spanner)

Page 24: From Hierarchical Partitions to Hierarchical Covers:

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• …

Page 25: From Hierarchical Partitions to Hierarchical Covers:

Quadtree Example

• 4-ary tree• 1-1 correspondence between leaves and points• Hierarchical partition of the point set

Page 26: From Hierarchical Partitions to Hierarchical Covers:

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

Page 27: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree

v1 v2 v3 v4 v5 v6 v8 v10 v12 v13

v3

v3

v5

v7

v7

v9

v8

v8

v11

v12

v12

v10v3

T

level 2

level 1

level 0 X

level 3

≥1

Internal node picks arbitrary descendant leaf pointAssume min pairwise distance = 1

Page 28: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree

v1 v2 v3 v4 v5 v6 v8 v10 v12 v13

v3

v3

v5

v7

v7

v9

v8

v8

v11

v12

v12

v10v3

T

2

4

8level 2

level 1

level 0 X

level 3 ≤

8

≥1

≤4

≤2

Internal node picks arbitrary descendant leaf pointAssume min pairwise distance = 1

≥4

≥2

Page 29: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree

v1 v2 v3 v4 v5 v6 v8 v10 v12 v13

v3

v3

v5

v7

v7

v9

v8

v8

v11

v12

v12

v10v3

T

2

4

8level 2

level 1

level 0 X

level 3 ≤

8

≥1

≤4

≤2

Internal node picks arbitrary descendant leaf pointAssume min pairwise distance = 1

dist(i-level node, descendant) ≤ 2i + … + 21 ≤ 2i+1

≥4

≥2

Page 30: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree

More properties:• T may have many levels • degree < O(1)O(d) (packing lemma) for tree nodes

2

4

8level 2

level 1

level 0

level 3

v3

v3

v5 v7 v8

v8

v12

v12

v10v3

T

X v2 v4 v5 v6 v8 v10 v12 v13v7 v9 v11v1 v3

Page 31: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree

More properties:• T may have many levels• degree < O(1)O(d) (packing lemma) for tree nodes• degree < #levels · O(1)O(d) for points

2

4

8level 2

level 1

level 0

level 3

v3

v3

v5 v7 v8

v8

v12

v12

v10v3

T

X v2 v4 v5 v6 v8 v10 v12 v13v7 v9 v11v1 v3

Page 32: From Hierarchical Partitions to Hierarchical Covers:

Small Degree Net-Tree

2

4

8level 2

level 1

level 0

level 3T

X v2 v4 v5 v6 v8 v10 v12 v13v7 v9 v11v1 v3

Internal node picks arbitrary descendant leaf point pick descendant carefully: leftmost leaf in rightmost subtree

Page 33: From Hierarchical Partitions to Hierarchical Covers:

Small Degree Net-Tree

2

4

8level 2

level 1

level 0

level 3T

X v2 v4 v5 v6 v8 v10 v12 v13v7 v9 v11v1 v3

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)

v4

v10

v5 v7

v8

v13

v12

v11v3v9

Page 34: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Add cross edge between i-level nodes x,y if δ(x,y) ≤ γ·2i

γ = O(1/ε) dist between tree nodes

=dist between repr’s

Page 35: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

Add cross edge between i-level nodes x,y if δ(x,y) ≤ γ·2i

γ = O(1/ε)

dist between tree nodes

=dist between repr’s

Page 36: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

Add cross edge between i-level nodes x,y if δ(x,y) ≤ γ·2i

γ = O(1/ε); edge between nodes edge between repr’s

Page 37: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

degree of nodes - ε-O(d) degree of points - ε-O(d) #edges - ε-O(d) · n stretch ??

Add cross edge between i-level nodes x,y if δ(x,y) ≤ γ·2i

γ = O(1/ε); edge between nodes edge between repr’s

Page 38: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

spanner pathup, cross, down

q

q' p'

p

level j

Page 39: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

spanner pathup, cross, down

q

q' p'

p

level j

Page 40: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

spanner pathup, cross, down

q

q' p'

p

level j

Page 41: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

spanner pathup, cross, down

q

q' p'

p

level j

Page 42: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

spanner pathup, cross, down

q

q' p'

p

level j

Page 43: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

spanner pathup, cross, down

q

q' p'

p

level j

Page 44: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

spanner pathup, cross, down

q

q' p'

p

level j

wt(up-path) ≤ 2j+1 wt(down-path) ≤ 2j+1

Page 45: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

spanner pathup, cross, down

q

q' p'

p

wt(cross-edge)> γ·2j-1 - 2·2j

N0

2j 2j

wt(up-path) ≤ 2j+1 wt(down-path) ≤ 2j+1

level j

Page 46: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

spanner pathup, cross, down

q

q' p'

p

wt(cross-edge)> γ·2j-1 - 2·2j

wt(up-path) ≤ 2j+1 wt(down-path) ≤ 2j+1

Page 47: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

spanner pathup, cross, down

q

q' p'

p

wt(up-path), wt(down-path) = O(ε)-slack

wt(up-path) ≤ 2j+1 wt(down-path) ≤ 2j+1

wt(cross-edge)> γ·2j-1 - 2·2j

Page 48: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

Net-tree spanner = tree edges & cross edges

spanner pathup, cross, down

q

q' p'

pδ(p,q) = wt(cross-edge) + ε-slack

wt(up-path), wt(down-path) = O(ε)-slack

wt(cross-edge)> γ·2j-1 - 2·2j

wt(up-path) ≤ 2j+1 wt(down-path) ≤ 2j+1

Page 49: From Hierarchical Partitions to Hierarchical Covers:

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]

Page 50: From Hierarchical Partitions to Hierarchical Covers:

FT spanners

Page 51: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

k-FT spanners: use k+1 representatives instead of 1

called surrogates

Page 52: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

k-FT spanners: use k+1 representatives instead of 1

Page 53: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

k-FT spanners: use k+1 representatives instead of 1• Node x: S(x) = surrogate set D(x) ⊆ := descendant set• For small nodes (with < k+1 descendants), S(x) = D(x)

Page 54: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

k-FT spanners: use k+1 representatives instead of 1• Node x: S(x) = surrogate set D(x) ⊆ := descendant set• For small nodes (with < k+1 descendants), S(x) = D(x)

T

v2 v4 v5 v6 v8 v10 v12 v13v7 v9 v11v1 v3

v10,v11 v12,v13v8,v9v6,v7v4,v5v2,v3

v12,v13v8,v9

v10,v11

v4,v5

example k=1:Each leaf point is a surrogate of ≤ 2 internal nodes

Page 55: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

k-FT spanners: use k+1 representatives instead of 1• Node x: S(x) = surrogate set D(x) ⊆ := descendant set• For small nodes (with < k+1 descendants), S(x) = D(x)

T

v2 v4 v5 v6 v8 v10 v12 v13v7 v9 v11v1 v3

v10,v11 v12,v13v8,v9v6,v7v4,v5v2,v3

v12,v13v8,v9

v10,v11

v4,v5

For general k:Each leaf point is a surr’ of ≤ k+1 internal nodes

example k=1:Each leaf point is a surrogate of ≤ 2 internal nodes

Page 56: From Hierarchical Partitions to Hierarchical Covers:

k-FT spanners: use k+1 representatives instead of 1• Node x: S(x) = surrogate set D(x) ⊆ := descendant set• For small nodes (with < k+1 descendants), S(x) = D(x)• Translate each edge (x,y) in the basic net-tree spanner into bipartite clique between the sets S(x) and S(y)

x

S(x) S(y)y

k=2

Page 57: From Hierarchical Partitions to Hierarchical Covers:

k-FT spanners: use k+1 representatives instead of 1• Node x: S(x) = surrogate set ⊆ D(x) := descendant set• For small nodes (with < k+1 descendants), S(x) = D(x)• Translate each edge (x,y) in the basic net-tree spanner into bipartite clique between the sets S(x) and S(y)

x

S(x) S(y)y

k=2

Why k-FT spanner?At least one among k+1 surr’s must function

Page 58: From Hierarchical Partitions to Hierarchical Covers:

k-FT spanners: use k+1 representatives instead of 1• Node x: S(x) = surrogate set ⊆ D(x) := descendant set• For small nodes (with < k+1 descendants), S(x) = D(x)• Translate each edge (x,y) in the basic net-tree spanner into bipartite clique between the sets S(x) and S(y)

x

S(x) S(y)y

k=2

Why k-FT spanner?At least one among k+1 surr’s must functionWhat about small nodes (with < k+1 descendants) ??

Page 59: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

spanner pathup, cross, down

p and q are non-faulty.

q p

q'p‘

Page 60: From Hierarchical Partitions to Hierarchical Covers:

Net-Tree Spanner

spanner pathup, cross, down

p and q are non-faulty. At least one of them will belong to any small node on the path (with < k+1 surr’s)

INDEED: for small nodes, S(x) = D(x)

q p

q'p‘

Page 61: From Hierarchical Partitions to Hierarchical Covers:

k-FT spanners: use k+1 representatives instead of 1• Node x: S(x) = surrogate set ⊆ D(x) := descendant set• For small nodes (with < k+1 descendants), S(x) = D(x)• Translate each edge (x,y) in the basic net-tree spanner into bipartite clique between the sets S(x) and S(y)

Degree:• Each bipartite clique increases degree of surr’s by k+1• Same point is a surr’ of Ω(k) nodes degree Ω(k2)• [Chan-Li-Ning-S., ICALP’13]: This idea + rerouting ideas from [GR08] to fix single-child paths degree Ѳ(k2)

x

S(x) S(y)y

k=2

Page 62: From Hierarchical Partitions to Hierarchical Covers:

k-FT spanners: use k+1 representatives instead of 1• Node x: S(x) = surrogate set ⊆ D(x) := descendant set• For small nodes (with < k+1 descendants), S(x) = D(x)• Translate each edge (x,y) in the basic net-tree spanner into bipartite clique between the sets S(x) and S(y)

Degree:• Each bipartite clique increases degree of surr’s by k+1• Same point is a surr’ of Ω(k) nodes degree Ω(k2)• [Chan-Li-Ning-S., ICALP’13]: This idea + rerouting ideas from [GR08] to fix single-child paths degree Ѳ(k2) AND

small weight & diameter

x

S(x) S(y)y

k=2

Page 63: From Hierarchical Partitions to Hierarchical Covers:

FT Spanners with Optimal Degree

Page 64: From Hierarchical Partitions to Hierarchical Covers:

k-FT spanners: use ≈ k+1 representatives instead of 1• Node x: S(x) = surrogate set ⊆ D(x) := descendant set• Translate each edge (x,y) in the basic net-tree spanner into bipartite clique between the sets S(x) and S(y)

Same Approach ?

Page 65: From Hierarchical Partitions to Hierarchical Covers:

k-FT spanners: use ≈ k+1 representatives instead of 1• Node x: S(x) = surrogate set ⊆ D(x) := descendant set• Translate each edge (x,y) in the basic net-tree spanner into bipartite clique between the sets S(x) and S(y)

ONLY CHANGE: Take S(x) from a superset of D(x)

Same Approach ?

Page 66: From Hierarchical Partitions to Hierarchical Covers:

Sanity Check

The basic net-tree spanner has at least n edges

Each edge is translated into a bipartite clique of size O(k2)

Problem: # edges > k2 n, degree > k2

How can we get degree o(k2)?

?

Page 67: From Hierarchical Partitions to Hierarchical Covers:

Sanity Check

The basic net-tree spanner has at least n edges

Each edge is translated into a bipartite clique of size O(k2)

Problem: # edges > k2 n, degree > k2

How can we get degree o(k2)?

IDEAS:(1) many cliques are small (2) many cliques are redundant – identify & remove them

?

Page 68: From Hierarchical Partitions to Hierarchical Covers:

Sanity Check

The basic net-tree spanner has at least n edges

Each edge is translated into a bipartite clique of size O(k2)

Problem: # edges > k2 n, degree > k2

How can we get degree o(k2)?

IDEAS:(1) many cliques are small (2) many cliques are redundant – identify & remove them we’ll return to this later…

?

Page 69: From Hierarchical Partitions to Hierarchical Covers:

Sanity Check (example) #large nodes (with > k descendants ) = O(n/k) large cliques only for them #edges for large cliques = O(n/k) · k2 = O(kn)

k+1

small cliques

large cliquesn/k

nodes

Page 70: From Hierarchical Partitions to Hierarchical Covers:

Sanity Check (example)

k+1

small cliques

large cliquesn/k

nodes

#edges for small cliques ?

Page 71: From Hierarchical Partitions to Hierarchical Covers:

Sanity Check (example)

k+1

small cliques

large cliquesn/k

nodes

“convenient” cross edges (e.g., connect children of the same node)#edges for convenient small cliques = O(kn)

#edges for small cliques ?

Page 72: From Hierarchical Partitions to Hierarchical Covers:

k+1

large cliquesn/k

nodes

“convenient” cross edges (e.g., connect children of the same node)#edges for convenient small cliques = O(kn)

small cliques

general cross edges

#edges for small cliques ?Sanity Check (example)

Page 73: From Hierarchical Partitions to Hierarchical Covers:

k+1

large cliquesn/k

nodes

“convenient” cross edges (e.g., connect children of the same node)#edges for convenient small cliques = O(kn)

small cliques

general cross edges

#edges for small cliques ? IDEA: If there are many cross edges below the blue borderline we’ll lower the borderline somehow

Sanity Check (example)

Page 74: From Hierarchical Partitions to Hierarchical Covers:

k+1

large cliquesn/k

nodes

“convenient” cross edges (e.g., connect children of the same node)#edges for convenient small cliques = O(kn)

small cliques

general cross edges

#edges for small cliques ? IDEA: If there are many cross edges below the blue borderline we’ll lower the borderline somehow

Sanity Check (example)

Page 75: From Hierarchical Partitions to Hierarchical Covers:

k+1

large cliques

n/k nodes

“convenient” cross edges (e.g., connect children of the same node)#edges for convenient small cliques = O(kn)

small cliques

general cross edges

#edges for small cliques ? IDEA: If there are many cross edges below the blue borderline we’ll lower the borderline somehow

Sanity Check (example)

Page 76: From Hierarchical Partitions to Hierarchical Covers:

Reminder:

• For i-level node x and leaf descendant y Є D(x), δ(x,y) ≤ 2i+1

How to Choose Surrogates

• dist between tree nodes = dist between original repr’s

Page 77: From Hierarchical Partitions to Hierarchical Covers:

Reminder:

• For i-level node x and leaf descendant y Є D(x), δ(x,y) ≤ 2i+1

• dist between tree nodes = dist between original repr’s

IDEA: use arbitrary points at distance O(2i) say < 100·2i

x = i-level node, with original repr’ p(x)B(x) := ball of radius O(2i) around p(x)

S(x) D(x) ⊆ S(x) B(x)⊆

How to Choose Surrogates

Page 78: From Hierarchical Partitions to Hierarchical Covers:

Hierarchical Cover“From Hierarchical Partitions to Hierarchical Covers”:

Partition = disjoint subsets whose union covers the point set

Cover = subsets whose union covers the point set.Cover degree = max # of subsets that some point belongs to

D(x) | x is i-level node = partitionD(x) | x is 0-level node, D(x) | x is 1-level node, … = hierarchical partition

Page 79: From Hierarchical Partitions to Hierarchical Covers:

Hierarchical Cover“From Hierarchical Partitions to Hierarchical Covers”:

Partition = disjoint subsets whose union covers the point set

Cover = subsets whose union covers the point set.Cover degree = max # of subsets that some point belongs to

D(x) | x is i-level node = partitionD(x) | x is 0-level node, D(x) | x is 1-level node, … = hierarchical partition

B(x) | x is i-level node = cover, degree = O(1)O(d) (packing)B(x) | x is 0-level node, B(x) | x is 1-level node, … = hierarchical cover

Page 80: From Hierarchical Partitions to Hierarchical Covers:

x is small if |B(x)| ≤ 2k+1; otherwise it is large

• For small nodes x: S(x) = D(x);|S(x)| ≤ |B(x)| ≤ 2k+1 Claim: All points in S(x) = D(x) have degree < ε-O(d) · k

Small/Large

Page 81: From Hierarchical Partitions to Hierarchical Covers:

x'qЄS(y’)

y’pЄS(x’)

x

i - log γ

i

≤ γ·2i-log γ

p S(x)

B(x)

(p,q )=( -i log γ) - level cross edge in the FT spanner

x = i-level node; p = surrogate of x with max degree

Observation 1: All neighbors of p due to cross edges until level i - log γ are in B(x). Hence at most 2k+1 such neighbors

Page 82: From Hierarchical Partitions to Hierarchical Covers:

x'qЄS(y’)

y’pЄS(x’)

x

i - log γ

i

≤ γ·2i-log γ = 2i

p S(x)

B(x)

q

x = i-level node; p = surrogate of x with max degree

Observation 1: All neighbors of p due to cross edges until level i - log γ are in B(x). Hence at most 2k+1 such neighbors

(p,q )=( -i log γ) - level cross edge in the FT spanner

Page 83: From Hierarchical Partitions to Hierarchical Covers:

x'qЄS(y’)

y’pЄS(x’)

x

i - log γ

i

p S(x)

B(x)

q

log γ levels

Observation 2: In each level the degree of any point increases by < ε-O(d) · k units

x = i-level node; p = surrogate of x with max degree

≤ γ·2i-log γ = 2i

(p,q )=( -i log γ) - level cross edge in the FT spanner

Page 84: From Hierarchical Partitions to Hierarchical Covers:

x is small if |B(x)| ≤ 2k+1; otherwise it is large

• For small nodes x: S(x) = D(x);|S(x)| ≤ |B(x)| ≤ 2k+1 Claim: All points in S(x) = D(x) have degree < ε-O(d) · k

Small/Large

Page 85: From Hierarchical Partitions to Hierarchical Covers:

Small/Large and Clean/Dirty x is small if |B(x)| ≤ 2k+1; otherwise it is large

• For small nodes x: S(x) = D(x);|S(x)| ≤ |B(x)| ≤ 2k+1 Claim: All points in S(x) = D(x) have degree < ε-O(d) · k

• For large nodes x: choose to S(x) k+1 clean points from B(x) All points are initially clean.

1) Mark them as dirty – won’t re-use them as new surr’s of large nodes again 2) ≥ k+1 clean points are left at B(x) – use surplus later!3) Re-use them until their degree is too large, at least for

next log γ levels – increases surplus of clean points 4) For the (log γ)-level ancestor x’ of x, do this again…

Will we have at least 2k+2 clean points at B(x’) ??

Page 86: From Hierarchical Partitions to Hierarchical Covers:

Small/Large and Clean/Dirty x is small if |B(x)| ≤ 2k+1; otherwise it is large

• For small nodes x: S(x) = D(x);|S(x)| ≤ |B(x)| ≤ 2k+1 Claim: All points in S(x) = D(x) have degree < ε-O(d) · k

• For large nodes x: choose to S(x) k+1 clean points from B(x) All points are initially clean. **BOTTOM-UP PROCESS**:

1) Mark them as dirty – won’t re-use them as new surr’s of large nodes again 2) ≥ k+1 clean points are left at B(x) – use surplus later!3) Re-use them until their degree is too large, at least for

next log γ levels – increases surplus of clean points 4) For the (log γ)-level ancestor x’ of x, do this again…

Will we have at least 2k+2 clean points at B(x’) ??

Page 87: From Hierarchical Partitions to Hierarchical Covers:

Small/Large and Clean/Dirty x is small if |B(x)| ≤ 2k+1; otherwise it is large

• For small nodes x: S(x) = D(x);|S(x)| ≤ |B(x)| ≤ 2k+1 Claim: All points in S(x) = D(x) have degree < ε-O(d) · k

• For large nodes x: choose to S(x) k+1 clean points from B(x) All points are initially clean. **BOTTOM-UP PROCESS**:

1) Mark them as dirty – won’t re-use them as new surr’s of large nodes again 2) ≥ k+1 clean points are left at B(x) – use surplus later!3) Re-use them until their degree is too large, at least for

next log γ levels – increases surplus of clean points 4) For the (log γ)-level ancestor x’ of x, do this again…

Will we have at least 2k+2 clean points at B(x’) ??

?

Page 88: From Hierarchical Partitions to Hierarchical Covers:

x =x0

x' = xlog γ

i + log γ - 1

i

log γ levels

S(x)

x1

x2

x3

S(x’)xlog γ - 1

x = x0 assigns a new surrogate set S(x); x’s parent x1 re-uses S(x), x2 also re-uses S(x), etc.Re-use S(x) until at least xlog γ - 1

Page 89: From Hierarchical Partitions to Hierarchical Covers:

x =x0

x' = xlog γ

i + log γ - 1

i

log γ levels

S(x)

x1

x2

x3

x = x0 assigns a new surrogate set S(x); x’s parent x1 re-uses S(x), x2 also re-uses S(x), etc.Re-use S(x) until at least xlog γ - 1

S(y)y =y0

? y1

S(x) OR S(y)xlog γ - 1 = y2

S(x’)

Page 90: From Hierarchical Partitions to Hierarchical Covers:

x =x0

x' = xlog γ

i + log γ - 1

i

log γ levels

S(x)

x1

x2

x3

S(y)y =y0

y1

Abundance of surrogates – not a problem:pick surrogates whose “appointment”started most recently

xlog γ - 1 = y2

S(x’)S(x) OR S(y)

?

Page 91: From Hierarchical Partitions to Hierarchical Covers:

x =x0

x' = xlog γ

i + log γ - 1

i

log γ levels

S(x)

x1

x2

x3

S(y)y =y0

y1

Abundance of surrogates – not a problem:pick surrogates whose “appointment”started most recently

xlog γ - 1 = y2 S(y) ! S(x’)

Page 92: From Hierarchical Partitions to Hierarchical Covers:

x =x0

x' = xlog γ

i + log γ - 1

i

log γ levels

S(x)

x1

x2

x3

S(y)y =y0

y1

Abundance of surrogates – not a problem:pick surrogates whose “appointment”started most recently

xlog γ - 1 = y2 S(y) ! S(x’)

Page 93: From Hierarchical Partitions to Hierarchical Covers:

Key Idea cross edge (x,y) bipartite clique between S(x) and S(y)x “loses” |S(y)| units, y will “compensate” it (and vice versa)

x y

S(x) S(y)

Page 94: From Hierarchical Partitions to Hierarchical Covers:

How? B+(x):= clean points from B(x) (ball surplus)

Key Idea cross edge (x,y) bipartite clique between S(x) and S(y)x “loses” |S(y)| units, y will “compensate” it (and vice versa)

x y

S(x) S(y)B+(y)

B+(x)

Surplus Lemma: for each node x:|B+(x)| ≥ |S(x)|

Proof. use items 2 & 3 from previous slide inductively.

Page 95: From Hierarchical Partitions to Hierarchical Covers:

How? B+(x):= clean points from B(x) (ball surplus)

Key Idea cross edge (x,y) bipartite clique between S(x) and S(y)x “loses” |S(y)| units, y will “compensate” it (and vice versa)

x y

S(x) S(y)B+(y)

B+(x)

Surplus Lemma: for each node x:|B+(x)| ≥ |S(x)|

Proof. use items 2 & 3 from previous slide inductively.

In the paperF(x) is used

instead B+(x)

Page 96: From Hierarchical Partitions to Hierarchical Covers:

How? B+(x):= clean points from B(x) (ball surplus)

Key Idea cross edge (x,y) bipartite clique between S(x) and S(y)x “loses” |S(y)| units, y will “compensate” it (and vice versa)

x y

S(x) S(y)B+(y)

B+(x)

Surplus Lemma: for each node x:|B+(x)| ≥ |S(x)|

Proof. use items 2 & 3 from previous slide inductively.

Page 97: From Hierarchical Partitions to Hierarchical Covers:

How? B+(x):= clean points from B(x) (ball surplus)

Key Idea cross edge (x,y) bipartite clique between S(x) and S(y)x “loses” |S(y)| units, y will “compensate” it (and vice versa)

x y

S(x) S(y)B+(y)

B+(x)

Surplus Lemma: for each node x:|B+(x)| ≥ |S(x)|

COMPENSATE ?? B+(x) B+(x) B∪ +(y)B+(y) B+(y) B∪ +(x)

Proof. use items 2 & 3 from previous slide inductively.

Page 98: From Hierarchical Partitions to Hierarchical Covers:

Key Idea **First problem**:B+(x) and B+(y) are too far; at factor-γ apart rather thanat factor-O(1) apart.

Solution:Compensate a close ancestor of x instead of x itself: if x is at level i, we compensate its (i + log γ)-ancestor x’

Since the same surr’s are re-used for log γ levels, this is fine

Page 99: From Hierarchical Partitions to Hierarchical Covers:

x y

x'i + log γ

i

≤ γ·2i

B(x’)

log γ levels

B+(x) B+(y)

≤ 2i+log γ+1

Page 100: From Hierarchical Partitions to Hierarchical Covers:

x y

x'i + log γ

i

≤ γ·2i = 2i+log γ

B(x’)

log γ levels

B+(x) B+(y)

B+(y)

≤ 2i+log γ+1

Page 101: From Hierarchical Partitions to Hierarchical Covers:

Key Idea **Second problem**:B+(x) ∩ B+(y) ≠ ∅ (possibly small compensation)

Solution:Be a “leech” = before appointing new surr’s at a large node (making them dirty), try using surr’sof another large node. This large node is the “host”

A leech has a single host. A host may have many leeches – by packing lemma only a constant

This increases degree of surr’s by only constant factor

Page 102: From Hierarchical Partitions to Hierarchical Covers:

Key Idea Corollary [either equal or disjoint]:Let x,y be large nodes at the same level:either S(x) = S(y) or S(x) ∩ S(y) = ∅

Page 103: From Hierarchical Partitions to Hierarchical Covers:

Key Idea Corollary [either equal or disjoint]:Let x,y be large nodes at the same level:either S(x) = S(y) or S(x) ∩ S(y) = ∅

if intersection is non-empty:

one would become a leech of the other, or both would become

leeches of the same host

Page 104: From Hierarchical Partitions to Hierarchical Covers:

Key Idea Corollary [either equal or disjoint]:Let x,y be large nodes at the same level:either S(x) = S(y) or S(x) ∩ S(y) = ∅

Page 105: From Hierarchical Partitions to Hierarchical Covers:

Key Idea Corollary [either equal or disjoint]:Let x,y be large nodes at the same level:either S(x) = S(y) or S(x) ∩ S(y) = ∅(I) S(x) = S(y): Redundant Edges: An edge (x,y) is redundant if S(x) = S(y); such edges are ignored (don’t translate into a clique).Don’t compensate redundant edges!

Page 106: From Hierarchical Partitions to Hierarchical Covers:

Sanity Check (recall)

The basic net-tree spanner has at least n edges

Each edge is translated into a bipartite clique of size O(k2)

Problem: # edges > k2 n, degree > k2

How can we get degree o(k2)?

IDEAS:(1) many cliques are small (2) many cliques are redundant – identify & remove them we’ll return to this later…

?

Page 107: From Hierarchical Partitions to Hierarchical Covers:

The basic net-tree spanner has at least n edges

Each edge is translated into a bipartite clique of size O(k2)

Problem: # edges > k2 n, degree > k2

How can we get degree o(k2)?

IDEAS:(1) many cliques are small (2) many cliques are redundant – identify & remove them we’ll return to this later…

?

Sanity Check (recall)

Page 108: From Hierarchical Partitions to Hierarchical Covers:

Key Idea Corollary [either equal or disjoint]:Let x,y be large nodes at the same level:either S(x) = S(y) or S(x) ∩ S(y) = ∅(I) S(x) = S(y): Redundant Edges: An edge (x,y) is redundant if S(x) = S(y); such edges are ignored (don’t translate into a clique).Don’t compensate redundant edges!

Page 109: From Hierarchical Partitions to Hierarchical Covers:

Key Idea Corollary [either equal or disjoint]:Let x,y be large nodes at the same level:either S(x) = S(y) or S(x) ∩ S(y) = ∅(I) S(x) = S(y): Redundant Edges: An edge (x,y) is redundant if S(x) = S(y); such edges are ignored (don’t translate into a clique).Don’t compensate redundant edges!

(II) S(x) ∩ S(y) = ∅ (too far away to become leech-host):Disjointness: If S(x) ∩ S(y) = ∅, then |B+(x) \ B+(y)| ≥ k+1, |B+(y) \ B+(x)| ≥ k+1

Page 110: From Hierarchical Partitions to Hierarchical Covers:

Key Idea Corollary [either equal or disjoint]:Let x,y be large nodes at the same level:either S(x) = S(y) or S(x) ∩ S(y) = ∅(I) S(x) = S(y): Redundant Edges: An edge (x,y) is redundant if S(x) = S(y); such edges are ignored (don’t translate into a clique).Don’t compensate redundant edges!

(II) S(x) ∩ S(y) = ∅ (too far away to become leech-host):Disjointness: If S(x) ∩ S(y) = ∅, then |B+(x) \ B+(y)| ≥ k+1, |B+(y) \ B+(x)| ≥ k+1 |B+(x) U B+(y)| ≥ 2k+2 large compensation (solves the **second problem**)

Page 111: From Hierarchical Partitions to Hierarchical Covers:

• We devised optimal FT-spanners for doubling metrics: #edges + degree + running time

• Additional useful parameters: weight & diameter

We have near-optimal bounds for them: weight O(k2 + k log n) · w(MST), diameter O(log n)

There are slacks of factor < log k on weight & diameter

Kapoor-Li - optimal weight, but: unbounded diameter, don’t extend to doubling

• Slack on weight coincides with central open question (weight o(log n) · w(MST) for doubling metrics?)

Conclusions and Open Questions

Page 112: From Hierarchical Partitions to Hierarchical Covers:

THANK YOU!