Tag-based modules in genetic programming

In this paper we present a new technique for evolving modular programs with genetic programming. The technique is based on the use of "tags" that evolving programs may use to label and later to refer to code fragments. Tags may refer inexactly, permitting the labeling and use of code fragments to co-evolve in an incremental way. The technique can be implemented as a minor modification to an existing, general purpose genetic programming system, and it does not require pre-specification of the module architecture of evolved programs. We demonstrate that tag-based modules readily evolve and that this allows problem solving effort to scale well with problem size. We also show that the tag-based module technique is effective even in complex, non-uniform problem environments for which previous techniques perform poorly. We demonstrate the technique in the context of the stack-based genetic programming system PushGP, but we also briefly discuss ways in which it may be used with other kinds of genetic programming systems.

[1]  Lee Spector,et al.  Genetic Programming and Autoconstructive Evolution with the Push Programming Language , 2002, Genetic Programming and Evolvable Machines.

[2]  John R. Koza,et al.  Genetic programming: a paradigm for genetically breeding populations of computer programs to solve problems , 1990 .

[3]  John R. Koza,et al.  Hidden Order: How Adaptation Builds Complexity. , 1995, Artificial Life.

[4]  R. Riolo,et al.  Evolution of cooperation without reciprocity , 2001, Nature.

[5]  William C. Frederick,et al.  A Combinatory Logic , 1995 .

[6]  Julian Francis Miller,et al.  The Automatic Acquisition, Evolution and Reuse of Modules in Cartesian Genetic Programming , 2008, IEEE Transactions on Evolutionary Computation.

[7]  M. Schönfinkel Über die Bausteine der mathematischen Logik , 1924 .

[8]  Victor Ciesielski,et al.  Evolving programs with parameters and loops , 2010, IEEE Congress on Evolutionary Computation.

[9]  Peter D. Mosses,et al.  Programming Language Description Languages , 2010 .

[10]  Michel Toulouse,et al.  Automatic Quantum Computer Programming: A Genetic Programming Approach , 2006, Genetic Programming and Evolvable Machines.

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

[12]  Istvan Jonyer,et al.  Improving Modularity in Genetic Programming Using Graph-Based Data Mining , 2006, FLAIRS Conference.

[13]  Shirley Dex,et al.  JR 旅客販売総合システム(マルス)における運用及び管理について , 1991 .

[14]  David Hales Evolving Specialisation, Altruism, and Group-Level Optimisation Using Tags , 2002, MABS.

[15]  Lee Spector,et al.  Genetic Stability and Territorial Structure Facilitate the Evolution of Tag-Mediated Altruism , 2006, Artificial Life.

[16]  Peter J. Angeline,et al.  Evolutionary Module Acquisition , 1993 .

[17]  Annie S. Wu,et al.  On the performance effects of unbiased module encapsulation , 2009, GECCO '09.

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

[19]  Timothy Perkis,et al.  Stack-based genetic programming , 1994, Proceedings of the First IEEE Conference on Evolutionary Computation. IEEE World Congress on Computational Intelligence.

[20]  Marc Schoenauer,et al.  A Dynamic Lattice to Evolve Hierarchically Shared Subroutines , 1998, EuroGP.

[21]  HERBERT A. SIMON,et al.  The Architecture of Complexity , 1991 .

[22]  Lee Spector,et al.  Multi-type, Self-adaptive Genetic Programming as an Agent Creation Tool , 2002 .

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

[24]  John R. Koza,et al.  Genetic Programming III: Darwinian Invention & Problem Solving , 1999 .

[25]  Lee Spector,et al.  Automatic Quantum Computer Programming: A Genetic Programming Approach (Genetic Programming) , 2004 .

[26]  John R. Koza,et al.  Evolving Modules in Genetic Programming by Subtree Encapsulation , 2001, EuroGP.

[27]  Weimin Xiao,et al.  Direct evolution of hierarchical solutions with self-emergent substructures , 2005, Fourth International Conference on Machine Learning and Applications (ICMLA'05).

[28]  Maarten Keijzer,et al.  The Push3 execution stack and the evolution of control , 2005, GECCO '05.

[29]  Tomoharu Nagao,et al.  Graph structured program evolution with automatically defined nodes , 2009, GECCO.

[30]  David M. Clark,et al.  Genetic programming for finite algebras , 2008, GECCO '08.

[31]  Conor Ryan,et al.  Favourable Biasing of Function Sets Using Run Transferable Libraries , 2005 .

[32]  Lee Spector,et al.  Simultaneous evolution of programs and their control structures , 1996 .

[33]  Lee Spector,et al.  Autoconstructive Evolution: Push, PushGP, and Pushpop , 2001 .

[34]  P. Nordin Genetic Programming III - Darwinian Invention and Problem Solving , 1999 .

[35]  Conor Ryan,et al.  Undirected Training of Run Transferable Libraries , 2005, EuroGP.

[36]  John H. Holland,et al.  Hidden Order: How Adaptation Builds Complexity , 1995 .

[37]  Anthony Brabazon,et al.  A Grammatical Genetic Programming Approach to Modularity in Genetic Algorithms , 2007, EuroGP.