Evolving Event-driven Programs with SignalGP
arXiv:1804.05445 · doi:10.1145/3205455.3205523
Abstract
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.
References in corpus (1)
Cited by in corpus (6)
- Tag-based regulation of modules in genetic programming improves context-dependent problem solving
- Conduit: A C++ Library for Best-effort High Performance Computing
- Exploring Evolved Multicellular Life Histories in a Open-Ended Digital Evolution System
- Reachability Analysis for Lexicase Selection via Community Assembly Graphs
- Matchmaker, Matchmaker, Make Me a Match: Geometric, Variational, and Evolutionary Implications of Criteria for Tag Affinity
- SignalGP-Lite: Event Driven Genetic Programming Library for Large-Scale Artificial Life Applications