GLEAM: genetic learning by extraction and absorption of modules

Efforts to evolve modularity in genetic programming are as old as the field itself. While many techniques have been proposed to evolve programs that make use of simultaneously-evolved modules, the general problem of evolving large-scale, modular software still stands as a central challenge to the field. In this paper, we present GLEAM, a mechanism of achieving modularity, whereby an evolving program uses a local library of modules. The program can refer to the modules during execution and the ones not used by the program are eventually replaced by code segments extracted from the program itself. Modules can also be absorbed by the program when their references in the program get expanded to the full code segments. We show that this simple mechanism improves the success rate on a number of program synthesis problems.