Computational experiments on algorithms can supplement theoretical analysis by showing what algorithms, implementations, and speed-up methods work best for specific machines or problems. This book guides the reader through the nuts and bolts of the major experimental questions: What should I measure? What inputs should I test? How do I analyze the data? To answer these questions the book draws on ideas from algorithm design and analysis, computer systems, and statistics and data analysis. The wide-ranging discussion includes a tutorial on system clocks and CPU timers, a survey of strategies for tuning algorithms and data structures, a cookbook of methods for generating random combinatorial inputs, and a demonstration of variance reduction techniques. Numerous case studies and examples show how to apply these concepts. All the necessary concepts in computer architecture and data analysis are covered so that the book can be used by anyone who has taken a course or two in data structures and algorithms. A companion website, AlgLab (www.cs.amherst.edu/alglab) contains downloadable files, programs, and tools for use in experimental projects.
Cited By
- Balcan M, Deblasio D, Dick T, Kingsford C, Sandholm T and Vitercik E (2024). How Much Data Is Sufficient to Learn High-Performing Algorithms?, Journal of the ACM, 71:5, (1-58), Online publication date: 31-Oct-2024.
- McGeoch C and Farré P (2023). Milestones on the Quantum Utility Highway: Quantum Annealing Case Study, ACM Transactions on Quantum Computing, 5:1, (1-30), Online publication date: 31-Mar-2024.
- Smith-Miles K and Muñoz M (2022). Instance Space Analysis for Algorithm Testing: Methodology and Software Tools, ACM Computing Surveys, 55:12, (1-31), Online publication date: 31-Dec-2024.
- Yan F, Venegas-Andraca S and Hirota K (2023). Toward implementing efficient image processing algorithms on quantum computers, Soft Computing - A Fusion of Foundations, Methodologies and Applications, 27:18, (13115-13127), Online publication date: 1-Sep-2023.
- Díaz Álvarez Y, Hidalgo Reyes M, Lagunes Barradas V, Pichardo Lagunas O and Martínez Seis B A Hybrid Methodology Based on CRISP-DM and TDSP for the Execution of Preprocessing Tasks in Mexican Environmental Laws Advances in Computational Intelligence, (68-82)
- Shindler M, Goodrich M, Gila O and Dillencourt M (2022). Beyond big O, Journal of Computing Sciences in Colleges, 37:10, (23-36), Online publication date: 1-Apr-2022.
- Axtmann M, Witt S, Ferizovic D and Sanders P (2022). Engineering In-place (Shared-memory) Sorting Algorithms, ACM Transactions on Parallel Computing, 9:1, (1-62), Online publication date: 31-Mar-2022.
- López-ibáñez M, Branke J and Paquete L (2021). Reproducibility in Evolutionary Computation, ACM Transactions on Evolutionary Learning and Optimization, 1:4, (1-21), Online publication date: 31-Dec-2022.
- Banijamali A, Kuvaja P, Oivo M and Jamshidi P Kuksa: Self-adaptive Microservices in Automotive Systems Product-Focused Software Process Improvement, (367-384)
- Jordan S, Chandak Y, Cohen D, Zhang M and Thomas P Evaluating the performance of reinforcement learning algorithms Proceedings of the 37th International Conference on Machine Learning, (4962-4973)
- Nehéz M and Bartalos P Complexity Aspects of Unstructured Sparse Graph Representation Proceedings of the 9th Balkan Conference on Informatics, (1-3)
- Eggensperger K, Lindauer M and Hutter F (2019). Pitfalls and best practices in algorithm configuration, Journal of Artificial Intelligence Research, 64:1, (861-893), Online publication date: 1-Jan-2019.
- Eberhardinger B, Ponsar H, Klumpp D and Reif W Measuring and Evaluating the Performance of Self-Organization Mechanisms Within Collective Adaptive Systems Leveraging Applications of Formal Methods, Verification and Validation. Distributed Systems, (202-220)
- Cohen J, Rodrigues L and Duarte E (2017). Parallel cut tree algorithms, Journal of Parallel and Distributed Computing, 109:C, (1-14), Online publication date: 1-Nov-2017.
- Nehéz M, Bernát D and Lelovský M Estimation of the domination number in sparse random graphs and applications Proceedings of the Fifth European Conference on the Engineering of Computer-Based Systems, (1-9)
- Bartz-Beielstein T and Zaefferer M (2017). Model-based methods for continuous and discrete global optimization, Applied Soft Computing, 55:C, (154-167), Online publication date: 1-Jun-2017.
- Fischer A and de Meer H (2016). Generating Virtual Network Embedding Problems With Guaranteed Solutions, IEEE Transactions on Network and Service Management, 13:3, (504-517), Online publication date: 1-Sep-2016.
- Brooks A, Krebs L and Paulsen B (2016). A Comparison of Sorting Times between Java 8 and Parallel Colt, ACM SIGSOFT Software Engineering Notes, 41:4, (1-5), Online publication date: 19-Aug-2016.
- Mniszewski S, Junghans C, Voter A, Perez D and Eidenbenz S (2015). TADSim, ACM Transactions on Modeling and Computer Simulation, 25:3, (1-26), Online publication date: 7-May-2015.
- Bentley J Selecting Data for Experiments Proceedings of the 13th International Symposium on Experimental Algorithms - Volume 8504, (1-9)
- Andrade C, Miyazawa F and Resende M Evolutionary algorithm for the k-interconnected multi-depot multi-traveling salesmen problem Proceedings of the 15th annual conference on Genetic and evolutionary computation, (463-470)
Index Terms
- A Guide to Experimental Algorithmics