Skip to main content

Algorithm Engineering – An Attempt at a Definition

  • Chapter
Efficient Algorithms

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5760))

Abstract

This paper defines algorithm engineering as a general methodology for algorithmic research. The main process in this methodology is a cycle consisting of algorithm design, analysis, implementation and experimental evaluation that resembles Popper’s scientific method. Important additional issues are realistic models, algorithm libraries, benchmarks with real-world problem instances, and a strong coupling to applications. Algorithm theory with its process of subsequent modelling, design, and analysis is not a competing approach to algorithmics but an important ingredient of algorithm engineering.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Venter, J.C., Adams, M.D., Mayers, E.W., et al.: The sequence of the human genome. Science 291(5507), 1304–1351 (2001)

    Article  Google Scholar 

  2. Popper, K.R.: Logik der Forschung. Springer (1934) English Translation: The Logic of Scientific Discovery, Hutchinson (1959)

    Google Scholar 

  3. Dementiev, R., Sanders, P., Schultes, D., Sibeyn, J.: Engineering an external memory minimum spanning tree algorithm. In: IFIP TCS, Toulouse (2004)

    Google Scholar 

  4. Fleischer, R., Moret, B., Schmidt, E.M.: Experimental Algorithmics. LNCS, vol. 2547. Springer, Heidelberg (2002)

    Book  MATH  Google Scholar 

  5. Aho, A.V., Johnson, D.S., Karp, R.M., Kosaraju, S.R., McGeoch, C.C., Papadimitriou, C.H., Pevzner, P.: Emerging opportunities for theoretical computer science. SIGACT News 28(3), 65–74 (1997)

    Article  Google Scholar 

  6. Moret, B.M.E.: Towards a discipline of experimental algorithmics. In: 5th DIMACS Challenge. DIMACS Monograph Series (2000) (to appear)

    Google Scholar 

  7. McGeoch, C.C., Precup, D., Cohen, P.R.: How to find big-oh in your data set (and how not to). In: Liu, X., Cohen, P.R., Berthold, M.R. (eds.) IDA 1997. LNCS, vol. 1280, pp. 41–52. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  8. McGeoch, C., Moret, B.M.E.: How to present a paper on experimental work with algorithms. SIGACT News 30(4), 85–90 (1999)

    Article  Google Scholar 

  9. Johnson, D.S.: A theoretician’s guide to the experimental analysis of algorithms. In: Goldwasser, M., Johnson, D.S., McGeoch, C.C. (eds.) Proceedings of the 5th and 6th DIMACS Implementation Challenges. American Mathematical Society (2002)

    Google Scholar 

  10. Beth, T., Clausen, M. (eds.): AAECC 1986. LNCS, vol. 307. Springer, Heidelberg (1988)

    MATH  Google Scholar 

  11. Beth, T., Gollman, D.: Algorithm engineering for public key algorithms. IEEE Journal on Selected Areas in Communications 7(4), 458–466 (1989)

    Article  Google Scholar 

  12. Demetrescu, C., Finocchi, I., Italiano, G.F.: Algorithm engineering, algorithmics column. Bulletin of the EATCS 79, 48–63 (2003)

    Google Scholar 

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

    Article  MathSciNet  Google Scholar 

  14. Vitter, J.S., Shriver, E.A.M.: Algorithms for parallel memory, I: Two level memories. Algorithmica 12(2/3), 110–147 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  15. Meyer, U., Sanders, P., Sibeyn, J. (eds.): Algorithms for Memory Hierarchies. LNCS, vol. 2625. Springer, Heidelberg (2003)

    MATH  Google Scholar 

  16. von Neumann, J.: First draft of a report on the EDVAC. Technical report, University of Pennsylvania (1945)

    Google Scholar 

  17. Mehlhorn, K., Sanders, P.: Scanning multiple sequences via cache memory. Algorithmica 35(1), 75–93 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  18. Frigo, M., Leiserson, C.E., Prokop, H., Ramachandran, S.: Cache-oblivious algorithms. In: 40th Symposium on Foundations of Computer Science, pp. 285–298 (1999)

    Google Scholar 

  19. Goldberg, A.V., Rao, S.: Beyond the flow decomposition barrier. Journal of the ACM 45(5), 1–15 (1998)

    Article  MathSciNet  MATH  Google Scholar 

  20. Cherkassky, B.V., Goldberg, A.V.: On implementing push-relabel method for the maximum flow problem. In: Balas, E., Clausen, J. (eds.) IPCO 1995. LNCS, vol. 920. Springer, Heidelberg (1995)

    Chapter  Google Scholar 

  21. Mehlhorn, K., Näher, S.: The LEDA Platform of Combinatorial and Geometric Computing. Cambridge University Press, Cambridge (1999)

    MATH  Google Scholar 

  22. Abello, J., Buchsbaum, A., Westbrook, J.: A functional approach to external graph algorithms. Algorithmica 32(3), 437–458 (2002)

    Article  MathSciNet  MATH  Google Scholar 

  23. Arge, L., Brodal, G., Toma, L.: On external memory MST, SSSP and multi-way planar graph separation. In: Halldórsson, M.M. (ed.) SWAT 2000. LNCS, vol. 1851, pp. 433–447. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  24. Dementiev, R., Kettner, L., Sanders, P.: STXXL: Standard Template Library for XXL data sets. Software Practice & Experience 38(6), 589–637 (2008)

    Article  Google Scholar 

  25. Tarjan, R.E.: Efficiency of a good but not linear set merging algorithm. Journal of the ACM 22, 215–225 (1975)

    Article  MATH  Google Scholar 

  26. Wegener, I.: Simulated annealing beats metropolis in combinatorial optimization. In: Caires, L., Italiano, G.F., Monteiro, L., Palamidessi, C., Yung, M. (eds.) ICALP 2005. LNCS, vol. 3580, pp. 589–601. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  27. Karypis, G., Kumar, V.: Multilevel k-way partitioning scheme for irregular graph. J. Parallel Distrib. Comput. 48(1) (1998)

    Google Scholar 

  28. Spielman, D., Teng, S.H.: Smoothed analysis of algorithms: why the simplex algorithm usually takes polynomial time. In: 33rd ACM Symposium on Theory of Computing, pp. 296–305 (2001)

    Google Scholar 

  29. Beier, R., Vöcking, B.: Typical properties of winners and losers in discrete optimization. In: 36th ACM Symposium on the Theory of Computing, pp. 343–352 (2004)

    Google Scholar 

  30. Sanders, P.: Fast priority queues for cached memory. ACM Journal of Experimental Algorithmics 5 (2000)

    Google Scholar 

  31. Sibeyn, J.F.: External connected components. In: Hagerup, T., Katajainen, J. (eds.) SWAT 2004. LNCS, vol. 3111, pp. 468–479. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  32. Mehlhorn, K., Schäfer, G.: Implementation of weighted matchings in general graphs: The power of data structure. ACM Journal of Experimental Algorithmics 7 (2002)

    Google Scholar 

  33. Burnikel, C., Könemann, J., Mehlhorn, K., Näher, S., Schirra, S., Uhrig, C.: Exact geometric computation in leda. In: SCG 1995: 11th annual symposium on Computational geometry, pp. 418–419. ACM, New York (1995)

    Google Scholar 

  34. Berberich, E., Eigenwillig, A., Hemmer, M., Hert, S., Kettner, L., Mehlhorn, K., Reichel, J., Schmitt, S., Schömer, E., Wolpert, N.: EXACUS: Efficient and exact algorithms for curves and surfaces. In: Brodal, G.S., Leonardi, S. (eds.) ESA 2005. LNCS, vol. 3669, pp. 155–166. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  35. Bast, H., Funke, S., Sanders, P., Schultes, D.: Fast routing in road networks with transit nodes. Science 316(5824), 566 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  36. Sanders, P., Winkel, S.: Super scalar sample sort. In: Albers, S., Radzik, T. (eds.) ESA 2004. LNCS, vol. 3221, pp. 784–796. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  37. Brodal, G.S., Fagerberg, R., Vinther, K.: Engineering a cache-oblivious sorting algorithm. In: 6th Workshop on Algorithm Engineering and Experiments (2004)

    Google Scholar 

  38. Hopcroft, J., Tarjan, R.E.: Efficient planarity testing. J. of the ACM 21(4), 549–568 (1974)

    Article  MathSciNet  MATH  Google Scholar 

  39. Mehlhorn, K.: Data Structures and Algorithms. EATCS Monographs on Theoretical CS, vol. I — Sorting and Searching. Springer, Heidelberg (1984)

    MATH  Google Scholar 

  40. Mehlhorn, K., Mutzel, P.: On the embedding phase of the Hopcroft and Tarjan planarity testing algorithm. Algorithmica 16(2), 233–242 (1996)

    Article  MathSciNet  MATH  Google Scholar 

  41. Hopcroft, J.E., Tarjan, R.E.: Dividing a graph into triconnected components. SIAM J. Comput. 2(3), 135–158 (1973)

    Article  MathSciNet  MATH  Google Scholar 

  42. Gutwenger, C., Mutzel, P.: A linear time implementation of SPQR-trees. In: Marks, J. (ed.) GD 2000. LNCS, vol. 1984, pp. 77–90. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  43. Jünger, M., Leipert, S., Mutzel, P.: A note on computing a maximal planar subgraph using PQ-trees. IEEE Transactions on Computer-Aided Design 17(7), 609–612 (1998)

    Article  Google Scholar 

  44. Schultes, D.: External memory minimum spanning trees. Bachelor thesis, Max-Planck-Institut f. Informatik and Saarland University (2003), http://algo2.iti.uni-karlsruhe.de/schultes/emmst/

  45. Dementiev, R.: Algorithm Engineering for Large Data Sets. PhD thesis, Saarland University (2006)

    Google Scholar 

  46. Jünger, M., Mutzel, P.: 2-layer straightline crossing minimization: Performance of exact and heuristic algorithms. Journal of Graph Algorithms and Applications (JGAA) 1(1), 1–25 (1997)

    Article  MathSciNet  MATH  Google Scholar 

  47. Althaus, E., Mehlhorn, K.: Traveling salesman-based curve reconstruction in polynomial time. SIAM Journal on Computing 31(1), 27–66 (2002)

    Article  MathSciNet  MATH  Google Scholar 

  48. Sanders, P., Egner, S., Korst, J.: Fast concurrent access to parallel disks. In: 11th ACM-SIAM Symposium on Discrete Algorithms, pp. 849–858 (2000)

    Google Scholar 

  49. Moret, B.M.E., Shapiro, H.D.: An empirical assessment of algorithms for constructing a minimum spanning tree. DIMACS Series in Discrete Mathematics and Theoretical Computer Science 15, 99–117 (1994)

    MathSciNet  MATH  Google Scholar 

  50. Dementiev, R., Sanders, P.: Asynchronous parallel disk sorting. In: 15th ACM Symposium on Parallelism in Algorithms and Architectures, San Diego, pp. 138–148 (2003)

    Google Scholar 

  51. Katriel, I., Sanders, P., Träff, J.L.: A practical minimum spanning tree algorithm using the cycle property. In: Di Battista, G., Zwick, U. (eds.) ESA 2003. LNCS, vol. 2832, pp. 679–690. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  52. Singler, J., Sanders, P., Putze, F.: MCSTL: The multi-core standard template library. In: Kermarrec, A.-M., Bougé, L., Priol, T. (eds.) Euro-Par 2007. LNCS, vol. 4641, pp. 682–694. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  53. Applegate, D., Bixby, R., Chvátal, V., Cook, W.: Implementing the Dantzig-Fulkerson-Johnson algorithm for large traveling salesman problems. Math. Programming 97(1-2), 91–153 (2003)

    MathSciNet  MATH  Google Scholar 

  54. Polzin, T., Daneshmand, S.V.: Extending reduction techniques for the Steiner tree problem. In: Möhring, R.H., Raman, R. (eds.) ESA 2002. LNCS, vol. 2461, pp. 795–807. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  55. Sanders, P., Schultes, D.: Highway hierarchies hasten exact shortest path queries. In: Brodal, G.S., Leonardi, S. (eds.) ESA 2005. LNCS, vol. 3669, pp. 568–579. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  56. Delling, D., Sanders, P., Schultes, D., Wagner, D.: Engineering route planning algorithms (2008) (submitted for publication), http://i11www.ira.uka.de/extra/publications/dssw-erpa-09.pdf

  57. Ajwani, D., Dementiev, R., Meyer, U.: A computational study of external-memory BFS algorithms. In: ACM-SIAM Symposium on Discrete Algorithms, pp. 601–610 (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Sanders, P. (2009). Algorithm Engineering – An Attempt at a Definition. In: Albers, S., Alt, H., Näher, S. (eds) Efficient Algorithms. Lecture Notes in Computer Science, vol 5760. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-03456-5_22

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-03456-5_22

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-03455-8

  • Online ISBN: 978-3-642-03456-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics