Incremental Evaluation in Genetic Programming

Often GP evolves side effect free trees. These pure functional expressions can be evaluated in any order. In particular they can be interpreted from the genetic modification point outwards. Incremental evaluation exploits the fact that: in highly evolved children the semantic difference between child and parent falls with distance from the syntactic disruption (e.g. crossover point) and can reach zero before the whole child has been interpreted. If so, its fitness is identical to its parent (mum). Considerable savings in bloated binary tree GP runs are given by exploiting population convergence with existing GPquick data structures, leading to near linear O(gens) runtime. With multi-threading and SIMD AVX parallel computing a 16 core desktop can deliver the equivalent of 571 billion GP operations per second, 571 giga GPop/s. GP convergence is viewed via information theory as evolving a smooth landscape and software plasticity. Which gives rise to functional resilience to source code changes. On average a mixture of 100 +, -, × and (protected) ÷ tree nodes remove test case effectiveness at exposing changes and so fail to propagate crossover infected errors.

[1]  M. Rosenlicht Introduction to Analysis , 1970 .

[2]  J. Voas,et al.  Software Testability: The New Verification , 1995, IEEE Softw..

[3]  Riccardo Poli,et al.  Why Ants are Hard , 1998 .

[4]  Wes Masri,et al.  Coincidental correctness in the Defects4J benchmark , 2018, Softw. Test. Verification Reliab..

[5]  William B. Langdon,et al.  Software is Not Fragile , 2017 .

[6]  Myra B. Cohen,et al.  Learning Combinatorial Interaction Test Generation Strategies Using Hyperheuristic Search , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[7]  Mark Harman,et al.  Using Genetic Improvement and Code Transplants to Specialise a C++ Program to a Problem Class , 2014, EuroGP.

[8]  William B. Langdon,et al.  Long-term evolution of genetic programming populations , 2017, GECCO.

[9]  Mark Harman,et al.  Multi Objective Higher Order Mutation Testing with Genetic Programming , 2009, 2009 Testing: Academic and Industrial Conference - Practice and Research Techniques.

[10]  Riccardo Poli,et al.  Sub-machine-code genetic programming , 1999 .

[11]  William B. Langdon,et al.  Genetic Improvement of Genetic Programming , 2020, 2020 IEEE Congress on Evolutionary Computation (CEC).

[12]  Riccardo Poli,et al.  A Field Guide to Genetic Programming , 2008 .

[13]  Philippe Flajolet,et al.  An introduction to the analysis of algorithms , 1995 .

[14]  Afsoon Afzal,et al.  Crashing Simulated Planes is Cheap: Can Simulation Detect Robotics Bugs Early? , 2018, 2018 IEEE 11th International Conference on Software Testing, Verification and Validation (ICST).

[15]  Peter Ross,et al.  Dynamic Training Subset Selection for Supervised Learning in Genetic Programming , 1994, PPSN.

[16]  Mark Harman,et al.  A study of equivalent and stubborn mutation operators using human analysis of equivalence , 2014, ICSE.

[17]  Astro Teller,et al.  Automatically Choosing the Number of Fitness Cases: The Rational Allocation of Trials , 1997 .

[18]  Hideyuki Takagi,et al.  Interactive evolutionary computation: fusion of the capabilities of EC optimization and human evaluation , 2001, Proc. IEEE.

[19]  John A. Clark,et al.  Evolutionary Improvement of Programs , 2011, IEEE Transactions on Evolutionary Computation.

[20]  Philippe Preux,et al.  Correctness attraction: a study of stability of software behavior under runtime perturbation , 2016, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[21]  Vinicius Veloso de Melo,et al.  A MIMD Interpreter for Genetic Programming , 2020, EvoApplications.

[22]  John R. Koza Genetic Programming III - Darwinian Invention and Problem Solving , 1999, Evolutionary Computation.

[23]  William B. Langdon,et al.  Fast Generation of Big Random Binary Trees , 2020, 2001.04505.

[24]  W. Langdon,et al.  Continuous Long-Term Evolution of Genetic Programming , 2019, Artificial Life Conference Proceedings.

[25]  David M. Clark,et al.  Normalised Squeeziness and Failed Error Propagation , 2019, Inf. Process. Lett..

[26]  M. Nicholas,et al.  Sutherland: An extensible object-oriented software framework for evolutionary computation , 1998 .

[27]  Mark Harman,et al.  Specialising Software for Different Downstream Applications Using Genetic Improvement and Code Transplantation , 2018, IEEE Transactions on Software Engineering.

[28]  Martin C. Martin,et al.  Genetic programming in C++: implementation issues , 1994 .

[29]  Peter Rockett,et al.  The Use of an Analytic Quotient Operator in Genetic Programming , 2013, IEEE Transactions on Evolutionary Computation.

[30]  Mark Harman,et al.  Genetic Improvement of Software: A Comprehensive Survey , 2018, IEEE Transactions on Evolutionary Computation.

[31]  W. B. Langdon,et al.  Multi-threaded memory efficient crossover in C++ for generational genetic programming , 2020, ACM SIGEVOlution.

[32]  Lukás Sekanina,et al.  Evolutionary Approximation of Software for Embedded Systems: Median Function , 2015, GECCO.

[33]  Justyna Petke,et al.  Constraints: The Future of Combinatorial Interaction Testing , 2015, 2015 IEEE/ACM 8th International Workshop on Search-Based Software Testing.

[34]  Riccardo Poli,et al.  The evolution of size and shape , 1999 .

[35]  Simon Handley,et al.  On the use of a directed acyclic graph to represent a population of computer programs , 1994, Proceedings of the First IEEE Conference on Evolutionary Computation. IEEE World Congress on Computational Intelligence.

[36]  Herman Ehrenburg Improved directed acyclic graph evaluation and the combine operator in genetic programming , 1996 .

[37]  Riccardo Poli,et al.  Fitness Causes Bloat , 1998 .

[38]  William B. Langdon,et al.  Parallel GPQUICK , 2019, GECCO.

[39]  B. LangdonW. Multi-threaded memory efficient crossover in C++ for generational genetic programming , 2020 .

[40]  William B. Langdon,et al.  Large-Scale Bioinformatics Data Mining with Parallel Genetic Programming on Graphics Processing Units , 2013, Massively Parallel Evolutionary Computation on GPGPUs.

[41]  Astro Teller The internal reinforcement of evolving algorithms , 1999 .

[42]  William B. Langdon,et al.  A SIMD Interpreter for Genetic Programming on GPU Graphics Cards , 2007, EuroGP.

[43]  William B. Langdon,et al.  The Distribution of Reversible Functions is Normal , 2018, ArXiv.

[44]  Mark Harman,et al.  Ieee Transactions on Evolutionary Computation 1 , 2022 .

[45]  Lee Spector,et al.  Assessment of problem modality by differential performance of lexicase selection in genetic programming: a preliminary report , 2012, GECCO '12.

[46]  William B. Langdon,et al.  GP on SPMD parallel graphics hardware for mega Bioinformatics data mining , 2008, Soft Comput..

[47]  P. Parrend,et al.  Software is Not Fragile , 2016 .

[48]  W. B. Langdon,et al.  Genetic Programming and Data Structures , 1998, The Springer International Series in Engineering and Computer Science.

[49]  William B. Langdon,et al.  Evolving Receiver Operating Characteristics for Data Fusion , 2001, EuroGP.

[50]  L. Altenberg The evolution of evolvability in genetic programming , 1994 .