doi:10.1016/S0022-0000(02)00035-1
Copyright © 2003 Published by Elsevier Science (USA).
References and further reading may be available for this article. To view references and further reading you must
purchase this article.
Pankaj K. Agarwal
,
,
, a, 1, Lars Arge
,
, a, 2 and Jeff Erickson
,
, b, 3
a Center for Geometric Computing, Department of Computer Science, Duke University, Durham, NC 27708, USA
b Department of Computer Science, University of Illinois, Urbana, IL 61801, USA
Received 13 December 2000;
revised 6 February 2002.
Available online 27 February 2003.
Abstract
We propose three indexing schemes for storing a set S of N points in the plane, each moving along a linear trajectory, so that any query of the following form can be answered quickly: Given a rectangle R and a real value t, report all K points of S that lie inside R at time t. We first present an indexing structure that, for any given constant
>0, uses O(N/B) disk blocks and answers a query in O((N/B)1/2+
+K/B) I/Os, where B is the block size. It can also report all the points of S that lie inside R during a given time interval. A point can be inserted or deleted, or the trajectory of a point can be changed, in O(logB2 N) I/Os. Next, we present a general approach that improves the query time if the queries arrive in chronological order, by allowing the index to evolve over time. We obtain a tradeoff between the query time and the number of times the index needs to be updated as the points move. We also describe an indexing scheme in which the number of I/Os required to answer a query depends monotonically on the difference between the query time stamp t and the current time. Finally, we develop an efficient indexing scheme to answer approximate nearest-neighbor queries among moving points.
Fig. 1. Instances of Q1, Q2, and Q3 queries, respectively.
Fig. 2. The duals of two points and a strip are two lines and a vertical line segment.
Fig. 3. A balanced simplicial partition of size 7.
Fig. 4. Decomposing a rectangle query among moving two-dimensional points into two strip queries among static two-dimensional points, by dualizing the xt- and yt-projections. A line intersects the rectangle if and only if both corresponding points lie inside the strips.
Fig. 5. Schematic of our multilevel partition tree structure. Each node in certain levels of the primary tree points to a secondary structure. Only two secondary structures are shown.
Fig. 6. Schematic picture of our one-dimensional query/update tradeoff structure.
Fig. 7. Slabs corresponding to a node v in the primary tree. To find the points in the rectangle, we answer three-sided queries using
and , find the lowest point in each slab above the bottom of the rectangle using , and then walk upwards through the points inside slabs
v3 and
v4.
Fig. 8. Slabs corresponding to a node v in a priority search tree. The highest B points in each slab (shown here in white) are stored in the catalog structure
; the other (black) points are stored recursively. To answer the query, we query to find the relevant white points and then recursively query in
v2,
v3, and
v5 for the relevant black points.
Fig. 9. (a) An example catalog structure with B=10. Each block contains the points inside or above its rectangle. (b) The blocks loaded by the query algorithm are indicated by the bold rectangles and contain the solid points.
Fig. 10. Schematic of our two-dimensional query/update tradeoff structure. Each node in certain levels of the primary tree points to a secondary structure. Only one secondary structure is shown.
Fig. 11. Schematic of our data structure for distant queries. Each node in certain levels of the partition tree points to a multiversion kinetic B-tree. Only two secondary structures are shown.
Fig. 12. (a) A regular m-gon P centered at the origin; (b) the difference between the Euclidean and dP metrics; (c) the wedge Qa and the nearest neighbor to a under the distance function d
1.
Corresponding author
*1 An extended abstract of this paper appeared in the Proceedings of the 19th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems [2].
1 Supported in part by National Science Foundation Grants EIA-9870734, EIA-9972879, and CCR-9732787, by Army Research Office MURI Grant DAAH04-96-1-0013, by a Sloan fellowship, and by a grant from the US–Israeli Binational Science Foundation.
2 Supported in part by National Science Foundation grants EIA-9870734, EIA-9972879, and CR-9984099.
3 Supported in part by National Science Foundation grant DMS-9627683, by US Army Research Office MURI grant DAAH04-96-1-0013, and by a Sloan Fellowship.