Expressive genetic programming

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]  Lee Spector,et al.  Multi-type, Self-adaptive Genetic Programming as an Agent Creation Tool , 2002 .

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

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

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

[5]  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.

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

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

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

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

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

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

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

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

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

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

[16]  Yaneer Bar-Yam New England Complex Systems Institute series on complexity , 2000 .

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

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

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

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

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

[22]  Moshe Sipper,et al.  Analyzing a Decade of Human-Competitive ("HUMIE") Winners: What Can We Learn? , 2014, GPTP.

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

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

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

[26]  Lee Spector,et al.  Word count as a traditional programming benchmark problem for genetic programming , 2014, GECCO.

[27]  Gary Montague,et al.  Genetic programming: an introduction and survey of applications , 1997 .

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

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

[30]  Riccardo Poli,et al.  Genetic programming theory , 2007, GECCO '07.

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

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

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

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

[35]  Lee Spector,et al.  Inheritable Epigenetics in Genetic Programming , 2014, GPTP.

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

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

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

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

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

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

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

[43]  Lee Spector,et al.  Solving Uncompromising Problems With Lexicase Selection , 2015, IEEE Transactions on Evolutionary Computation.

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

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