Using Finite Experiments to Study Asymptotic Performance

In the analysis of algorithms we are interested in obtaining closed form expressions for algorithmic complexity, or at least asymptotic expressions in O(ċ)-notation. It is often possible to use experimental results to make significant progress towards this goal, although there are fundamental reasons why we cannot guarantee to obtain such expressions from experiments alone. This paper investigates two approaches relating to problems of developing theoretical analyses based on experimental data.We first consider the scientific method, which views experimentation as part of a cycle alternating with theoretical analysis. This approach has been very successful in the natural sciences. Besides supplying preliminary ideas for theoretical analysis, experiments can test falsifiable hypotheses obtained by incomplete theoretical analysis. Asymptotic behavior can also sometimes be deduced from stronger hypotheses which have been induced from experiments. As long as complete mathematical analyses remains elusive, well tested hypotheses may have to take their place. Several examples are given where average complexity can be tested experimentally so that support for hypotheses is quite strong.A second question is how to approach systematically the problem of inferring asymptotic bounds from experimental data. Five heuristic rules for "empirical curve bounding" are presented, ogether with analytical results guaranteeing correctness for certain families of functions. Experimental evaluations of the correctness and tightness of bounds obtained by the rules for several constructed functions and real datasets are described.

[1]  K. Popper,et al.  Logik der Forschung , 1935 .

[2]  J. L. Burchnall,et al.  Introduction to the theory of equations , 1939 .

[3]  L. Griffiths Introduction to the Theory of Equations , 1949, Nature.

[4]  Donald L. Shell,et al.  A high-speed sorting procedure , 1959, CACM.

[5]  A. Messiah Quantum Mechanics , 1961 .

[6]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[7]  Donald E. Knuth,et al.  Sorting and Searching , 1973 .

[8]  M. V. Wilkes,et al.  The Art of Computer Programming, Volume 3, Sorting and Searching , 1974 .

[9]  J. Linnett,et al.  Quantum mechanics , 1975, Nature.

[10]  S. Addelman Statistics for experimenters , 1978 .

[11]  C. cohen-tannoudji,et al.  Quantum Mechanics: Volume II , 1978 .

[12]  Peter J. Denning,et al.  ACM President's Letter: What is experimental computer science? , 1980, CACM.

[13]  Peter J. Denning,et al.  ACM president's letter: performance analysis: experimental computer science as its best , 1981, CACM.

[14]  John M. Chambers,et al.  Graphical Methods for Data Analysis , 1983 .

[15]  Frank Thomson Leighton,et al.  Some unexpected expected behavior results for bin packing , 1984, STOC '84.

[16]  Beat Kleiner,et al.  Graphical Methods for Data Analysis , 1983 .

[17]  M. Braga,et al.  Exploratory Data Analysis , 2018, Encyclopedia of Social Network Analysis and Mining. 2nd Ed..

[18]  Allan R. Wilks,et al.  The new S language: a programming environment for data analysis and graphics , 1988 .

[19]  Jeffrey D. Smith,et al.  Design and Analysis of Algorithms , 2009, Lecture Notes in Computer Science.

[20]  Jeffery L. Kennington,et al.  Minimal spanning trees: an empirical investigation of parallel algorithms , 1989, Parallel Comput..

[21]  Mik Wisniewski,et al.  Applied Regression Analysis: A Research Tool , 1990 .

[22]  Casimir Kulikowski,et al.  Domain-independent scientific function finding , 1990 .

[23]  E T. Leighton,et al.  Introduction to parallel algorithms and architectures , 1991 .

[24]  F. Leighton,et al.  Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes , 1991 .

[25]  Mark Allen Weiss Empirical Study of the Expected Running Time of Shellsort , 1991, Comput. J..

[26]  Catherine C. McGeoch Analyzing algorithms by simulation: variance reduction techniques and simulation speedups , 1992, CSUR.

[27]  Doug Baldwin,et al.  Using scientific experiments in early computer science laboratories , 1992, SIGCSE '92.

[28]  John N. Hooker,et al.  Needed: An Empirical Science of Algorithms , 1994, Oper. Res..

[29]  Bernard Widrow,et al.  The basic ideas in neural networks , 1994, CACM.

[30]  George Karypis,et al.  Introduction to Parallel Computing , 1994 .

[31]  Eli Upfal,et al.  Balanced allocations (extended abstract) , 1994, STOC '94.

[32]  CORPORATE Computer Science and Telecommunications Board,et al.  Academic careers for experimental computer scientists and engineers , 1994, CACM.

[33]  Robert L. Glass,et al.  Science and substance: a challenge to software engineers , 1994, IEEE Software.

[34]  Telecommunications Board,et al.  Academic Careers for Experimental Computer Scientists and Engineers , 1994 .

[35]  S.J.J. Smith,et al.  Empirical Methods for Artificial Intelligence , 1995 .

[36]  Paul Lukowicz,et al.  Experimental evaluation in computer science: A quantitative study , 1995, J. Syst. Softw..

[37]  Robert Sedgewick,et al.  Analysis of Shellsort and Related Algorithms , 1996, ESA.

[38]  Catherine C. McGeoch Feature Article - Toward an Experimental Method for Algorithm Simulation , 1996, INFORMS J. Comput..

[39]  Rolf Niedermeier,et al.  Towards optimal locality in mesh-indexings , 1997, Discret. Appl. Math..

[40]  Peter Sanders Lastverteilungsalgorithmen für parallele Tiefensuche , 1997 .

[41]  Takuji Nishimura,et al.  Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator , 1998, TOMC.

[42]  W. Tichy Should Computer Scientists Experiment More? Computer Scientists and Practitioners Defend Their Lack of Experimentation with a Wide Range of Arguments. Some Arguments Suggest That , 1998 .

[43]  Walter F. Tichy,et al.  Should Computer Scientists Experiment More? , 1998, Computer.

[44]  Donald E. Knuth,et al.  The art of computer programming, volume 3: (2nd ed.) sorting and searching , 1998 .

[45]  C. Leiserson,et al.  Scheduling multithreaded computations by work stealing , 1999, Proceedings 35th Annual Symposium on Foundations of Computer Science.

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

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

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

[49]  Tao Jiang,et al.  Average-Case Complexity of Shellsort , 1999, ICALP.

[50]  Eli Upfal,et al.  Balanced Allocations , 1999, SIAM J. Comput..

[51]  P. Denning What is Experimental Computer Science ? , 2000 .

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

[53]  Berthold Vöcking,et al.  Balanced allocations: the heavily loaded case , 2000, STOC '00.

[54]  Arnold Neumaier,et al.  Introduction to Numerical Analysis , 2001 .

[55]  William H. Press,et al.  Numerical recipes in C , 2002 .