ABSTRACT
Scoped environments are used in various programming languages to provide contexts within which a function's code can bind values and perform computations with them, without affecting bindings used by the rest of the program. The PushGP genetic programming system, which has produced state-of-the-art results in application areas, including software synthesis, allows programs to label sequences of instructions as modules. However, those modules can also modify bindings used by the rest of the program. This increases module coupling and might therefore make modular programs less evolvable than they otherwise could be. To rectify this, and to ensure that modules return single values, we implement scoped environments in PushGP, using a method that allows for the dynamic definition of arbitrary modules in a multi-type setting. We demonstrate that the use of scoped environments leads to an increase in the success rates for multiple software synthesis problems.
- Thomas Helmuth and Peter Kelly. 2021. PSB2: the second program synthesis benchmark suite. In Proceedings of the Genetic and Evolutionary Computation Conference. 785--794.Google ScholarDigital Library
- Thomas Helmuth, Nicholas Freitag McPhee, Edward Pantridge, and Lee Spector. 2017. Improving generalization of evolved programs through automatic simplification. In Proceedings of the Genetic and Evolutionary Computation Conference. 937--944.Google ScholarDigital Library
- Thomas Helmuth and Lee Spector. 2015. General program synthesis benchmark suite. In Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation. 1039--1046.Google ScholarDigital Library
- Maarten Keijzer, Conor Ryan, and Mike Cattolico. 2004. Run transferable libraries---learning functional bias in problem domains. In Genetic and Evolutionary Computation Conference. Springer, 531--542.Google ScholarCross Ref
- John R Koza and John R Koza. 1992. Genetic programming: on the programming of computers by means of natural selection. Vol. 1. MIT press.Google ScholarDigital Library
- William La Cava, Lee Spector, and Kourosh Danai. 2016. Epsilon-lexicase selection for regression. In Proceedings of the Genetic and Evolutionary Computation Conference 2016. 741--748.Google ScholarDigital Library
- Edward Pantridge, Thomas Helmuth, and Lee Spector. 2020. Comparison of Linear Genome Representations for Software Synthesis. Genetic Programming Theory and Practice XVII (2020), 255.Google Scholar
- Anil Kumar Saini and Lee Spector. 2021. GLEAM: genetic learning by extraction and absorption of modules. In Proceedings of the Genetic and Evolutionary Computation Conference Companion. 263--264.Google ScholarDigital Library
- Dominik Sobania, Dirk Schweim, and Franz Rothlauf. 2021. Recent Developments in Program Synthesis with Evolutionary Algorithms. arXiv preprint arXiv:2108.12227 (2021).Google Scholar
- Lee Spector, Jon Klein, and Maarten Keijzer. 2005. The push3 execution stack and the evolution of control. In Proceedings of the 7th annual conference on Genetic and evolutionary computation. 1689--1696.Google ScholarDigital Library
- Lee Spector and Alan Robinson. 2002. Genetic programming and autoconstructive evolution with the push programming language. Genetic Programming and Evolvable Machines 3, 1 (2002), 7--40.Google ScholarDigital Library
- John Mark Swafford, Erik Hemberg, Michael O'Neill, and Anthony Brabazon. 2012. Analyzing module usage in grammatical evolution. In International Conference on Parallel Problem Solving from Nature. Springer, 347--356.Google ScholarDigital Library
- James Alfred Walker and Julian Francis Miller. 2008. The automatic acquisition, evolution and reuse of modules in cartesian genetic programming. IEEE Transactions on Evolutionary Computation 12, 4 (2008), 397--417.Google ScholarDigital Library
Index Terms
- Environments with local scopes for modules in genetic programming
Recommendations
Composing programming languages by combining action-semantics modules
Special issue: Language descriptions, tools and applications (LDTA'01)This article demonstrates a method for composing a programming language by combining action-semantics modules. Each module is defined separately, and then a programming-language module is defined by combining existing modules. This method enables the ...
Tag-based modules in genetic programming
GECCO '11: Proceedings of the 13th annual conference on Genetic and evolutionary computationIn this paper we present a new technique for evolving modular programs with genetic programming. The technique is based on the use of "tags" that evolving programs may use to label and later to refer to code fragments. Tags may refer inexactly, ...
The Automatic Acquisition, Evolution and Reuse of Modules in Cartesian Genetic Programming
This paper presents a generalization of the graph- based genetic programming (GP) technique known as Cartesian genetic programming (CGP). We have extended CGP by utilizing automatic module acquisition, evolution, and reuse. To benchmark the new ...
Comments