Evolving event-driven programs with SignalGP

We present SignalGP, a new genetic programming (GP) technique designed to incorporate the event-driven programming paradigm into computational evolution's toolbox. Event-driven programming is a software design philosophy that simplifies the development of reactive programs by automatically triggering program modules (event-handlers) in response to external events, such as signals from the environment or messages from other programs. SignalGP incorporates these concepts by extending existing tag-based referencing techniques into an event-driven context. Both events and functions are labeled with evolvable tags; when an event occurs, the function with the closest matching tag is triggered. In this work, we apply SignalGP in the context of linear GP. We demonstrate the value of the event-driven paradigm using two distinct test problems (an environment coordination problem and a distributed leader election problem) by comparing SignalGP to variants that are otherwise identical, but must actively use sensors to process events or messages. In each of these problems, rapid interaction with the environment or other agents is critical for maximizing fitness. We also discuss ways in which SignalGP can be generalized beyond our linear GP implementation.

[1]  John H. Holland,et al.  Studying Complex Adaptive Systems , 2006, J. Syst. Sci. Complex..

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

[3]  David B. Knoester,et al.  Using group selection to evolve leadership in populations of self-replicating digital organisms , 2007, GECCO '07.

[4]  Morgan Quigley,et al.  ROS: an open-source Robot Operating System , 2009, ICRA 2009.

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

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

[7]  Lee Spector,et al.  Tag-based modules in genetic programming , 2011, GECCO '11.

[8]  James McDermott,et al.  Genetic Programming , 1998, Lecture Notes in Computer Science.

[9]  Betty H. C. Cheng,et al.  Exploring the evolution of internal control structure using digital enzymes , 2012, GECCO '12.

[10]  A. Telser Molecular Biology of the Cell, 4th Edition , 2002 .

[11]  R Core Team,et al.  R: A language and environment for statistical computing. , 2014 .

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

[13]  John H. Holland Genetic Algorithms and Classifier Systems: Foundations and Future Directions , 1987, ICGA.

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

[15]  Charles Ofria,et al.  Avida , 2004, Artificial Life.

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

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

[18]  D. JohnH.HOLLAN CONCERNING THE EMERGENCE OF TAG-MEDIATED LOOKAHEAD IN CLASSIFIER SYSTEMS , 2002 .

[19]  Paulo Tabuada,et al.  An introduction to event-triggered and self-triggered control , 2012, 2012 IEEE 51st IEEE Conference on Decision and Control (CDC).

[20]  Opher Etzion,et al.  Event Processing in Action , 2010 .

[21]  J. Pollack,et al.  The Evolutionary Induction of Subroutines , 1997 .

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

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

[24]  Charles Ofria,et al.  Gene duplications drive the evolution of complex traits and regulation , 2017, ECAL.

[25]  C. Cassandras The event-driven paradigm for control, communication and optimization , 2014, J. Control. Decis..

[26]  Thomas Weise,et al.  Evolving Distributed Algorithms With Genetic Programming , 2012, IEEE Transactions on Evolutionary Computation.

[27]  Betty H. C. Cheng,et al.  Digital enzymes: agents of reaction inside robotic controllers for the foraging problem , 2011, GECCO '11.

[28]  Randal S. Olson,et al.  Markov Brains: A Technical Introduction , 2017, ArXiv.

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

[30]  David B. Knoester,et al.  Genetic Variation and the Evolution of Consensus in Digital Organisms , 2013, IEEE Transactions on Evolutionary Computation.

[31]  Victor Ciesielski,et al.  Linear genetic programming , 2008, Genetic Programming and Evolvable Machines.

[32]  Eugene H. Spafford,et al.  Evolving event-driven programs , 1996 .

[33]  Witold Pedrycz,et al.  Springer Handbook of Computational Intelligence , 2015, Springer Handbook of Computational Intelligence.