Article Preview
Top1. Introduction
Nature-inspired algorithms are used extensively today to solve a multitude of learning, design, and optimization problems, giving rise to a new research area called Evolutionary Computation (EC) (Eiben & Smith, 2003). Over time many variants of a basic algorithm especially tuned for some problems and/or situations were proposed (e.g., algorithms for dealing with noisy, uncertain or dynamic environments, for evolving rather than designing the algorithm's parameters or some of its components, algorithms with local search operators or for multi-objective optimization). Typically, the objects manipulated by the evolutionary algorithms are represented at two different levels. At a low level (the genotype) the representations are manipulated by the variation operators; at a high level (the phenotype) the objects are evaluated to determine their fitness and are selected accordingly. Because of that, we need a mapping between these two levels. The issue of the relationship between the genotype and the phenotype is as old as the area itself, with many experts claiming that the standard approach is too simplistic, and advocating that it is worth trying to close the gap between EC and Biology, introducing more complex relationships between the genotype and the phenotype, and evaluate if they are responsible for an improvement in both robustness and evolvability (W Banzhaf et al., 2006; O'Neill, Vanneschi, Gustafson, & Banzhaf, 2010). For example, typically in an EA, the two phases of transcription and translation (that exist in nature) are merged into just one and the regulatory processes are missing. At a larger scale, we could add the lack of epigenetic phenomena that contribute to the evolution and all the mechanisms involved in the construction of an organism.
During the last years we saw the appearance of novel representations and the corresponding genotype to phenotype mapping: grammatical evolution (O'Neill & Ryan, 2003), self-modifying cartesian genetic programming (S Harding, J F Miller, & W Banzhaf, 2009), gene expression programming (C Ferreira, 2006) or enzyme programming (Lones & Tyrrell, 2002). Along a different path (W Banzhaf et al., 2006), suggested that one should enrich the artificial model of evolution with the inclusion of feedback regulatory mechanisms. Earlier, in (Wolfgang Banzhaf, 2003a) the author had proposed an artificial gene regulatory network (ARN) model and showed how it could be used computationally in different settings (Kuo, Leier, & Banzhaf, 2004). Later, the ARN model was extended by (Miguel Nicolau, Schoenauer, & Banzhaf, 2010b) with the inclusion of extra input proteins and dividing the gene's products in transcription factors and non-regulatory proteins. The latter are used as outputs. More recently (Lopes & Costa, 2012) presented another variant of the ARN, enlarging its applicability, by transforming the regulatory gene network into a computable graph, similarly to what is done in GP. In this work we merge these two approaches and explore further its capabilities, testing them with several benchmark problems. We will address the issues of memory and multiple outputs.