Evolutionary Neurogenetic Algorithm

We have developed a software framework called Evolutionary Neurogenetic Algorithm (ENGA), which offers researchers a fine control over biological detail in their simulations. Our original intent was to create software with much potential for variability. That is, we wanted a piece of software which is general enough to allow for a wide range of experimentation but appears as a coherent system and does not fall apart into a loosest of unrelated pieces of code. This required careful specification and design; especially in partitioning it into modules and the specification of interfaces in a programme that has grown to about 90,000 lines of C++ code. In such a short communication it is impossible to acknowledge all researchers of all important input fields to this paper. We have been especially influenced by evolutionary robotics, such as the work by Baldassarre et al. (2003), and by the evolutionary approach to neuronal networks with indirect encoding by Rolls and Stringer (2000). Our model is a recombinant of these approaches, with some key new elements, such as topographical network architecture.

The software is organised into packages that are built upon each other, i.e. there is a dependency hierarchy between them. This gives the architecture a layered nature so that lower modules do not know about the existence of higher modules. The most important packages and their dependencies are shown in Fig. 3.


»fnttlc CptEâtOEll



Point Mutation



Death process


l" " "


ReolVal Gene!


Composite Gene

sillín generator I


Synapiizaibn process





Fig. 3 Software design for the ENCtA platform (Szathmary et al., 2007). Modularity of the different components is apparent


Bud y ¿SeiuoTi *XfEtctoci

Bud y ¿SeiuoTi *XfEtctoci

Packages, dependencies and important classes

Fig. 3 Software design for the ENCtA platform (Szathmary et al., 2007). Modularity of the different components is apparent ra

Layered design allows easy modifiability of higher levels without the need to modify lower levels. Moreover, each layer exposes an interface that can be used by any client, even those deviating from the original purpose of simulating evolution of embodied communicating agents. The genetic module, for example, can be used in any evolutionary computation, not only those evolving artificial neural networks. We may as well talk about a multilevel software framework consisting of several modules that can be used individually or in combination with others to produce various kinds of evolutionary and neural computation related simulations. In the following sections individual packages are described in more detail.

The most important feature of the model is that it is deliberately biomimetic: within the constraints of computation, we intended to model real life, rather than artifical life. The most important element is indirect genetic control of the evolving agents: few genes specify a potentially very large neuronal network. This is very different from the merely engineering approach where each neuron and connection is affected by a dedicated gene. I refer for most details to Szathmary et al. (2007). Here I highlight the 'developmental neurobiology' of the model to illustrate its potential.

Was this article helpful?

0 0

Post a comment