Efficient tree traversal to reduce code growth in tree-based genetic programming

Abstract Genetic programming is an evolutionary optimization method following the principle of program induction. Genetic programming often uses variable-length tree structures for representing candidate solutions. A serious problem with variable-length representations is code growth: during evolution these tree structures tend to grow in size without a corresponding increase in fitness. Many anti-bloat methods focus solely on size reduction and forget about fitness improvement, which is rather strange when using an “optimization” method. This paper reports the application of a semantically driven local search operator to control code growth and improve best fitness. Five examples, two theoretical benchmark applications and three real-life test problems are used to illustrate the obtained size reduction and fitness improvement. Performance of the local search operator is also compared with various other anti-bloat methods such as size and depth delimiters, an expression simplifier, linear and adaptive parsimony pressure, automatically defined functions and Tarpeian bloat control.

[1]  J. K. Kinnear,et al.  Advances in Genetic Programming , 1994 .

[2]  Peter Nordin,et al.  Genetic programming - An Introduction: On the Automatic Evolution of Computer Programs and Its Applications , 1998 .

[3]  William B. Langdon,et al.  Size fair and homologous tree genetic programming crossovers , 1999 .

[4]  Ken Sharman,et al.  Evolving Recurrent Neural Network Architectures by Genetic Programming , 1996 .

[5]  Nicholas S. Flann,et al.  Improving the accuracy and robustness of genetic programming through expression simplification , 1996 .

[6]  David G. Stork,et al.  Pattern Classification , 1973 .

[7]  Anikó Ekárt,et al.  Selection Based on the Pareto Nondomination Criterion for Controlling Code Growth in Genetic Programming , 2001, Genetic Programming and Evolvable Machines.

[8]  Riccardo Poli,et al.  Foundations of Genetic Programming , 1999, Springer Berlin Heidelberg.

[9]  R. K. Ursem Multi-objective Optimization using Evolutionary Algorithms , 2009 .

[10]  Justinian P. Rosca,et al.  Hierarchical Self-Organization in Genetic programming , 1994, ICML.

[11]  J. K. Kinnear,et al.  Alternatives in automatic function definition: a comparison of performance , 1994 .

[12]  William B. Langdon,et al.  Seeding Genetic Programming Populations , 2000, EuroGP.

[13]  Sean Luke,et al.  Fighting Bloat with Nonparametric Parsimony Pressure , 2002, PPSN.

[14]  John R. Koza,et al.  Genetic programming - on the programming of computers by means of natural selection , 1993, Complex adaptive systems.

[15]  J. Pollack,et al.  Coevolving High-Level Representations , 1993 .

[16]  John R. Koza,et al.  Genetic programming 2 - automatic discovery of reusable programs , 1994, Complex Adaptive Systems.

[17]  Byoung-Tak Zhang,et al.  Balancing Accuracy and Parsimony in Genetic Programming , 1995, Evolutionary Computation.

[18]  Roland Olsson,et al.  Inductive Functional Programming Using Incremental Program Transformation , 1995, Artif. Intell..

[19]  Kenneth E. Kinnear,et al.  Generality and Difficulty in Genetic Programming: Evolving a Sort , 1993, ICGA.

[20]  Catherine Blake,et al.  UCI Repository of machine learning databases , 1998 .

[21]  Edwin D. de Jong,et al.  Multi-Objective Methods for Tree Size Control , 2003, Genetic Programming and Evolvable Machines.

[22]  Terence Soule,et al.  Effects of Code Growth and Parsimony Pressure on Populations in Genetic Programming , 1998, Evolutionary Computation.

[23]  Tobias Blickle,et al.  Evolving Compact Solutions in Genetic Programming: A Case Study , 1996, PPSN.

[24]  Sean Luke,et al.  Modification Point Depth and Genome Growth in Genetic Programming , 2003, Evolutionary Computation.

[25]  Anikó Ekárt CONTROLLING CODE GROWTH IN GENETIC PROGRAMMING BY MUTATION , 1999 .

[26]  Peter Nordin,et al.  Introns in Nature and in Simulated Structure Evolution , 1997, BCEC.

[27]  John R. Koza,et al.  Genetic programming 1997 : proceedings of the Second Annual Conference, July 13-16, 1997, Stanford University , 1997 .

[28]  Hitoshi Iba,et al.  Genetic programming using a minimum description length principle , 1994 .

[29]  Riccardo Poli,et al.  A Simple but Theoretically-Motivated Method to Control Bloat in Genetic Programming , 2003, EuroGP.

[30]  Byoung-Tak Zhang,et al.  Genetic Programming with Active Data Selection , 1998, SEAL.

[31]  William B. Langdon,et al.  Some Considerations on the Reason for Bloat , 2002, Genetic Programming and Evolvable Machines.

[32]  Stergios B. Fotopoulos,et al.  Introduction to Modern Nonparametric Statistics , 2004, Technometrics.

[33]  Justinian Rosca,et al.  Generality versus size in genetic programming , 1996 .

[34]  Krzysztof Krawiec,et al.  Genetic Programming with Local Improvement for Visual Learning from Examples , 2001, CAIP.

[35]  Alden H. Wright,et al.  Allele Diffusion in Linear Genetic Programming and Variable-Length Genetic Algorithms with Subtree Crossover , 2002, EuroGP.

[36]  T. Bersano-Begey,et al.  A Discussion on Generality and Robustness and a Framework for Fitness Set Construction in Genetic Programming to Promote Robustness , 1997 .

[37]  David G. Stork,et al.  Pattern Classification (2nd ed.) , 1999 .