Download Presentation

Loading in 3 Seconds

This presentation is the property of its rightful owner.

X

Sponsored Links

- 72 Views
- Uploaded on
- Presentation posted in: General

An optimal dynamic spanner for points residing in doubling metric spaces

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

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

An optimal dynamic spanner for points residing in doubling metric spaces

Lee-Ad Gottlieb

NYU Weizmann

Liam Roditty

Weizmann

- A spanner for graph G is a subgraph H
- H contains all vertices in G
- H contains only some edges of G

G

H

1

2

2

1

1

1

1

- Some qualities of a spanner
- degree
- stretch
- hop
- weight

- Applications: networks, routing…

G

H

1

2

2

1

1

1

1

- Our goal:
- Build (1+e)-stretch spanner for the full graph on S
- Low degree
- Maintain dynamically

- Lower bounds on degree and dynamic maintenance follow…
- First need to define doubling dimension

- Point set X has doubling dimension if
- the points of X covered by ball B can be covered by 2 balls of half the radius.
- Where a ball centered at point c is the space within distance r of c.

4

5

3

6

8

2

7

1

1

1

1

1

1

- Low stretch spanner necessitates high degree.
- Example: A
(2-e)-spanner

is the full graph

- Example: A
- Lower bounds on degree
- (1/e)O()

H

- Lower bound on insertions
- An insertion of a new point in a (1+e)-spanner subsumes a (1+e)-NNS

e

1

q

e

e

e

e

- Lower bounds on (1+e)-ANN search (arbitrary metric space)
- 2O() log n
- (1/e)O()

- Krauthgamer and Lee (SODA ‘04)
- considered (1+e)-ANN queries on S having low doubling dimension
- Created a point hierarchy to solve this problem

- Hierarchy is composed of levels of d-nets.
- Packing: Points of each net spaced out
- Covering: Points of each net cover all points of the previous level

- Spanners can be created using point hierarchies (GGN-04)
- Example…
- Consider the hierarchy of KL-04, used in nearest neighbor search
- Hierarchy is composed of levels of d-nets.
- Packing: Points of each net spaced out
- Covering: Points of each net cover all points of the previous level

1-net

2-net

4-net

8-net

1-net

2-net

4-net

8-net

Packing

Radius = 1

Covering: all points

are covered

1-net

2-net

4-net

8-net

Radius = 2

1-net

2-net

4-net

8-net

1-net

2-net

4-net

8-net

1-net

2-net

4-net

8-net

1-net

2-net

4-net

8-net

1-net

2-net

4-net

8-net

1-net

2-net

4-net

8-net

Spanning Tree defines

Parent-child relationship

Let logD be the aspect

Ratio of the point set.

The tree has logD levels.

Tree

Parent-child

edge

- Edges
- Parent-child
- Lateral

- Path:
- Up, across, down

Tree

Lateral

edge

- Edges
- Parent-child
- Lateral

- Path:
- Up, across, down

Tree

Path

- Edges
- Parent-child
- Lateral

- Path:
- Up, across, down

Tree

Path

- Edges
- Parent-child
- Lateral

- Path:
- Up, across, down

Tree

Path

- Edges
- Parent-child
- Lateral

- Path:
- Up, across, down

Tree

Path

- Edges
- Parent-child
- Lateral

- Path:
- Up, across, down

Tree

Path

- Edges
- Parent-child
- Lateral

- Path:
- Up, across, down

Tree

Path

- Edges
- Parent-child
- Lateral

- Path:
- Up, across, down

1-net

2-net

4-net

8-net

Identify 1-net

points

1-net

2-net

4-net

8-net

Connect 1-net

Points within

radius 3

Call these lateral

connections

1-net

2-net

4-net

8-net

Identify 2-net

points

Note that we

got all parent-

child connections

for free

1-net

2-net

4-net

8-net

Connect 2-net

Points within

radius 6

1-net

2-net

4-net

8-net

Identify 4-net

points

1-net

2-net

4-net

8-net

Connect 4-net

Points within

radius 12

1-net

2-net

4-net

8-net

What’s the stretch

between these two

Points?

1-net

2-net

4-net

8-net

What’s the stretch

between these two

Points?

Key to proof: blue

points are connected,

but white points aren’t

1-net

2-net

4-net

8-net

Stretch: dspanner/d =

(2+4+(d’+4+4)+4+2)/(d’-2-2) =

(d’+20)/(d’-4) < 13

d’>6

- We connected d-net points within distance 3d.
- More generally
- Connect d-net points that are within distance cd
- Degree is cO()

- Let j be the last level at which parents of the points are not connected. Stretch:
- dspanner/d < ((d’+2j+1+2j+1)+2j+2+2j+2)/(d’-2j-1-2j-1) <
(c2j+2j+2+2j+2+2j+2)/(c2j-2j) =

(c+12)/(c-1) = 1+13/(c-1) = (1+e)

- dspanner/d < ((d’+2j+1+2j+1)+2j+2+2j+2)/(d’-2j-1-2j-1) <

- Connect d-net points that are within distance cd

What’s the degree of the spanner in the previous example?

1-net

2-net

4-net

8-net

Problem: degree is logD

- Problem: This
- node appears
- at every level.
- Solution: Why
- require each level
- to be subset of
- the next one?

- Another problem: Need fast dynamic updates
- CG-06 showed how to support a hierarchy under dynamic update in 2O() log n time.
- But doesn’t support deletions!

- Goals:
- Replace deleted points
- Low Degree:
- each point should appear only O(1) times in the hierarchy

A look

at the new

hierarchy

Step 1: Remove leaf nodes of deleted points

Step 1: Remove leaf nodes of deleted points

Step 2: Compress single child paths

Step 2: Compress single child paths

Step 2: Compress single child paths

Step 2: Compress single child paths

Step 2: Compress single child paths

Tree with

degree at

least 2

Step 2: Compress single child paths

- Replacement scheme:
- Eliminates deleted points
- Each point appears
- O(1) times

- Adds a small cost to the stretch

- Spanner edges:
- Have parent-child edges
- Missing some lateral edges

parent-child

edges

Missing

lateral

edge

Possible solution?

- Replacing lateral edges

Problem: Too many

replacement edges

incident on a single

node

Solution: Assign x

as a “step child” of

the lowest covering

point

x

- Final spanner
- (1+e) stretch
- (1/e)O() degree (optimal)
- (1/e)O() log n update time (optimal?)

- Thank you!