Skip to main content

Visualization in Algorithm Engineering: Tools and Techniques

  • Chapter
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2547))

Abstract

The process of implementing, debugging, testing, engineering and experimentally analyzing algorithmic codes is a complex and delicate task, fraught with many difficulties and pitfalls. In this context, traditional low-level textual debuggers or industrial-strength development environments can be of little help for algorithm engineers, who are mainly interested in high-level algorithmic ideas and not particularly in the language and platform-dependent details of actual implementations. Algorithm visualization environments provide tools for abstracting irrelevant program details and for conveying into still or animated images the high-level algorithmic behavior of a piece of software.

In this paper we address the role of visualization in algorithm engineering. We survey the main approaches and existing tools and we discuss difficulties and relevant examples where visualization systems have helped developers gain insight about algorithms, test implementation weaknesses, and tune suitable heuristics for improving the practical performances of algorithmic codes.

This work has been partially supported by the IST Programme of the EU under contract n. IST-1999-14.186 (ALCOM-FT), by tiR, the Italian National Research Council under contract n. 00.00346.CT26, and by DFG-Grant Na 303/1-2, Forschungsschwerpunkt “Effiziente Algorithmen für diskreteProbleme und ihre Anwendungen”.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R. K. Ahuja, T. L. Magnanti, and J. B. Orlin. Network Flows: Theory, Algorithms and Applications. Prentice Hall, Englewood Cliffs, NJ, 1993.

    Google Scholar 

  2. A. Amenta, T. Munzner, S. Levy, and M. Philips. Geomview: a system for geometric visualization. In Proceedings of the 11th Annual Symposium on Computational Geometry (SoCG’95), pages C12–C13, 1995.

    Google Scholar 

  3. R. Baecker. Sorting out sorting. In SIGGRAPH Video Review. Morgan Kaufmann Publishers, 1983. 30 minutes color sound film.

    Google Scholar 

  4. J. E. Baker, I. Cruz, G. Liotta, and R. Tamassia. Animating geometric algorithms over the web. In Proceedings of the 12th Annual ACM Symposium on Computational Geometry (SoCG’96), pages C3–C4, 1996.

    Google Scholar 

  5. R. S. Baker, M. Boilen, M. T. Goodrich, R. Tamassia, and B. Stibel. Testers and visualizers for teaching data structures. SIGCSEB: SIGCSE Bulletin (ACM Special Interest Group on Computer Science Education), 31, 1999.

    Google Scholar 

  6. A. Begeulin, J. Dongarra, A. Geist, R. Manchek, and V. Sunderam. Graphical development tools for network-based concurrent supercomputing. In Proceedings of Supercomputing’91, pages 435–444, 1991.

    Google Scholar 

  7. C. Berge and A. Ghouila-Houri. Programming, Games and Transportation Networks. Wiley, 1962.

    Google Scholar 

  8. M. H. Brown. Algorithm Animation. MIT Press, Cambridge, MA, 1988.

    Google Scholar 

  9. M. H. Brown. Exploring algorithms using Balsa-II. Computer, 21(5):14–36, 1988.

    Article  Google Scholar 

  10. M. H. Brown. Perspectives on algorithm animation. In Proceedings of the ACM SIGCHI’88 Conference on Human Factors in Computing Systems, pages 33–38, 1988.

    Google Scholar 

  11. M. H. Brown. Zeus: a system for algorithm animation and multi-view editing. In Proceedings of the 7th IEEE Workshop on Visual Languages, pages 4–9, 1991.

    Google Scholar 

  12. M. H. Brown and J. Hershberger. Color and sound in algorithm animation. Computer, 25(12):52–63, 1992.

    Article  Google Scholar 

  13. M. H. Brown and M. Najork. Algorithm animation using 3D interactive graphics. In Proceedings of the ACM Symposium on User Interface Software and Technology, pages 93–100, 1993.

    Google Scholar 

  14. G. Cattaneo, U. Ferraro, G. F. Italiano, and V. Scarano. Cooperative algorithm and data types animation over the net. In Proceedings of the XV IFIP World Computer Congress, Invited Lecture, pages 63–80, 1998. To appear in Journal of Visual Languages and Computing. System home page: http://isis.dia.unisa.it/catai/.

  15. B. V. Cherkassky. A fast algorithm for computing maximum flow in a network. In A. V. Karzanov, editor, Collected Papers, Issue 3: Combinatorial Methods for Flow Problems, pages 90–96. The Institute for Systems Studies, Moscow, 1979. In Russian. English translation appears in AMS Translations, Vol. 158, pages 23-30, 1994.

    Google Scholar 

  16. B. V. Cherkassky and A. V. Goldberg. On implementing the push-relabel method for the maximum flow problem. Algorithmica, 19:390–410, 1997.

    Article  MATH  MathSciNet  Google Scholar 

  17. P. Crescenzi, C. Demetrescu, I. Finocchi, and R. Petreschi. Reversible execution and visualization of programs with LEONARDO. Journal of Visual Languages and Computing, 11(2):125–150, 2000. Leonardo is available at http://www.dis.uniroma1.it/~demetres/Leonardo/.

    Article  Google Scholar 

  18. G. B. Dantzig. Application of the Simplex method to a transportation problem. In T. C. Hoopmans, editor, Activity Analysis and Production and Allocation, Wiley, New York, 1951.

    Google Scholar 

  19. C. Demetrescu and I. Finocchi. Smooth animation of algorithms in a declarative framework. Journal of Visual Languages and Computing, 12(3):253–281, 2001. The special issue devoted to selected papers from the 15th IEEE Symposium on Visual Languages (VL’99).

    Article  Google Scholar 

  20. C. Demetrescu, I. Finocchi, and G. Liotta. Visualizing algorithms over the web with the publication-driven approach. In Proceedings of the 4th Workshop on Algorithm Engineering (WAE’00). Springer Lecture Notes in Computer Science 1982, 2000.

    Google Scholar 

  21. M. Eisenstadt and M. Brayshaw. The transparent Prolog Machine: an execution model and graphical debugger for logic programming. Journal of Logic Programming, 5(4):1–66, 1988.

    Article  MathSciNet  Google Scholar 

  22. A. Fabri, G. J. Giezeman, L. Kettner, S. Schirra, and S. Schönherr. The CGAL kernel: a basis for geometric computation. In Proceedings of Applied Computational Geometry: Towards Geometric Engineering Proceedings (WACG’96), pages 191–202, 1996.

    Google Scholar 

  23. S. J. Fortune. A sweepline algorithm for Voronoi diagrams. In Proceedings of the 2nd ACM Symposium on Computational Geometry (SoCG’86), pages 313–322, 1986.

    Google Scholar 

  24. J. Haajanen, M. Pesonius, E. Sutinen, J. Tarhio, T. Teräsvirta, and P. Vanninen. Animation of user algorithms on the web. In Proceedings of the 13th IEEE International Symposium on Visual Languages (VL’97), pages 360–367, 1997.

    Google Scholar 

  25. M. Heath and J. Etheridge. Visualizing the performance of parallel programs. IEEE Software, 8(5):23–39, 1991.

    Article  Google Scholar 

  26. R. R. Henry, K. M. Whaley, and B. Forstall. The University of Washington Program Illustrator. In Proceedings of the ACM SIGPLAN’90 Conference on Programming Language Design and Implementation, pages 223–233, 1990.

    Google Scholar 

  27. C. A. Hipke and S. Schuierer. VEGA: a user centered approach to the distributed visualization of geometric algorithms. In Proceedings of the 7th International Conference in Central Europe on Computer Graphics, Visualization and Interactive Digital Media (WSCG’99), pages 110–117, 1999.

    Google Scholar 

  28. T. Kamada and S. Kawai. An algorithm for drawing general undirected graphs. Information Processing Letters, 31(1):7–15, April 1989.

    Article  MATH  MathSciNet  Google Scholar 

  29. K. Knowlton. Bell Telephone Laboratories Low-Level Linked List Language. 16-minute black and white film, Murray Hill, N.J., 1966.

    Google Scholar 

  30. J. B. Kruskal. On the shortest spanning subtree of a graph and the traveling salesman problem. Proceedings of the Amererican Mathematical Society, 7:48–50, 1956.

    Article  MathSciNet  Google Scholar 

  31. S. P. Lahtinen, E. Sutinen, and J. Tarhio. Automated animation of algorithms with Eliot. Journal of Visual Languages and Computing, 9:337–349, 1998.

    Article  Google Scholar 

  32. H. Lieberman and C. Fry. ZStep95: a reversible, animated source code stepper. In [2.44], pages 277–292.

    Google Scholar 

  33. A. Malony and D. Reed. Visualizing parallel computer system performance. In M. Simmons, R. Koskela, and I. Bucher, editors, Instrumentation for Future Parallel Computing Systems, pages 59–90. ACM Press, New York, 1989.

    Google Scholar 

  34. K. Mehlhorn and S. Näher. LEDA: A Platform of Combinatorial and Geometric Computing. Cambrige University Press, ISBN 0-521-56329-1, 1999.

    Google Scholar 

  35. D. R. Musser and A. Saini. STL Tutorial and Reference Guide. Addison Wesley, 1996.

    Google Scholar 

  36. B. A. Myers. Taxonomies of visual programming and program visualization. Journal of Visual Languages and Computing, 1:97–123, 1990.

    Article  MathSciNet  Google Scholar 

  37. B. A. Price, R. M. Baecker, and I. S. Small. A principled taxonomy of software visualization. Journal of Visual Languages and Computing, 4(3):211–266, 1993.

    Article  Google Scholar 

  38. G. C. Roman and K. C. Cox. A declarative approach to visualizing concurrent computations. Computer, 22(10):25–36, 1989.

    Article  Google Scholar 

  39. G. C. Roman and K. C. Cox. A taxonomy of program visualization systems. Computer, 26(12):11–24, 1993.

    Article  Google Scholar 

  40. G. C. Roman, K. C. Cox, C. D. Wilcox, and J. Y. Plun. PAVANE: a system for declarative visualization of concurrent computations. Journal of Visual Languages and Computing, 3:161–193, 1992.

    Article  Google Scholar 

  41. J. T. Stasko. The path-transition paradigm: a practical methodology for adding animation to program interfaces. Journal of Visual Languages and Computing, 1(3):213–236, 1990.

    Article  Google Scholar 

  42. J. T. Stasko. TANGO: A framework and system for algorithm animation. Computer, 23(9):27–39, 1990.

    Article  Google Scholar 

  43. J. T. Stasko. Animating algorithms with X-TANGO. SIGACT News, 23(2):67–71, 1992.

    Article  Google Scholar 

  44. J. T. Stasko, J. Domingue, M. H. Brown, and B. A. Price. Software Visualization: Programming as a Multimedia Experience. MIT Press, Cambridge, MA, 1997.

    Google Scholar 

  45. J. T. Stasko and E. Kraemer. A methodology for building application-specific visualizations of parallel programs. Journal of Parallel and Distributed Computing, 18:258–264, 1993.

    Article  Google Scholar 

  46. A. Tal and D. Dobkin. Visualization of geometric algorithms. IEEE Transactions on Visualization and Computer Graphics, 1(2):194–204, 1995.

    Article  Google Scholar 

  47. R. Tamassia, P. K. Agarwal, N. Amato, D. Z. Chen, D. Dobkin, S. Drysdale, S. Fortune, M. T. Goodrich, J. Hershberger, J. O'Rourke, F. P. Preparata, J.-R. Sack, S. Suri, I. Tollis, J. S. Vitter, and S. Whitesides. Strategic directions in computational geometry. ACM Computing Surveys, 28(4):591–606, 1996.

    Article  Google Scholar 

  48. R. E. Tarjan and J. van Leeuwen. Worst-case analysis of set union algorithms. Journal of the ACM, 31:245–281, 1984.

    Article  MATH  Google Scholar 

  49. B. Topol, J. Stasko, and V. Sunderam. Integrating visualization support into distributed computing systems. In Proceedings of the 15th International Conference on Distributed Computing Systems, pages 19–26, 1995.

    Google Scholar 

  50. Q. Zhao and J. Stasko. Visualizing the execution of threads-based parallel programs. Technical Report GIT-GVU-95/01, Graphics, Visualization, and Usability Center, Georgia Institute of Technology, Atlanta, GA, 1995.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Demetrescu, C., Finocchi, I., Italiano, G.F., Näher, S. (2002). Visualization in Algorithm Engineering: Tools and Techniques. In: Fleischer, R., Moret, B., Schmidt, E.M. (eds) Experimental Algorithmics. Lecture Notes in Computer Science, vol 2547. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36383-1_2

Download citation

  • DOI: https://doi.org/10.1007/3-540-36383-1_2

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-00346-5

  • Online ISBN: 978-3-540-36383-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics