Analysis of evolutionary algorithms: from computational complexity analysis to algorithm engineering

Analyzing the computational complexity of evolutionary algorithms has become an accepted and important branch in evolutionary computation theory. This is usually done by analyzing the (expected) optimization time measured by means of the number of function evaluations and describing its growth as a function of a measure for the size of the search space. Most often asymptotic results describing only the order of growth are derived. This corresponds to classical analysis of (randomized) algorithms in algorithmics. Recently, the emerging field of algorithm engineering has demonstrated that for practical purposes this analysis can be too coarse and more details of the algorithm and its implementation have to be taken into account in order to obtain results that are valid in practice. Using a very recent analysis of a simple evolutionary algorithm as starting point it is shown that the same holds for evolutionary algorithms. Considering this example it is demonstrated that counting function evaluations more precisely can lead to results contradicting actual run times. Motivated by these limitations of computational complexity analysis an algorithm engineering-like approach is presented.

[1]  Frank Neumann,et al.  Optimal Fixed and Adaptive Mutation Rates for the LeadingOnes Problem , 2010, PPSN.

[2]  Thomas Jansen,et al.  Design and Management of Complex Technical Processes and Systems by means of Computational Intelligence Methods On the Choice of the Mutation Probability for the ( 1 + 1 ) EA , 2006 .

[3]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[4]  Thomas Jansen,et al.  Analysis of an Asymmetric Mutation Operator , 2010, Evolutionary Computation.

[5]  Thomas Jansen,et al.  On the analysis of a dynamic evolutionary algorithm , 2006, J. Discrete Algorithms.

[6]  Frank Neumann,et al.  Bioinspired computation in combinatorial optimization: algorithms and their computational complexity , 2012, GECCO '12.

[7]  Ingo Wegener,et al.  Methods for the Analysis of Evolutionary Algorithms on Pseudo-Boolean Functions , 2003 .

[8]  Thomas Jansen,et al.  On the analysis of the (1+1) evolutionary algorithm , 2002, Theor. Comput. Sci..

[9]  R. K. Shyamasundar,et al.  Introduction to algorithms , 1996 .

[10]  Anne Auger,et al.  Theory of Randomized Search Heuristics: Foundations and Recent Developments , 2011, Theory of Randomized Search Heuristics.

[11]  Günter Rudolph,et al.  Computation time of evolutionary operators , 2000 .

[12]  Donald Ervin Knuth,et al.  The art of computer programming, , Volume III, 2nd Edition , 1998 .

[13]  Stephen R. Marsland,et al.  Convergence Properties of (μ + λ) Evolutionary Algorithms , 2011, AAAI.

[14]  Peter Sanders Algorithm Engineering - An Attempt at a Definition , 2009, Efficient Algorithms.

[15]  Thomas Bartz-Beielstein,et al.  Experimental Research in Evolutionary Computation - The New Experimentalism , 2010, Natural Computing Series.

[16]  Xin Yao,et al.  Time complexity of evolutionary algorithms for combinatorial optimization: A decade of results , 2007, Int. J. Autom. Comput..

[17]  Anne Auger,et al.  Theory of Randomized Search Heuristics , 2012, Algorithmica.