Download presentation
Presentation is loading. Please wait.
1
Micha Streppel TU Eindhoven NCIM-Groep, the Netherlands and Ke Yi AT&T Labs, USA HKUST, Hong Kong
2
A set S of N points in R d Build a data structure such that given a query range Q, S ∩ Q can be returned efficiently Q focus on range reporting, range aggregation in paper
3
size: M size: infinite block size: BI/O
4
1D: B-tree Size: O(N/B), Query: O(log B (N/B)+k/B)) 2D: Half planes [Agarwal et al. 2000] Size: O(N/B), Query: O(log B (N/B)+k/B)) Orthogonal rectangles [Arge et al. 1999] Size: O(N/B), Query: Θ((N/B) ε +k/B) Query: O(log B (N/B)+k/B)), Size: Θ((N/B) log(N/B)/loglog B N) kdB-tree [Robinson 1981] Size O(N/B), Query: O((N/B) ½ + k/B) Q Q Q Exact range searching is difficult!
5
Internal memory: BBD-tree [Arya and Mount, 1995] BAR-tree [Duncan et al. 2001] Size: O(N), Query: O(log(N) + 1/ε + k ε ) for any convex Q External memory: this paper! Q radius = ε · diam(Q)
6
Internal memoryExternal memory 1D O(log(N) + k)O(log B (N/B) + k/B) 2D: half planes O(log(N) + k)O(log B (N/B) + k/B) 2D: orthogonal rectangles O(N ε + k)O((N/B) ε + k/B) 2D: kd-trees O(N ½ + k)O((N/B) ½ + k/B) 2D: approximate range searching O(log(N) + 1/ε + k ε )O(log B (N/B) + 1/ε + k ε /B) Query bounds of linear structures in internal/external memory previously
7
B = 3 Internal memory: O(N ½ + k) External memory: O((N/B) ½ + k/B) for orthogonal rectangle ranges
8
A space-partitioning scheme Similar to kd-tree But also use diagonal cuts All cells are convex and fat Some cuts have to be unbalanced But no two consecutive unbalanced cuts Height: O(log N) Query range intersects O(log(N) + 1/ε + k ε ) cells (any convex range)
9
Top-down blocking Rules for u: Check u’s two subtrees T1, T2 Add u if both have ≥ B/2 nodes If T1 small, check if entire T1 fits then add T1 else do not add u Not possible for both T1 and T2 to be small B = 8
10
Any subtree T u is stored in O(|T u |/B+ 1 ) blocks
11
Q QεQε nodes completely inside Q ε nodes intersects both Q and ∂Q ε total #: O(1/ε) total I/O: O(1/ε) total #: O(k ε ) organized in O(1/ε) subtrees total I/O: O(1/ε + k ε /B)
12
There are O(log N) such nodes, but we would like O(log B N) I/Os
13
size = B/ 2 − 1
14
Identify shallow nodes top-down u is shallow if there is a path of length log(B) beneath u is stored in more than c blocks For such a u Do a BFS for log(B) levels Move these nodes from their original blocks to a new block size = B/ 2 − 1 Achieving the desired query I/O: O(log B (N/B) + 1/ε + k ε /B)
15
Construction: O(N/B · log M/B (N/B)) I/Os Same as sorting Insertions and deletions Use partial rebuilding O(log B N + 1/B · log M/B (N/B)log(N/B)) I/Os amortized
16
S: a collection of objects The density of S is the smallest number λ such that any ball b is intersected by at most λ objects o in S with radius(o) ≥ radius(b) [de Berg et al. 1997] low density high density
17
The object-BAR-tree (using guarding sets [de Berg et al. 2003] ) Size: O(λN/B) Query: O(log B (N/B) + λ/B· 1 /ε + λ·k ε /B) Construction: O(λ N/B · log M/B (N/B)) low density high density
18
Extends to d dimensions Query becomes O(log B (N/B) + 1/ε d-1 + k ε /B) Non-convex query ranges Query becomes O(log B (N/B) + 1/ε d + k ε /B) Construction and query process does not depend on ε The actual cost is O(log B (N/B) + min ε {1/ε d-1 + k ε /B}) Open problems How to update the object-BAR-tree efficiently?
19
Thank you!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.