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. 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.
Dr Catherine C. McGeoch is the Beitzel Professor of Technology and Society in the Department of Computer Science at Amherst College. Professor McGeoch was co-founder (with David S. Johnson) in 1990 of the Discrete Mathematics and Theoretical Computer Science (DIMACS) Implementation Challenges. In 1999 she co-founded (with Michael Goodrich) the annual Workshop on Algorithm Engineering and Experimentation (ALENEX), sponsored by SIAM. She was Editor-in-Chief of the ACM Journal of Experimental Algorithmics from 2003 to 2008 and currently serves on the ACM Publications Board.
1. Introduction; 2. A plan of attack; 3. What to measure; 4. Tuning algorithms, tuning code; 5. The toolbox; 6. Creating analysis-friendly data; 7. Data analysis.