Expressive genetic programming: tutorial: 2012 genetic and evolutionary computation conference (GECCO-2012)

The language in which evolving programs are expressed can have significant impacts on the problem-solving capabilities of a genetic programming system. These impacts stem both from the absolute computational power of the languages that are used, as elucidated by formal language theory, and from the ease with which various computational structures can be produced by random code generation and by the action of genetic operators. Highly expressive languages can facilitate the evolution of programs for any computable function using, when appropriate, multiple data types, evolved subroutines, evolved control structures, evolved data structures, and evolved modular program and data architectures. In some cases expressive languages can even support the evolution of programs that express methods for their own reproduction and variation (and hence for the evolution of their offspring). This tutorial will begin with a comparative survey of approaches to the evolution of programs in expressive programming languages ranging from machine code to graphical and grammatical representations. Within this context it will then provide a detailed introduction to the Push programming language, which was designed specifically for expressiveness and specifically for use in genetic programming systems. Push programs are syntactically unconstrained but can nonetheless make use of multiple data types and express arbitrary control structures, supporting the evolution of complex, modular programs in a particularly simple and flexible way. The Push language will be described and ten years of Push-based research, including the production of human-competitive results, will be briefly surveyed. The tutorial will conclude with a discussion of recent enhancements to Push that are intended to support the evolution of complex and robust software systems.

[1]  Zhenyu Yang,et al.  Genetic and Evolutionary Computation Conference (GECCO-2008) , 2008, GECCO 2008.

[2]  Lee Spector,et al.  Foundations of Genetic Programming , 2002, Springer Berlin Heidelberg.

[3]  L. Spector Adaptive populations of endogenously diversifying Pushpop organisms are reliably diverse , 2002 .

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

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

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

[7]  John R. Koza,et al.  Genetic Programming IV: Routine Human-Competitive Machine Intelligence , 2003 .

[8]  Wolfgang Banzhaf,et al.  Genetic Programming: An Introduction , 1997 .

[9]  L. Spector,et al.  Trivial Geography in Genetic Programming , 2006 .

[10]  Lee Spector,et al.  Towards Practical Autoconstructive Evolution: Self-Evolution of Problem-Solving Genetic Programming Systems , 2011 .

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

[12]  Lee Spector,et al.  What’s in an Evolved Name? The Evolution of Modularity via Tag-Based Reference , 2011 .

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

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

[15]  Lee Spector,et al.  Uniform Linear Transformation with Repair and Alternation in Genetic Programming , 2013, GPTP.

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

[17]  Lee Spector,et al.  Virtual Witches and Warlocks : A Quidditch Simulator and Quidditch-Playing Teams Coevolved via Genetic Programming , 2004 .

[18]  L. Spector,et al.  Evolutionary Dynamics Discovered via Visualization in the breve Simulation Environment , 2002 .

[19]  Jordan B. Pollack,et al.  Autoconstructive evolution for structural problems , 2012, GECCO '12.

[20]  Una-May O'Reilly,et al.  Genetic Programming II: Automatic Discovery of Reusable Programs. , 1994, Artificial Life.

[21]  J. Pollack,et al.  Compositional Autoconstructive Dynamics , 2011 .

[22]  Lee Spector,et al.  Genetic Programming for Reward Function Search , 2010, IEEE Transactions on Autonomous Mental Development.

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

[24]  W. Langdon,et al.  Autoconstructive Evolution : Push , PushGP , and Pushpop , 2001 .

[25]  Lee Spector,et al.  Emergence of Collective Behavior in Evolving Populations of Flying Agents , 2003, Genetic Programming and Evolvable Machines.

[26]  Lee Spector,et al.  Evolution of reward functions for reinforcement learning , 2011, GECCO.

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

[28]  Lee Spector,et al.  Tags and the Evolution of Cooperation in Complex Environments , 2004, AAAI Technical Report.

[29]  Lee Spector,et al.  Tag-based modularity in tree-based genetic programming , 2012, GECCO '12.

[30]  Lee Spector,et al.  Using Genetic Programming with Multiple Data Types and Automatic Modularization to Evolve Decentralized and Coordinated Navigation in Multi-Agent Systems , 2002, GECCO Late Breaking Papers.

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

[32]  Lee Spector,et al.  Genetic Programming with Historically Assessed Hardness , 2009 .

[33]  Vidroha Debroy,et al.  Genetic Programming , 1998, Lecture Notes in Computer Science.

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

[35]  Lee Spector,et al.  Unwitting distributed genetic programming via asynchronous JavaScript and XML , 2007, GECCO '07.

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

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