Title: Micha Streppel and Ke Yi
1Approximate Range Searching in External Memory
- Micha Streppel and Ke Yi
- Presented by Liu Nan
2Range Searching
- A set S of N points in Rd
- Build a data structure such that given a query
range Q, S n Q can be returned efficiently
focus on range reporting, range aggregation in
paper
3Range Searching in External Memory
- 1D B-tree
- Size O(N/B), Query O(logB(N/B)k/B))
- 2D
- Half planes Agarwal et al. 2000
- Size O(N/B), Query O(logB(N/B)k/B))
- Orthogonal rectangles Arge et al. 1999
- Size O(N/B), Query T((N/B)ek/B)
- Query O(logB(N/B)k/B)) , Size T((N/B)
log(N/B)/loglogBN) - kdB-tree Robinson 1981
- Size O(N/B), Query O((N/B)½ k/B)
Exact range searching is difficult!
4Approximate Range Searching
radius e diam(Q)
Q
- Internal memory
- BBD-tree Arya and Mount, 1995
- BAR-tree Duncan et al. 2001
- Size O(N), Query O(log(N) 1/e ke) for any
convex Q - External memory this paper!
5Externalization
previously
Query bounds of linear structures in
internal/external memory
6Externalizing the kd-tree
B 3
Internal memory O(N½ k) External memory
O((N/B)½ k/B) for orthogonal rectangle ranges
7The BAR-Tree Duncan et al. 2001
- 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/e ke)
cells(any convex range)
8Blocking the BAR-Tree
- Top-down blocking
- Rules for u
- Check us 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
9Blocking the BAR-Tree
Any subtree Tu is stored in O(Tu/B1) blocks
10Current Blocking Not Sufficient
11Regrouping Shallow Subtrees
- 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
12I/O Analysis of a Query
organized in O(1/e)subtrees
Qe
Q
nodes completelyinside Qe
nodes intersectsboth Q and ?Qe
total O(ke)
total O(log N1/e) total I/O O(logBN1/e)
total I/O O(1/e ke/B)
Achieving the desired query I/O O(logB(N/B)
1/e ke/B)
13Construction and Update
- Construction O(N/B logM/B(N/B)) I/Os
- Same as sorting
- Insertions and deletions
- Use partial rebuilding
- O(logBN 1/B logM/B(N/B)log(N/B)) I/Os
amortized
14Extension to Objects
- 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
high density
15Extension to Objects
- The object-BAR-tree (using guarding sets de Berg
et al. 2003) - Size O(?N/B)
- Query O(logB(N/B) ?/B1/e ?ke/B)
- Construction O(? N/B logM/B(N/B))
low density
high density
high density
16The END