15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

By the reduction in [52], a data structure for 3-sided 3-D queries also applies to 2-D homothetic range<br />

search, in which the queries correspond to scaled and translated (but not rotated) transformations of an<br />

arbitrary fixed polygon. An interesting special case is “fat” orthogonal 2-D range search, where the query<br />

rectangles are required to have bounded aspect ratio. For example, every rectangle with bounded aspect<br />

ratio can be covered by two overlapping squares. An interesting open problem is to develop linear-sized<br />

optimal data structures for fat orthogonal 2-D range search. By the reduction, one possible approach<br />

would be to develop optimal linear-sized data structures for 3-sided 3-D range search.<br />

Agarwal et al. [6] consider halfspace range searching, in which a query is specified by a hyperplane<br />

and a bit indicating one of its two sides, and the output of the query consists of all the points on that<br />

side of the hyperplane. They give various data structures for halfspace range searching in two, three, and<br />

higher dimensions, including one that works for simplex (polygon) queries in two dimensions, but with<br />

a higher query I/O cost. They have subsequently improved the storage bounds for halfspace range queries<br />

in two dimensions to obtain an optimal static data structure satisfying Criteria 1 and 2 of Section 32.12.<br />

The number of I/Os needed to build the data structures for 3-D orthogonal range search and halfspace<br />

range search is rather large (more than Ω(N)). Still, the structures shed useful light on the complexity<br />

of range searching and may open the way to improved solutions. An open problem is to design efficient<br />

construction and update algorithms and to improve upon the constant factors.<br />

Callahan et al. [50] develop dynamic EM data structures for several online problems in d dimensions.<br />

For any fixed � > 0, they can find an approximately nearest neighbor of a query point (within a 1 + � factor<br />

of optimal) in O(log B N) I/Os; insertions and deletions can also be done in O(log B N) I/Os. They use a<br />

related approach to maintain the closest pair of points; each update costs O(log B N) I/Os. Govindrajan<br />

et al. [98] achieve the same bounds for closest pair by maintaining a well-separated pair decomposition.<br />

For finding nearest neighbors and approximate nearest neighbors, two other approaches are partition trees<br />

[5,6] and locality-sensitive hashing [95]. Numerous data structures and lower bounds have been developed<br />

for range queries and related problems on spatial data. Refer to [10,91,153,199] for a broad survey.<br />

Dynamic and Kinetic Data Structures<br />

The preceding sections have outlined cases of data structures in which the data items change dynamically.<br />

The bootstrapping paradigm discussed in the two previous subsections is a very useful approach for<br />

converting static data structures that are efficient in internal memory into dynamic ones that are efficient<br />

for external memory.<br />

In another approach to dynamic data, Arge and Vahrenhold [26] obtain I/O bounds for dynamic point<br />

location in general planar subdivisions similar to those of [4], but without use of level-balanced trees.<br />

Their method uses a weight-balanced base structure at the outer level and a multislab structure for storing<br />

segments similar to that of Arge and Vitter [28]. They use an externalization of Bentley’s logarithmic<br />

method [44,161] to construct a data structure to answer vertical rayshooting queries in the multislab<br />

structures. Arge et al. [8] apply the logarithmic method (in both the binary form and B-way variant) to<br />

get EM versions of kd-trees, BBD trees, and BAR trees.<br />

In some applications, the data items are moving and their spatial coordinates change in a regular manner.<br />

Early work on temporal data generally concentrated on time-series data or multiversion data [171]. A<br />

question of growing interest in this mobile age is how to store and index continuously moving items, such<br />

as mobile telephones, cars, and airplanes (e.g., see [113,170,211]). Two main approaches are used for<br />

storing moving items: The first technique is to use the same sort of data structure as for nonmoving data,<br />

but to update it whenever items move sufficiently so far as to trigger important combinatorial events that<br />

are relevant to the application at hand [38]. A different approach is to store each item’s location and speed<br />

trajectory, so that no updating is needed as long as the item’s trajectory plan does not change. Such an<br />

approach requires fewer updates, but the representation for each item generally has higher dimension, and<br />

the search strategies are therefore less efficient.<br />

Kollios et al. [126] developed a linear-space indexing scheme for moving points along a (1-D) line, based<br />

upon the notion of partition trees. Their structure supports a variety of range search and approximate<br />

© 2002 by CRC Press LLC

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!