Contribution based bloat control in Genetic Programming

Unnecessary growth in program size is known as the bloat problem in Genetic Programming. Bloat not only increases computational expenses during evolution, but also impairs the understandability and execution performance of evolved final solutions. There are a large number of studies addressing this problem. In this paper, we present an effective bloat control mechanism which is based on examining the contribution of each function node in the selected programs. Nodes without contribution will be removed before generating offspring. This method has been applied to various tasks. The results show that it can significantly reduce program size without damping the fitness of individuals. In some cases it increases the performance of the final solutions. Furthermore it does not require extra computational resources to perform the control whilst it speeds up evolution processes because of the saving in evaluation costs.

[1]  Xiaodong Li,et al.  Multi-objective techniques in genetic programming for evolving classifiers , 2005, 2005 IEEE Congress on Evolutionary Computation.

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

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

[4]  Graham Kendall,et al.  Problem Difficulty and Code Growth in Genetic Programming , 2004, Genetic Programming and Evolvable Machines.

[5]  P. Smith,et al.  Code growth, explicitly defined introns, and alternative selection schemes. , 1998, Evolutionary computation.

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

[7]  Mengjie Zhang,et al.  Effects of program simplification on simple building blocks in Genetic Programming , 2007, 2007 IEEE Congress on Evolutionary Computation.

[8]  P. Nordin,et al.  Explicitly defined introns and destructive crossover in genetic programming , 1996 .

[9]  Sean Luke,et al.  A Comparison of Bloat Control Methods for Genetic Programming , 2006, Evolutionary Computation.

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

[11]  P. Ross,et al.  An adverse interaction between crossover and restricted tree depth in genetic programming , 1996 .

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

[13]  Edward P. K. Tsang,et al.  Simplifying Decision Trees Learned by Genetic Programming , 2006, 2006 IEEE International Conference on Evolutionary Computation.

[14]  William B. Langdon,et al.  Size Fair and Homologous Tree Crossovers for Tree Genetic Programming , 2000, Genetic Programming and Evolvable Machines.

[15]  Mengjie Zhang,et al.  Algebraic simplification of GP programs during evolution , 2006, GECCO.

[16]  Riccardo Poli,et al.  Operator Equalisation and Bloat Free GP , 2008, EuroGP.

[17]  Andy Song,et al.  Robust method of detecting moving objects in videos evolved by genetic programming , 2008, GECCO '08.

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

[19]  Lee Spector,et al.  Size Control Via Size Fair Genetic Operators In The PushGP Genetic Programming System , 2002, GECCO.

[20]  David Jackson Fitness evaluation avoidance in Boolean GP problems , 2005, 2005 IEEE Congress on Evolutionary Computation.

[21]  Riccardo Poli,et al.  Parsimony pressure made easy , 2008, GECCO '08.

[22]  W. Langdon An Analysis of the MAX Problem in Genetic Programming , 1997 .

[23]  Mark Johnston,et al.  Using Numerical Simplification to Control Bloat in Genetic Programming , 2008, SEAL.