Algorithm Engineering - An Attempt at a Definition

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.

[1]  Kurt Mehlhorn,et al.  On the embedding phase of the Hopcroft and Tarjan planarity testing algorithm , 2005, Algorithmica.

[2]  Rajeev Raman,et al.  Algorithms — ESA 2002 , 2002, Lecture Notes in Computer Science.

[3]  H. Hornich Logik der Forschung , 1936 .

[4]  Rudolf Fleischer,et al.  Experimental Algorithmics, From Algorithm Design to Robust and Efficient Software [Dagstuhl seminar, September 2000] , 2002 .

[5]  Dominik Schultes External Memory Minimum Spanning Trees , 2003 .

[6]  Michael Jünger,et al.  A note on computing a maximal planar subgraph using PQ-trees , 1998, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[7]  Gerth Stølting Brodal,et al.  Engineering a cache-oblivious sorting algorithm , 2008, JEAL.

[8]  Siavash Vahdati Daneshmand,et al.  Extending Reduction Techniques for the Steiner Tree Problem , 2002, ESA.

[9]  Anne-Marie Kermarrec,et al.  Proceedings of the 13th European international conference on Parallel Processing , 2007 .

[10]  Andrew V. Goldberg,et al.  On Implementing Push-Relabel Method for the Maximum Flow Problem , 1995, IPCO.

[11]  George Karypis,et al.  Multilevel k-way Partitioning Scheme for Irregular Graphs , 1998, J. Parallel Distributed Comput..

[12]  Kurt Mehlhorn,et al.  The LEDA Platform of Combinatorial and Geometric Computing , 1997, ICALP.

[13]  Dieter Gollmann,et al.  Algorithm engineering for public key algorithms , 1989, IEEE J. Sel. Areas Commun..

[14]  Peter Sanders,et al.  Asynchronous parallel disk sorting , 2003, SPAA '03.

[15]  Peter Sanders,et al.  Engineering an External Memory Minimum Spanning Tree Algorithm , 2004, IFIP TCS.

[16]  Stefano Leonardi,et al.  Algorithms - ESA 2005, 13th Annual European Symposium, Palma de Mallorca, Spain, October 3-6, 2005, Proceedings , 2005, ESA.

[17]  Andrzej Pelc,et al.  Deterministic Rendezvous in Graphs , 2003 .

[18]  Lars Arge,et al.  On external-memory MST, SSSP and multi-way planar graph separation , 2004, J. Algorithms.

[19]  Thomas Beth,et al.  Applied Algebra, Algebraic Algorithms and Error-Correcting Codes, 4th International Conference, AAECC-4, Karlsruhe, FRG, September 23-26, 1986, Proceedings , 1988, AAECC.

[20]  Magnús M. Halldórsson,et al.  Algorithm Theory - SWAT 2000 , 2000 .

[21]  Shang-Hua Teng,et al.  Smoothed analysis of algorithms: why the simplex algorithm usually takes polynomial time , 2001, STOC '01.

[22]  Alok Aggarwal,et al.  The input/output complexity of sorting and related problems , 1988, CACM.

[23]  René Beier,et al.  Typical properties of winners and losers in discrete optimization , 2004, STOC '04.

[24]  Peter Sanders Fast Priority Queues for Cached Memory , 1999, ALENEX.

[25]  Robert E. Tarjan,et al.  Efficiency of a Good But Not Linear Set Union Algorithm , 1972, JACM.

[26]  Giuseppe F. Italiano,et al.  Algorithm engineering, Algorithmics Column , 2003, Bull. EATCS.

[27]  Sebastian Winkel,et al.  Super Scalar Sample Sort , 2004, ESA.

[28]  S. VitterJ.,et al.  Algorithms for parallel memory, I , 1994 .

[29]  Bernard M. E. Moret,et al.  DIMACS Series in Discrete Mathematics and Theoretical Computer Science Towards a Discipline of Experimental Algorithmics , 2022 .

[30]  Alfred V. Aho,et al.  Data Structures and Algorithms , 1983 .

[31]  Kurt Mehlhorn,et al.  Scanning Multiple Sequences via Cache Memory , 2002, Algorithmica.

[32]  Ulrich Meyer,et al.  Algorithms for Memory Hierarchies , 2003, Lecture Notes in Computer Science.

[33]  Susanne Albers,et al.  Algorithms – ESA 2004 , 2004, Lecture Notes in Computer Science.

[34]  Thomas Beth Introduction: Applicable algebra, error-correcting codes, combinatorics and computer algebra , 1986, AAECC.

[35]  Jeffrey Scott Vitter,et al.  Algorithms for parallel memory, I: Two-level memories , 2005, Algorithmica.

[36]  Kurt Mehlhorn,et al.  Traveling Salesman-Based Curve Reconstruction in Polynomial Time , 2001, SIAM J. Comput..

[37]  Gerth Stølting Brodal,et al.  Engineering a Cache-Oblivious Sorting Algorith , 2004, ALENEX/ANALC.

[38]  Paul R. Cohen,et al.  How to Find Big-Oh in Your Data Set (and How Not to) , 1997, IDA.

[39]  Ulrich Meyer,et al.  A computational study of external-memory BFS algorithms , 2006, SODA '06.

[40]  Jesper Larsson Träff,et al.  A Practical Minimum Spanning Tree Algorithm Using the Cycle Property , 2003, ESA.

[41]  Peter Sanders,et al.  Engineering Route Planning Algorithms , 2009, Algorithmics of Large and Complex Networks.

[42]  D. Mccormick Sequence the Human Genome , 1986, Bio/Technology.

[43]  Alfred V. Aho,et al.  Emerging opportunities for theoretical computer science , 1997, SIGACT News.

[44]  Kurt Mehlhorn,et al.  Effective Computational Geometry for Curves and Surfaces , 2005 .

[45]  Jop F. Sibeyn External Connected Components , 2004, SWAT.

[46]  Kurt Mehlhorn Data Structures And Algorithms , 2011 .

[47]  William J. Cook,et al.  Implementing the Dantzig-Fulkerson-Johnson algorithm for large traveling salesman problems , 2003, Math. Program..

[48]  John von Neumann,et al.  First draft of a report on the EDVAC , 1993, IEEE Annals of the History of Computing.

[49]  Petra Mutzel,et al.  A Linear Time Implementation of SPQR-Trees , 2000, GD.

[50]  David J. Hand,et al.  Advances in intelligent data analysis , 2000 .

[51]  Shu Lin,et al.  Applied Algebra, Algebraic Algorithms and Error-Correcting Codes , 1999, Lecture Notes in Computer Science.

[52]  Charles E. Leiserson,et al.  Cache-Oblivious Algorithms , 2003, CIAC.

[53]  Peter Sanders,et al.  STXXL: standard template library for XXL data sets , 2008, Softw. Pract. Exp..

[54]  Robert E. Tarjan,et al.  Efficient Planarity Testing , 1974, JACM.

[55]  Peter Sanders,et al.  Fast Routing in Road Networks with Transit Nodes , 2007, Science.

[56]  Torben Hagerup,et al.  Algorithm Theory - SWAT 2004 , 2004, Lecture Notes in Computer Science.

[57]  Bernard M. E. Moret,et al.  How to present a paper on experimental work with algorithms , 1999, SIGA.

[58]  Ingo Wegener,et al.  Simulated Annealing Beats Metropolis in Combinatorial Optimization , 2005, ICALP.

[59]  Peter Sanders,et al.  Highway Hierarchies Hasten Exact Shortest Path Queries , 2005, ESA.

[60]  Peter Sanders,et al.  Fast Concurrent Access to Parallel Disks , 2000, SODA '00.

[61]  Peter Sanders,et al.  MCSTL: the multi-core standard template library , 2007, PPOPP.

[62]  Robert E. Tarjan,et al.  Dividing a Graph into Triconnected Components , 1973, SIAM J. Comput..

[63]  Kurt Mehlhorn,et al.  Exact geometric computation in LEDA , 1995, SCG '95.

[64]  Roman Dementiev,et al.  Algorithm engineering for large data sets , 2007 .

[65]  Giuseppe Cattaneo,et al.  Algorithm engineering , 1999, CSUR.

[66]  Jeffery R. Westbrook,et al.  A Functional Approach to External Graph Algorithms , 1998, ESA.

[67]  Michael Jünger,et al.  Journal of Graph Algorithms and Applications 2-layer Straightline Crossing Minimization: Performance of Exact and Heuristic Algorithms , 2022 .

[68]  Henry D. Shapiro,et al.  An Empirical Assessment of Algorithms for Constructing a Minimum Spanning Tree , 1992, Computational Support for Discrete Mathematics.

[69]  Kurt Mehlhorn,et al.  Implementation of O(nmlogn) weighted matchings in general graphs: the power of data structures , 2002, JEAL.

[70]  David S. Johnson,et al.  A theoretician's guide to the experimental analysis of algorithms , 1999, Data Structures, Near Neighbor Searches, and Methodology.

[71]  Robin Milner,et al.  On Observing Nondeterminism and Concurrency , 1980, ICALP.

[72]  Andrew V. Goldberg,et al.  Beyond the flow decomposition barrier , 1998, JACM.

[73]  Peter Sanders Algorithm Engineering , 2010, Informatik-Spektrum.