Cartesian genetic programming

Cartesian Genetic Programming (CGP) is a well-known form of Genetic Programming developed by Julian Miller in 1999-2000. In its classic form, it uses a very simple integer address-based genetic representation of a program in the form of a directed graph. Graphs are very useful program representations and can be applied to many domains (e.g. electronic circuits, neural networks). It can handle cyclic or acyclic graphs. In a number of studies, CGP has been shown to be comparatively efficient to other GP techniques. It is also very simple to program. The classical form of CGP has undergone a number of developments which have made it more useful, efficient and flexible in various ways. These include self-modifying CGP (SMCGP), cyclic connections (recurrent-CGP), encoding artificial neural networks and automatically defined functions (modular CGP). SMCGP uses functions that cause the evolved programs to change themselves as a function of time. This makes it possible to find general solutions to classes of problems and mathematical algorithms (e.g. arbitrary parity, n-bit binary addition, sequences that provably compute pi and e to arbitrary precision, and so on). Recurrent-CGP allows evolution to create programs which contain cyclic, as well as acyclic, connections. This enables application to tasks which require internal states or memory. It also allows CGP to create recursive equations. CGP encoded artificial neural networks represent a powerful training method for neural networks. This is because CGP is able to simultaneously evolve the networks connections weights, topology and neuron transfer functions. It is also compatible with Recurrent-CGP enabling the evolution of recurrent neural networks. The tutorial will cover the basic technique, advanced developments and applications to a variety of problem domains. It will present a live demo of how the open source cgplibrary can be used.

[1]  Szilveszter Juhos,et al.  Post Docking Filtering Using Cartesian Genetic Programming , 2003, Artificial Evolution.

[2]  Steve R. DiPaola,et al.  Incorporating characteristics of human creativity into an evolutionary art algorithm , 2007, GECCO '07.

[3]  Tim Clarke,et al.  Fault tolerant control using Cartesian genetic programming , 2008, GECCO '08.

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

[5]  Julian F. Miller,et al.  What bloat? Cartesian Genetic Programming on Boolean problems , 2003 .

[6]  Julian Francis Miller,et al.  Multiple Network CGP for the Classification of Mammograms , 2009, EvoWorkshops.

[7]  Julian Francis Miller,et al.  On the filtering properties of evolved gate arrays , 1999, Proceedings of the First NASA/DoD Workshop on Evolvable Hardware.

[8]  Astro Teller,et al.  PADO: Learning Tree Structured Algorithms for Orchestration into an Object Recognition System , 1995 .

[9]  Julian F. Miller,et al.  Designing Electronic Circuits Using Evolutionary Algorithms. Arithmetic Circuits: A Case Study , 2007 .

[10]  Lukás Sekanina,et al.  Image Filter Design with Evolvable Hardware , 2002, EvoWorkshops.

[11]  Julian Francis Miller,et al.  Adaptivity in cell based optimization for information ecosystems , 2003, The 2003 Congress on Evolutionary Computation, 2003. CEC '03..

[12]  Julian Francis Miller,et al.  A multi-chromosome approach to standard and embedded cartesian genetic programming , 2006, GECCO.

[13]  Andrew M. Tyrrell,et al.  Towards evolving industry-feasible intrinsic variability tolerant CMOS designs , 2009, 2009 IEEE Congress on Evolutionary Computation.

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

[15]  Julian Francis Miller,et al.  Studying the Emergence of Multicellularity with Cartesian Genetic Programming in Artificial Life , 2002, GECCO Late Breaking Papers.

[16]  Gul Muhammad Khan,et al.  Breaking the Synaptic Dogma: Evolving a Neuro-inspired Developmental Network , 2008, SEAL.

[17]  Susan Stepney,et al.  Representation and structural biases in CGP , 2009, 2009 IEEE Congress on Evolutionary Computation.

[18]  Julian Francis Miller,et al.  Self modifying cartesian genetic programming: finding algorithms that calculate pi and e to arbitrary precision , 2010, GECCO '10.

[19]  Riccardo Poli,et al.  Evolution of Graph-Like Programs with Parallel Distributed Genetic Programming , 1997, ICGA.

[20]  David B. Fogel,et al.  Evolutionary Computation: Towards a New Philosophy of Machine Intelligence , 1995 .

[21]  M. S. Voss,et al.  Financial Modelling using Social Programming , 2003 .

[22]  Julian Francis Miller,et al.  Evolution of Digital Filters Using a Gate Array Model , 1999, EvoWorkshops.

[23]  Julian Francis Miller,et al.  Untidy Evolution: Evolving Messy Gates for Fault Tolerance , 2001, ICES.

[24]  Gavin Brown,et al.  Analytic Solutions to Differential Equations under Graph-Based Genetic Programming , 2010, EuroGP.

[25]  Julian Francis Miller,et al.  Evolution of Robot Controller Using Cartesian Genetic Programming , 2005, EuroGP.

[26]  Vesselin K. Vassilev,et al.  Digital circuit evolution and fitness landscapes , 1999, Proceedings of the 1999 Congress on Evolutionary Computation-CEC99 (Cat. No. 99TH8406).

[27]  Gul Muhammad Khan,et al.  Efficient representation of Recurrent Neural Networks for markovian/non-markovian non-linear control problems , 2010, 2010 10th International Conference on Intelligent Systems Design and Applications.

[28]  Inman Harvey,et al.  Through the Labyrinth Evolution Finds a Way: A Silicon Ridge , 1996, ICES.

[29]  Lukás Sekanina,et al.  On the Practical Limits of the Evolutionary Digital Filter Design at the Gate Level , 2006, EvoWorkshops.

[30]  Gul Muhammad Khan,et al.  Coevolution of intelligent agents using cartesian genetic programming , 2007, GECCO '07.

[31]  Marco Platzner,et al.  MOVES: A Modular Framework for Hardware Evolution , 2007, Second NASA/ESA Conference on Adaptive Hardware and Systems (AHS 2007).

[32]  Riccardo Poli,et al.  Why Ants are Hard , 1998 .

[33]  Julian Francis Miller,et al.  Embedded cartesian genetic programming and the lawnmower and hierarchical-if-and-only-if problems , 2006, GECCO.

[34]  Marco Platzner,et al.  A Comparison of Evolvable Hardware Architectures for Classification Tasks , 2008, ICES.

[35]  Julian Francis Miller,et al.  Evolving messy gates for fault tolerance: some preliminary findings , 2001, Proceedings Third NASA/DoD Workshop on Evolvable Hardware. EH-2001.

[36]  Lukás Sekanina,et al.  Reducing the number of transistors in digital circuits using gate-level evolutionary design , 2007, GECCO '07.

[37]  Lawrence J. Fogel,et al.  Artificial Intelligence through Simulated Evolution , 1966 .

[38]  Gul Muhammad Khan,et al.  In search of intelligent genes: The cartesian genetic programming computational neuron (CGPCN) , 2009, 2009 IEEE Congress on Evolutionary Computation.

[39]  Marco Platzner,et al.  Advanced techniques for the creation and propagation of modules in cartesian genetic programming , 2008, GECCO '08.

[40]  T. Ohta Slightly Deleterious Mutant Substitutions in Evolution , 1973, Nature.

[41]  Lukás Sekanina,et al.  Gate-level optimization of polymorphic circuits using Cartesian Genetic Programming , 2009, 2009 IEEE Congress on Evolutionary Computation.

[42]  Julian Francis Miller,et al.  Aspects of Digital Evolution: Evolvability and Architecture , 1998, PPSN.

[43]  Julian Francis Miller,et al.  Towards the automatic design of more efficient digital circuits , 2000, Proceedings. The Second NASA/DoD Workshop on Evolvable Hardware.

[44]  Julian Francis Miller,et al.  Finding Needles in Haystacks Is Not Hard with Neutrality , 2002, EuroGP.

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

[46]  Wolfgang Banzhaf,et al.  A comparison of linear genetic programming and neural networks in medical data mining , 2001, IEEE Trans. Evol. Comput..

[47]  Gul Muhammad Khan,et al.  Evolution of Optimal ANNs for Non-Linear Control Problems using Cartesian Genetic Programming , 2010, IC-AI.

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

[49]  M. S. Voss,et al.  Social programming using functional swarm optimization , 2003, Proceedings of the 2003 IEEE Swarm Intelligence Symposium. SIS'03 (Cat. No.03EX706).

[50]  Julian F. Miller,et al.  The Genetic Algorithm as a Discovery Engine , 2001 .

[51]  J. Miller,et al.  15 – Evolving the program for a cell: from French flags to Boolean circuits , 2003 .

[52]  Martin Trefzer,et al.  On the properties of artificial development and its use in evolvable hardware , 2009, 2009 IEEE Symposium on Artificial Life.

[53]  G. M. Khan,et al.  Intelligent agents capable of developing memory of their environment , 2009 .

[54]  Julian Francis Miller,et al.  Scalability problems of digital circuit evolution evolvability and efficient designs , 2000, Proceedings. The Second NASA/DoD Workshop on Evolvable Hardware.

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

[56]  Julian Francis Miller,et al.  Aspects of Digital Evolution: Geometry and Learning , 1998, ICES.

[57]  Tughrul Arslan,et al.  Evolvable Components—From Theory to Hardware Implementations , 2005, Genetic Programming and Evolvable Machines.

[58]  Julian Francis Miller,et al.  Investigating the performance of module acquisition in cartesian genetic programming , 2005, GECCO '05.

[59]  Marco Platzner,et al.  Toward Self-adaptive Embedded Systems: Multi-objective Hardware Evolution , 2007, ARCS.

[60]  Julian F. Miller,et al.  Evolving Digital Electronic Circuits for Real-Valued Function Generation using a Genetic Algorithm , 2007 .

[61]  Riccardo Poli,et al.  Parallel Distributed Genetic Programming , 1996 .

[62]  T. Ohta THE NEARLY NEUTRAL THEORY OF MOLECULAR EVOLUTION , 1992 .

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

[64]  Gul Muhammad Khan,et al.  Developing neural structure of two agents that play checkers using cartesian genetic programming , 2008, GECCO '08.

[65]  Yang Liu,et al.  Automatic Code Generation on a MOVE Processor Using Cartesian Genetic Programming , 2010, ICES.

[66]  Lukás Sekanina,et al.  Hardware Accelerators for Cartesian Genetic Programming , 2008, EuroGP.

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

[68]  Julian F. Miller Chapter 18 – The Genetic Algorithm as a Discovery Engine: Strange Circuits and New Principles , 2002 .

[69]  Julian Francis Miller,et al.  A Developmental Gene Regulation Network for Constructing Electronic Circuits , 2008, ICES.

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

[71]  Julian Francis Miller,et al.  Parallel evolution using multi-chromosome cartesian genetic programming , 2009, Genetic Programming and Evolvable Machines.

[72]  Julian Francis Miller,et al.  Solving real-valued optimisation problems using cartesian genetic programming , 2007, GECCO '07.

[73]  Jordi Madrenas,et al.  Evolvable Systems: From Biology to Hardware , 1996, Lecture Notes in Computer Science.

[74]  Julian Francis Miller,et al.  An evolutionary system using development and artificial Genetic Regulatory Networks for electronic circuit design , 2009, Biosyst..

[75]  Ingo Rechenberg,et al.  Evolutionsstrategie : Optimierung technischer Systeme nach Prinzipien der biologischen Evolution , 1973 .

[76]  Julian Francis Miller,et al.  A new crossover technique for Cartesian genetic programming , 2007, GECCO '07.

[77]  Julian Francis Miller,et al.  Changing the Genospace: Solving GA Problems with Cartesian Genetic Programming , 2007, EuroGP.

[78]  Tatiana Kalganova,et al.  Some Aspects of an Evolvable Hardware Approach for Multiple-Valued Combinational Circuit Design , 1998, ICES.

[79]  Heng Liu,et al.  Intrinsic evolvable hardware implementation of a robust biological development model for digital systems , 2005, 2005 NASA/DoD Conference on Evolvable Hardware (EH'05).

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

[81]  Gul Muhammad Khan,et al.  Coevolution of Neuro-developmental Programs That Play Checkers , 2008, ICES.

[82]  M. Kimura,et al.  The neutral theory of molecular evolution. , 1983, Scientific American.

[83]  Tatiana Kalganova,et al.  Evolving more efficient digital circuits by allowing circuit layout evolution and multi-objective fitness , 1999, Proceedings of the First NASA/DoD Workshop on Evolvable Hardware.

[84]  J. Miller,et al.  Beyond the Complexity Ceiling : Evolution , Emergence and Regeneration , 2004 .

[85]  Yang Zhang,et al.  Digital circuit design using intrinsic evolvable hardware , 2004, Proceedings. 2004 NASA/DoD Conference on Evolvable Hardware, 2004..

[86]  Julian Francis Miller,et al.  An evolutionary system using development and artificial Genetic Regulatory Networks , 2008, 2008 IEEE Congress on Evolutionary Computation (IEEE World Congress on Computational Intelligence).

[87]  Wolfgang Banzhaf,et al.  Genotype-Phenotype-Mapping and Neutral Variation - A Case Study in Genetic Programming , 1994, PPSN.

[88]  Julian Francis Miller,et al.  On the nature of two-bit multiplier landscapes , 1999, Proceedings of the First NASA/DoD Workshop on Evolvable Hardware.

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

[90]  J. Miller,et al.  An Intrinsic Robust Transient Fault-Tolerant Developmental Model for Digital Systems , 2004 .

[91]  Julian Francis Miller,et al.  Improving the Evolvability of Digital Multipliers Using Embedded Cartesian Genetic Programming and Product Reduction , 2005, ICES.

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

[93]  Heng Liu,et al.  A Biological Development Model for the Design of Robust Multiplier , 2005, EvoWorkshops.

[94]  J. Miller Digital filter design at gate-level using evolutionary algorithms , 1999 .

[95]  Steve DiPaola,et al.  EVOLVING CREATIVE PORTRAIT PAINTER PROGRAMS USING DARWINIAN TECHNIQUES WITH AN AUTOMATIC FITNESS FUNCTION , 2005 .

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

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

[98]  Wolfgang Banzhaf,et al.  Fast Genetic Programming on GPUs , 2007, EuroGP.

[99]  Julian Francis Miller,et al.  Developments in Cartesian Genetic Programming: self-modifying CGP , 2010, Genetic Programming and Evolvable Machines.

[100]  Wolfgang Banzhaf,et al.  Genetic Programming for Pedestrians , 1993, ICGA.

[101]  Julian Francis Miller,et al.  Evolving Developmental Programs for Adaptation, Morphogenesis, and Self-Repair , 2003, ECAL.

[102]  Julian Francis Miller,et al.  Obtaining system robustness by mimicking natural mechanisms , 2009, 2009 IEEE Congress on Evolutionary Computation.

[103]  Julian Francis Miller,et al.  Evolving a Self-Repairing, Self-Regulating, French Flag Organism , 2004, GECCO.

[104]  Julian Francis Miller,et al.  Through the Interaction of Neutral and Adaptive Mutations, Evolutionary Search Finds a Way , 2006, Artificial Life.

[105]  M. Huynen,et al.  Smoothness within ruggedness: the role of neutrality in adaptation. , 1996, Proceedings of the National Academy of Sciences of the United States of America.

[106]  Julian Francis Miller,et al.  Predicting Prime Numbers Using Cartesian Genetic Programming , 2007, EuroGP.