Modularity in Genetic Algorithms
Modularity is a common characteristic of many artificial and natural systems. Systems with separable or nearly separable units are considered modular. Alternatively, modules may also viewed as repetitively used design units  that are easy to dissociate, recombine, and reuse in different systems. In this study, a module is a sequence of genomic primitives that may be repeated in the genome or reused throughout the population. A genome includes actual system primitives as well as lower level encapsulated module names. This way of defining modules relates to Holland's building blocks hypothesis. Modules, however, differ from building blocks in their robustness against recombination operators. An encapsulated module cannot be disrupted by recombination while building blocks can.
In this study, we prove, under a set of assumptions, that the systematic encapsulation of lower order modules into higher order modules does not change the size or bias of a search space and that this process produces a hierarchy of equivalent search spaces. We also investigate the question of what constitutes a module at the genomic level of evolutionary search and provide a static analysis of how to identify good and bad modules based on their ability to reduce the search space, thus,
biasing the search space towards a solution.