17.01.2013 Views

Algorithms and Data Structures for External Memory

Algorithms and Data Structures for External Memory

Algorithms and Data Structures for External Memory

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

13.2 Continuously Moving Items 121<br />

O � (log B N) 2� I/Os amortized per insertion. By global rebuilding we can<br />

do deletions in O(log B N) I/Os amortized. As in the internal memory<br />

case, the amortized updates can typically be made worst-case.<br />

Arge <strong>and</strong> Vahrenhold [56] obtain I/O bounds <strong>for</strong> dynamic point<br />

location in general planar subdivisions similar to those of [6], but without<br />

use of level-balanced trees. Their method uses a weight-balanced<br />

base structure at the outer level <strong>and</strong> a multislab structure <strong>for</strong> storing<br />

segments similar to that of Arge <strong>and</strong> Vitter [58] described in Section<br />

12.3. They use the logarithmic method to construct a data structure<br />

to answer vertical rayshooting queries in the multislab structures.<br />

The method relies upon a total ordering of the segments, but such an<br />

ordering can be changed drastically by a single insertion. However, each<br />

substructure in the logarithmic method is static (until it is combined<br />

with another substructure), <strong>and</strong> thus a static total ordering can be used<br />

<strong>for</strong> each substructure. The authors show by a type of fractional cascading<br />

that the queries in the log B N substructures do not have to be done<br />

independently, which saves a factor of log B N in the I/O cost, but at<br />

the cost of making the data structures amortized instead of worst-case.<br />

Agarwal et al. [11] apply the logarithmic method (in both the binary<br />

<strong>for</strong>m <strong>and</strong> B-way variant) to get EM versions of kd-trees, BBD trees,<br />

<strong>and</strong> BAR trees.<br />

13.2 Continuously Moving Items<br />

Early work on temporal data generally concentrated on time-series or<br />

multiversion data [298]. A question of growing interest in this mobile<br />

age is how to store <strong>and</strong> index continuously moving items, such as mobile<br />

telephones, cars, <strong>and</strong> airplanes (e.g., see [283, 297, 356]). There are two<br />

main approaches to storing moving items: The first technique is to use<br />

the same sort of data structure as <strong>for</strong> nonmoving data, but to update<br />

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

events that are relevant to the application at h<strong>and</strong> [73]. For<br />

example, an event relevant <strong>for</strong> range search might be triggered when<br />

two items move to the same horizontal displacement (which happens<br />

when the x-ordering of the two items is about to switch). A different<br />

approach is to store each item’s location <strong>and</strong> speed trajectory, so that

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

Saved successfully!

Ooh no, something went wrong!