Skip to main content
Log in

Building an Optimal Point-Location Structure in \(O( sort (n))\) I/Os

  • Published:
Algorithmica Aims and scope Submit manuscript

Abstract

We revisit the problem of constructing an external memory data structure on a planar subdivision formed by n segments to answer point location queries optimally in \(O(\log _B n)\) I/Os. The objective is to achieve the I/O cost of \( sort (n) = O(\frac{n}{B} \log _{M/B} \frac{n}{B})\), where B is the number of words in a disk block, and M being the number of words in memory. The previous algorithms are able to achieve this either in expectation or under the tall cache assumption of \(M \ge B^2\). We present the first algorithm that solves the problem deterministically for all values of M and B satisfying \(M \ge 2B\).

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5

Similar content being viewed by others

Notes

  1. In the original model formulation in [4], M can be as small as 2B. However, any algorithm that works on \(M = \mu B\) with constant \(\mu > 2\) can be adapted to work on \(M = 2B\) with only a constant blowup in space and I/O cost. For this purpose, it suffices to treat each block as \(\mu \) “micro-blocks”, each with \(B/\mu \) words. Each “logical I/O” now reads or writes a micro-block. A memory of 2B words can accommodate \(\mu B\) “micro-blocks”, plus B more words that can be used to perform the “physical I/Os” (which are still done in B words each). Whenever a logical I/O is needed on a micro-block, a physical I/O occurs on the block containing the micro-block. Hence, any algorithm with I/O complexity \(O( sort (n))\) under \(M = \mu B\) now incurs \(O(\frac{\mu n}{B} \log _\frac{\mu M}{B} \frac{\mu n}{B}) = O( sort (n))\) I/Os on \(M = 2B\).

  2. An \(\Omega (\log _B n)\) query lower bound can be established via a reduction from predecessor search [22].

  3. In particular, as pointed out in [12], the algorithm of [18] incurs \(O(n \log _B n)\) I/Os on a general \({\mathcal {S}}\).

  4. \(IL^*(B)\) is the number of times that we need to repeatedly apply \(\log ^*\) operation on B before the value becomes O(1).

  5. \(O_\epsilon \) hides a factor polynomial to \(1/\epsilon \).

  6. The structure solves a more general problem called approximate half-space counting in \(\mathbb {R}^3\).

  7. The algorithm of [1] is described with a default leaf capacity of B, but one can replace that with any \(\beta \in [B, \sqrt{MB}]\) without affecting the algorithm’s correctness. In fact, since what we need here is only the leaf level, the algorithm of [1] can be simplified considerably by ignoring all of its details on producing the non-leaf levels of a persistent B-tree.

  8. Suppose that we have a problem \(\Pi \) on an input set S. \(\Pi \) is decomposable if we can partition S into \(S_1, S_2, \ldots , S_\gamma \) such that, once we have the answer on each \(S_i\) (\(1 \le i \le \gamma \)), we can obtain the answer of S using \(O(\gamma )\) additional I/Os.

  9. A weaker insertion cost of \(O(\log _B^{\alpha +1} n)\) was claimed in [8]. However, it should be folklore that the cost can be easily improved to as we stated here (for readers familiar with the technique: by creating a structure on \(B, B^{1+\delta /2}, B^{1+\delta }, B^{1+3\delta /2}, \ldots \) elements, respectively).

References

  1. Achakeev, D., Seeger, B.: Efficient bulk updates on multiversion B-trees. PVLDB 6(14), 1834–1845 (2013)

    Google Scholar 

  2. Afshani, P., Chan, T.M.: On approximate range counting and depth. Discrete Comput. Geom. 42(1), 3–21 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  3. Agarwal, P.K., Arge, L.., Brodal, G.S.., Vitter, J.S.: I/O-efficient dynamic point location in monotone planar subdivisions. In: Proceedings of the Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 11–20 (1999)

  4. Aggarwal, A., Vitter, J.S.: The input/output complexity of sorting and related problems. CACM 31(9), 1116–1127 (1988)

    Article  MathSciNet  Google Scholar 

  5. Arge, L., Brodal, G.S., Georgiadis, L.: Improved dynamic planar point location. In: Proceedings of Annual IEEE Symposium on Foundations of Computer Science (FOCS), pp. 305–314 (2006)

  6. Arge, L., Brodal, G.S., Rao, S.S.: External memory planar point location with logarithmic updates. Algorithmica 63(1–2), 457–475 (2012)

    Article  MathSciNet  MATH  Google Scholar 

  7. Arge, L., Danner, A., Teh, S.-M.: I/O-efficient point location using persistent B-trees. ACM J. Exp. Algorithmics 8, 1–2 (2003)

    MathSciNet  MATH  Google Scholar 

  8. Arge, L., Vahrenhold, J.: I/O-efficient dynamic planar point location. Comput. Geom. 29(2), 147–162 (2004)

    Article  MathSciNet  MATH  Google Scholar 

  9. Arge, L., Vengroff, D.E., Vitter, J.S.: External-memory algorithms for processing line segments in geographic information systems. Algorithmica 47(1), 1–25 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  10. Aronov, B., Har-Peled, S.: On approximating the depth and related problems. SIAM J. Comput. 38(3), 899–921 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  11. Baumgarten, H., Jung, H., Mehlhorn, K.: Dynamic point location in general subdivisions. J. Algorithms 17(3), 342–380 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  12. Bender, M.A., Cole, R., Raman, R.: Exponential structures for efficient cache-oblivious algorithms. In: International Colloquium on Automata, Languages and Programming (ICALP), pp. 195–207 (2002)

  13. Bentley, J.L., Saxe, J.B.: Decomposable searching problems I: static-to-dynamic transformation. J. Algorithms 1(4), 301–358 (1980)

    Article  MathSciNet  MATH  Google Scholar 

  14. Bertino, E., Catania, B., Shidlovsky, B.: Towards optimal indexing for segment databases. In: Proceedings of Extending Database Technology (EDBT), pp. 39–53 (1998)

  15. Cheng, S.-W., Janardan, R.: New results on dynamic planar point location. SIAM J. Comput. 21(5), 972–999 (1992)

    Article  MathSciNet  MATH  Google Scholar 

  16. de Berg, M., Haverkort, H.J., Thite, S., Toma, L.: I/O-efficient map overlay and point location in low-density subdivisions. In: International Symposium on Algorithms and Computation (ISAAC), pp. 500–511 (2007)

  17. den Bercken, J.V., Seeger, B., Widmayer, P.: A generic approach to bulk loading multidimensional index structures. In: Proceedings of Very Large Data Bases (VLDB), pp. 406–415 (1997)

  18. Goodrich, M.T., Tsay, J.-J., Vengroff, D.E., Vitter, J.S.: External-memory computational geometry. In: Proceedings of Annual IEEE Symposium on Foundations of Computer Science (FOCS), pp. 714–723 (1993)

  19. Haussler, D., Welzl, E.: Epsilon-nets and simplex range queries. Discrete Comput. Geom. 2, 127–151 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  20. Maheshwari, A., Zeh, N.: I/O-efficient planar separators. SIAM J. Comput. 38(3), 767–801 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  21. Overmars, M.H.: Range searching in a set of line segments. In: Proceedings of Symposium on Computational Geometry (SoCG), pp. 177–185 (1985)

  22. Patrascu, M., Thorup, M.: Time–space trade-offs for predecessor search. In: Proceedings of ACM Symposium on Theory of Computing (STOC), pp. 232–240 (2006)

  23. Sarnak, N., Tarjan, R.E.: Planar point location using persistent search trees. CACM 29(7), 669–679 (1986)

    Article  MathSciNet  MATH  Google Scholar 

  24. van Walderveen, F., Zeh, N., Arge, L.: Multiway simple cycle separators and i/o-efficient algorithms for planar graphs. In: Proceedings of the Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 901–918 (2013)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yufei Tao.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Hu, X., Sheng, C. & Tao, Y. Building an Optimal Point-Location Structure in \(O( sort (n))\) I/Os. Algorithmica 81, 1921–1937 (2019). https://doi.org/10.1007/s00453-018-0518-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00453-018-0518-2

Keywords

Navigation