Advertisement

Kinetic Algorithms Via Self-adjusting Computation

  • Umut A. Acar
  • Guy E. Blelloch
  • Kanat Tangwongsan
  • Jorge L. Vittes
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4168)

Abstract

Define a static algorithm as an algorithm that computes some combinatorial property of its input consisting of static, i.e., non-moving, objects. In this paper, we describe a technique for syntactically transforming static algorithms into kinetic algorithms, which compute properties of moving objects. The technique offers capabilities for composing kinetic algorithms, for integrating dynamic and kinetic changes, and for ensuring robustness even with fixed-precision floating-point arithmetic. To evaluate the effectiveness of the approach, we implement a library for performing the transformation, transform a number of algorithms, and give an experimental evaluation. The results show that the technique performs well in practice.

Keywords

Convex Hull Computational Geometry Kinetic Event Garbage Collection Static Algorithm 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Acar, U.A.: Self-Adjusting Computation. PhD thesis, Department of Computer Science, Carnegie Mellon University (May 2005)Google Scholar
  2. 2.
    Acar, U.A., Blelloch, G.E., Blume, M., Harper, R., Tangwongsan, K.: A library for self-adjusting computation. In: ACM SIGPLAN Workshop on ML (2005)Google Scholar
  3. 3.
    Acar, U.A., Blelloch, G.E., Blume, M., Tangwongsan, K.: An experimental analysis of self-adjusting computation. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (2006)Google Scholar
  4. 4.
    Acar, U.A., Blelloch, G.E., Harper, R.: Adaptive functional programming. In: Proceedings of the 29th Annual ACM Symposium on Principles of Programming Languages, pp. 247–259 (2002)Google Scholar
  5. 5.
    Acar, U.A., Blelloch, G.E., Harper, R.: Selective memoization. In: Proceedings of the 30th Annual ACM Symposium on Principles of Programming Languages (2003)Google Scholar
  6. 6.
    Acar, U.A., Blelloch, G.E., Harper, R., Vittes, J.L., Woo, M.: Dynamizing static algorithms with applications to dynamic trees and history independence. In: ACM-SIAM Symposium on Discrete Algorithms (SODA) (2004)Google Scholar
  7. 7.
    Acar, U.A., Blelloch, G.E., Tangwongsan, K., Vittes, J.L.: Kinetic algorithms via self-adjusting computation. Technical Report CMU-CS-06-115, Department of Computer Science, Carnegie Mellon University (March 2006)Google Scholar
  8. 8.
    Agarwal, P.K., Eppstein, D., Guibas, L.J., Henzinger, M.R.: Parametric and kinetic minimum spanning trees. In: Proceedings of the 39th Annual IEEE Symposium on Foundations of Computer Science, pp. 596–605 (1998)Google Scholar
  9. 9.
    Agarwal, P.K., Guibas, L.J., Hershberger, J., Veach, E.: Maintaining the extent of a moving set of points. Discrete and Computational Geometry 26(3), 353–374 (2001)MATHMathSciNetGoogle Scholar
  10. 10.
    Alexandron, G., Kaplan, H., Sharir, M.: Kinetic and dynamic data structures for convex hulls and upper envelopes. In: Dehne, F., López-Ortiz, A., Sack, J.-R. (eds.) WADS 2005. LNCS, vol. 3608, pp. 269–281. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  11. 11.
    Barber, C.B., Dobkin, D.P., Huhdanpaa, H.: The quickhull algorithm for convex hulls. ACM Trans. Math. Softw. 22(4), 469–483 (1996)MATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Basch, J.: Kinetic Data Structures. PhD thesis, Department of Computer Science, Stanford University (June 1999)Google Scholar
  13. 13.
    Basch, J., Guibas, L.J., Hershberger, J.: Data structures for mobile data. Journal of Algorithms 31(1), 1–28 (1999)MATHCrossRefMathSciNetGoogle Scholar
  14. 14.
    Basch, J., Guibas, L.J., Silverstein, C.D., Zhang, L.: A practical evaluation of kinetic data structures. In: SCG 1997: Proceedings of the Thirteenth Annual Symposium on Computational Geometry, pp. 388–390. ACM Press, New York (1997)CrossRefGoogle Scholar
  15. 15.
    Chan, T.M.: Optimal output-sensitive convex hull algorithms in two and three dimensions. Discrete and Computational Geometry 16, 361–368 (1996)MATHCrossRefMathSciNetGoogle Scholar
  16. 16.
    Graham, R.L.: An efficient algorithm for determining the convex hull of a finete planar set. Information Processing Letters 1, 132–133 (1972)MATHCrossRefGoogle Scholar
  17. 17.
    Guibas, L., Karaveles, M., Russel, D.: A computational framework for handling motion. In: Proceedings of teh Sixth Workshop on Algorithm Engineering and Experiments, pp. 129–141 (2004)Google Scholar
  18. 18.
    Guibas, L., Russel, D.: An empirical comparison of techniques for updating delaunay triangulations. In: SCG 2004: Proceedings of the Twentieth Annual Symposium on Computational Geometry, pp. 170–179. ACM Press, New York (2004)CrossRefGoogle Scholar
  19. 19.
    Guibas, L.J., Karavelas, M.I.: Interval methods for kinetic simulations. In: SCG 1999: Proceedings of the Fifteenth Annual Symposium on Computational Geometry, pp. 255–264. ACM Press, New York (1999)CrossRefGoogle Scholar
  20. 20.
    Preparata, F.P., Shamos, M.I.: Computational Geometry. Springer, Heidelberg (1985)Google Scholar
  21. 21.
    Shamos, M.I.: Computational Geometry. PhD thesis, Department of Computer Science, Yale University (1978)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Umut A. Acar
    • 1
  • Guy E. Blelloch
    • 2
  • Kanat Tangwongsan
    • 2
  • Jorge L. Vittes
    • 3
  1. 1.Toyota Technological Institute 
  2. 2.Carnegie Mellon University 
  3. 3.Stanford University 

Personalised recommendations