Developments in Cartesian Genetic Programming: self-modifying CGP

Self-modifying Cartesian Genetic Programming (SMCGP) is a general purpose, graph-based, developmental form of Genetic Programming founded on Cartesian Genetic Programming. In addition to the usual computational functions, it includes functions that can modify the program encoded in the genotype. This means that programs can be iterated to produce an infinite sequence of programs (phenotypes) from a single evolved genotype. It also allows programs to acquire more inputs and produce more outputs during this iteration. We discuss how SMCGP can be used and the results obtained in several different problem domains, including digital circuits, generation of patterns and sequences, and mathematical problems. We find that SMCGP can efficiently solve all the problems studied. In addition, we prove mathematically that evolved programs can provide general solutions to a number of problems: n-input even-parity, n-input adder, and sequence approximation to π.

[1]  David B. Knoester,et al.  Harnessing Digital Evolution , 2008, Computer.

[2]  William B. Langdon,et al.  Repeated Sequences in Linear Genetic Programming Genomes , 2005, Complex Syst..

[3]  John R. Koza,et al.  Genetic programming (videotape): the movie , 1992 .

[4]  Peter J. Bentley,et al.  Fractal Proteins , 2004, Genetic Programming and Evolvable Machines.

[5]  Julian Francis Miller,et al.  The Advantages of Landscape Neutrality in Digital Circuit Evolution , 2000, ICES.

[6]  Daniel Roggen,et al.  Multi-cellular Development: Is There Scalability and Robustness to Gain? , 2004, PPSN.

[7]  Julian Francis Miller,et al.  A Developmental Method for Growing Graphs and Circuits , 2003, ICES.

[8]  Riccardo Poli,et al.  Developmental plasticity in linear genetic programming , 2009, GECCO.

[9]  P. E. Hotz,et al.  Comparing direct and developmental encoding schemes in artificial evolution: a case study in evolving lens shapes , 2004, Proceedings of the 2004 Congress on Evolutionary Computation (IEEE Cat. No.04TH8753).

[10]  G. Kampis Self-modifying systems in biology and cognitive science , 1991 .

[11]  Julian Francis Miller,et al.  Evolution and Acquisition of Modules in Cartesian Genetic Programming , 2004, EuroGP.

[12]  Charles Ofria,et al.  Evolving coordinated quadruped gaits with the HyperNEAT generative encoding , 2009, 2009 IEEE Congress on Evolutionary Computation.

[13]  Thomas S. Ray,et al.  An Evolutionary Approach to Synthetic Biology: Zen and the Art of Creating Life , 1993, Artificial Life.

[14]  Jonathan M. Borwein,et al.  Experimentation in Mathematics: Computational Paths to Discovery , 2004 .

[15]  Gregory S. Hornby,et al.  The advantages of generative grammatical encodings for physical design , 2001, Proceedings of the 2001 Congress on Evolutionary Computation (IEEE Cat. No.01TH8546).

[16]  Steen Rasmussen,et al.  The coreworld: emergence and evolution of cooperative structures in a computational chemistry , 1990 .

[17]  H. Maturana,et al.  Autopoiesis and Cognition : The Realization of the Living (Boston Studies in the Philosophy of Scie , 1980 .

[18]  Adam Donlin,et al.  Self Modifying Circuitry - A Platform for Tractable Virtual Circuitry , 1998, FPL.

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

[20]  Kwong-Sak Leung,et al.  Evolving recursive functions for the even-parity problem using genetic programming , 1996 .

[21]  John N. Shutt,et al.  Self-Modifying Finite Automata: An Introduction , 1995, Inf. Process. Lett..

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

[23]  Matthew Arnold,et al.  A Survey of Adaptive Optimization in Virtual Machines , 2005, Proceedings of the IEEE.

[24]  Peter J. Bentley,et al.  The challenge of irrationality: fractal protein recipes for PI , 2009, GECCO '09.

[25]  Lukás Sekanina,et al.  Evolutionary Design of Arbitrarily Large Sorting Networks Using Development , 2005, Genetic Programming and Evolvable Machines.

[26]  Radhika Nagpal,et al.  On Growth, Form and Computers , 2005, Genetic Programming and Evolvable Machines.

[27]  Man Wong,et al.  Evolving Recursive Programs by Using Adaptive Grammar Based Genetic Programming , 2005, Genetic Programming and Evolvable Machines.

[28]  Simon M. Lucas,et al.  A comparison of matrix rewriting versus direct encoding for evolving neural networks , 1998, 1998 IEEE International Conference on Evolutionary Computation Proceedings. IEEE World Congress on Computational Intelligence (Cat. No.98TH8360).

[29]  Julian Francis Miller,et al.  Neutrality and the Evolvability of Boolean Function Landscape , 2001, EuroGP.

[30]  Igor Aleksander,et al.  Neural computing architectures: the design of brain-like machines , 1989 .

[31]  H. Maturana,et al.  Autopoiesis and Cognition , 1980 .

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

[33]  Yuichiro Kanzaki,et al.  Exploiting self-modification mechanism for program protection , 2003, Proceedings 27th Annual International Computer Software and Applications Conference. COMPAC 2003.

[34]  Rafal Kicinger,et al.  Evolutionary Developmental System for Structural Design , 2006, AAAI Fall Symposium: Developmental Systems.

[35]  Julian Francis Miller,et al.  Self-modifying cartesian genetic programming , 2007, GECCO '07.

[36]  Reiner W. Hartenstein,et al.  Field-Programmable Logic and Applications From FPGAs to Computing Paradigm , 1998, Lecture Notes in Computer Science.

[37]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[38]  Julian Francis Miller,et al.  Redundancy and computational efficiency in Cartesian genetic programming , 2006, IEEE Transactions on Evolutionary Computation.

[39]  Kenneth O. Stanley,et al.  Compositional Pattern Producing Networks : A Novel Abstraction of Development , 2007 .

[40]  Larry D. Pyeatt,et al.  A comparison between cellular encoding and direct encoding for genetic neural networks , 1996 .

[41]  John Aycock,et al.  A brief history of just-in-time , 2003, CSUR.

[42]  Tina Yu,et al.  Hierarchical Processing for Evolving Recursive and Modular Programs Using Higher-Order Functions and Lambda Abstraction , 2001, Genetic Programming and Evolvable Machines.

[43]  Wolfgang Banzhaf,et al.  A Comparison of Cartesian Genetic Programming and Linear Genetic Programming , 2008, EuroGP.

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

[45]  Hiroaki Kitano,et al.  Designing Neural Networks Using Genetic Algorithms with Graph Generation System , 1990, Complex Syst..

[46]  Julian F. Miller,et al.  The Challenge of Complexity , 2004 .

[47]  Peter Nordin,et al.  Evolving Turing-Complete Programs for a Register Machine with Self-modifying Code , 1995, ICGA.

[48]  Peter J. Bentley,et al.  Three Ways to Grow Designs: A Comparison of Embryogenies for an Evolutionary Design Problem , 1999, GECCO.

[49]  J. Miller,et al.  Guidelines: From artificial evolution to computational evolution: a research agenda , 2006, Nature Reviews Genetics.

[50]  Julian Francis Miller,et al.  Principles in the Evolutionary Design of Digital Circuits—Part II , 2000, Genetic Programming and Evolvable Machines.

[51]  C. Titus Brown,et al.  Evolutionary Learning in the 2D Artificial Life System "Avida" , 1994, adap-org/9405003.

[52]  J. Miller An empirical study of the efficiency of learning boolean functions using a Cartesian Genetic Programming approach , 1999 .

[53]  Peter J. Bentley,et al.  Development brings scalability to hardware evolution , 2005, 2005 NASA/DoD Conference on Evolvable Hardware (EH'05).

[54]  Riccardo Poli,et al.  Solving High-Order Boolean Parity Problems with Smooth Uniform Crossover, Sub-Machine Code GP and Demes , 2000, Genetic Programming and Evolvable Machines.

[55]  Lorenz Huelsbergen,et al.  Finding General Solutions to the Parity Problem by Evolving Machine-Language Representations , 2002 .

[56]  Julian Francis Miller,et al.  Evolution, development and learning using self-modifying cartesian genetic programming , 2009, GECCO '09.

[57]  Michael Conrad,et al.  Self-modifying systems in biology and cognitive science: A new framework for dynamics, information and complexity: By George Kampis, Pergamon Press, Oxford, 1991, 543 pp., US$100 , 1992 .

[58]  Julian Francis Miller,et al.  Self Modifying Cartesian Genetic Programming: Fibonacci, Squares, Regression and Summing , 2009, EuroGP.

[59]  N. Doidge,et al.  Book Review: The Brain That Changes Itself: Stories of Personal Triumph from the Frontiers of Brain Science , 2008 .

[60]  Julian Francis Miller,et al.  Cartesian genetic programming , 2000, GECCO '10.

[61]  Julian Francis Miller,et al.  Self modifying Cartesian Genetic Programming: Parity , 2009, 2009 IEEE Congress on Evolutionary Computation.

[62]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[63]  Jürgen Schmidhuber,et al.  Reinforcement Learning with Self-Modifying Policies , 1998, Learning to Learn.

[64]  G Kampis,et al.  Self-modifying systems: a model for the constructive origin of information. , 1996, Bio Systems.