Abstract
Genetic Programming has advanced the state of the art in the field of software synthesis. However, it has still not been able to produce some of the more complex programs routinely written by humans. One of the heuristics human programmers use to build complex software is the organization of code into reusable modules. Ever since the introduction of the concept of Automatically Defined Functions (ADFs) by John Koza in the 1990s, the genetic programming community has also expressed the need to evolve modular programs, but despite this interest and several subsequent innovations, the goal of evolving large-scale software built on reusable modules has not yet been achieved. In this chapter, we first discuss two modularity metrics: Reuse and Repetition, and describe the procedure for calculating them from program code and corresponding execution traces. We then introduce the concept of design features, which can be used alongside error measures to guide evolution. We also demonstrate the use of modularity design features in parent selection.
Cite
CITATION STYLE
Saini, A. K., & Spector, L. (2020). Using Modularity Metrics as Design Features to Guide Evolution in Genetic Programming (pp. 165–180). https://doi.org/10.1007/978-3-030-39958-0_9
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.