710 likes | 886 Views
Searching Dynamic Point Sets in Spaces with Bounded Doubling Dimension. Lee-Ad Gottlieb Joint work with Richard Cole. NNS. Nearest Neighbor Search (NNS) Given a set of points S in a metric space Preprocess S so that the following query can be answered efficiently:
E N D
Searching Dynamic Point Sets in Spaces with Bounded Doubling Dimension Lee-Ad Gottlieb Joint work with Richard Cole
NNS • Nearest Neighbor Search (NNS) • Given a set of points S in a metric space • Preprocess S so that the following query can be answered efficiently: • given query point q, what is the closest point to q in S? q
NNS • A sublinear algorithm for NNS in general metrics? • Bad news: not possible. q ~1 ~1 ~1 ~1 ~1
NNS • What if we only require only an approximate NNS (ANN)? • More bad news: Still takes linear time! • This talk deals with ANN. • Can we parameterize the hard case? q ~1 ~1 ~1 ~1 ~1
Doubling Dimension • The space within radius r of center c is the r-ball of c. • 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. 4 5 3 6 8 2 7 1
NNS in Low Doubling Dimension • Data structure for (1+e)-ANN query on S • Navigating Net of points aids search. • A Navigating Net is composed of levels of -nets. • Navigating nets: Simple algorithms for proximity search. R. Krauthgamer, J.R. Lee. SODA ‘04
Modified -net • anmodified -net for a point set S is a set of balls of radius centered at points of S • Packing property • The centers are separated from each other by some minimum distance ’ • We use ’ = 4/5 • The balls Cover all the points of the S.
Navigating Net Variant 1-net 2-net 4-net 8-net
Navigating Net Variant 1-net 2-net 4-net 8-net Packing Radius = 1 Covering: all points are covered
Navigating Net Variant 1-net 2-net 4-net 8-net Radius = 2
Navigating Net Variant 1-net 2-net 4-net 8-net
Navigating Net Variant 1-net 2-net 4-net 8-net
Navigating Net Variant 1-net 2-net 4-net 8-net
Navigating Net Variant 1-net 2-net 4-net 8-net
Navigating Net Variant 1-net 2-net 4-net 8-net
Navigating Net Variant 1-net 2-net 4-net 8-net
Navigating Net Variant 1-net 2-net 4-net 8-net
Navigating Net Variant 1-net 2-net 4-net 8-net
Search example 1-net 2-net 4-net 8-net
Search example 1-net 2-net 4-net 8-net
Search example 1-net 2-net 4-net 8-net
Search example 1-net 2-net 4-net 8-net
Search example 1-net 2-net 4-net 8-net
Search example 1-net 2-net 4-net 8-net
Search example 1-net 2-net 4-net 8-net
Search example 1-net 2-net 4-net 8-net
Search example 1-net 2-net 4-net 8-net
Search example 1-net 2-net 4-net 8-net
Analysis • Time to find the lowest enclosing ball • How many levels of nets are there? • Let the spread of the points be D = dmax/dmin • There are O(log D) levels • At every level, we consider 2O() balls. 2O() log • If = nO(1) we get a good search time • 2O() log n • But what if is asymptotically larger?
Summary of Previous Work DSpread of the points = dmax/dmin Abstract dimension * Static structure, 2O()n log n construction time
Challenge • How to dynamically maintain and search a deep DAG? log levels For large
Special Case O(log n) search on an unbalanced tree is well known.
Special Case O(log n) search on an unbalanced tree is well known.
Special Case O(log n) search on an unbalanced tree is well known.
Special Case O(log n) search on an unbalanced tree is well known.
Special Case O(log n) search on an unbalanced tree is well known. Can we do something similar for our DAGs?
Towards a Tree DAG
Towards a Tree Spanning tree representation
Towards a Tree Spanning tree representation
Towards a Tree Spanning tree representation Balls & subtrees of interest
Towards a Tree Spanning tree representation Balls & subtrees of interest
Towards a Tree Spanning tree representation Balls of interest
Preliminaries • For a ball x at level i, its friends are all balls of level i that intersect x. • In the navigating net, every ball knows who its friends are. This information is readily available from the DAG • If two balls of the same level both contain q, they must be friends.
Modified Search • The search begins with the top ball as the single ball of interest. • In general, the search is specified by 2O()balls of interest, all at the same level. • each of these balls contain the query point • For illustration, let 2O() = 3
Modified Search • Start the search on the largest tree • Identify a subtree with a constant fraction of the total size of the large tree
Modified Search • If the query point is not in the subtree, eliminate the subtree from consideration.