Back to Top page.

About EGG framework


Class diagram of EGG framework.
Figure 1. Class diagram of EGG framework.

EGG framework is an object-oriented framework for developing the application of EGG.

Figure 1 illustrates the class diagram of the EGG framework, where each rectangular box represents a class template (or a class) and each dashed rectangle shows template arguments. These framework class templates (and a class) contain fundamental components for the EGG system.

The overall work-flow is controlled by the Control class template, which is associated with Population, Mutation, Crossover, Selection and Evaluation class templates. The Population class template contains the basic individual model defined by the Graph class template. The class templates Mutation, Crossover, Selection and Evaluation define basic operators for Population objects. For example, EGG framework includes two selection operators such as Rourette wheel selection and Elitist selection.

The Graph class template has Node, SubGraph and Fitness, where Node and SubGraph inherit from the AbstractNode class template. The AbstractNode has the Terminal class template. The connecting edge at the Terminal class template indicates an ``association'', i.e., one Terminal object calls another Terminal object to define the network topology.

For performing evolutionary operations quickly, the data structure for each circuit graph (i.e., individual) is designed to hold a list of data items for a specific number of sub-circuit graphs that are selected from the circuit graph randomly. In the crossover operation, the system first selects a sub-circuit graph randomly from a list of sub-circuit graphs of the mother circuit graph. The next step is to select a compatible sub-circuit graph from the father circuit graph by scanning father's sub-circuit graph information. When there are multiple choices of father's sub-circuit graphs, the system takes a random selection. In the mutation operation, on the other hand, the system selects a sub-circuit graph randomly from a circuit graph. Then, a compatible sub-circuit graph is generated randomly within the range of a specific number of nodes. (This process is also employed for generating embryonic circuit graphs.) Thus, the important characteristic of the data structure for individuals is to hold a number of sub-circuit graph information in advance, which makes possible to find a compatible sub-circuit graph quickly by using a large amount of memory space.

Besides the above class templetes, there are miscellaneous classes in the EGG framework. See the EGG framework compound list for more detail.