3.1 Genetic Algorithm

The genetic algorithm processing component is a part of every child process. It uses its processing abilities to improve its actual population. Its input consists of three supportive objects (see Fig. 3.1-1):

The genetic algorithm processing component applies iteratively a sequence of generalized genetic operators to the population. We call them GAtools (see paragraph GAtools). The sequence can vary with respect to parameters i.e. the user can define the sequence. This sequence is repeated until the Control Mechanisms stops the computation. The Control Mechanisms include the user interaction, the termination conditions and a basic error capturing. During and after the computation the statistical data are collected, so the user can monitor the computation. The result of the genetic algorithm is the population. This is either the population that has satisfied the termination conditions or the actual population when the computation was stopped for another reason. This result population is stored to a special parameter file.

Figure 3.1-1: The scheme of the GA-processing component of the system.

3.1.1 GAtools

GAtools are generalized genetic operators. They are designed for changing the population and for improving its overall quality. They modify the sets of genes or the genes themselves. The order of the GAtools used during the computation of the genetic algorithm strongly influences the performance of the algorithm. We divide the GAtools into three basic groups: unoms, functions and selectors.


These GAtools make changes inside a single population. Thus just one population is required as an argument. So far we have implemented the following unoms:


These GAtools require two populations as arguments. The first one is intended as incoming, the second one is intended as outcoming. A function first takes the given number of genes from the incoming population. Then it performs certain changes (or do not) with these genes. At the end it places the result into the outcoming population. Actually, it is possible to change the genes in the outcoming population too. We have already implemented these functions:

In addition we support a special subgroup of functions called GAtables. These are, in fact, sequences of GAtools. The user can define this sequence in a parameter file. This allows the user substantially change the computation of the genetic algorithm. The execution of these GAtables means a call of each GAtool sequentially in the specified order. This mechanism enables to change the genetic algorithm without recompiling the system kernel. So far we have implemented these GAtables:


These GAtools select a specified number of genes from incoming population. They copy or move the selected genes into the outcoming population. Selectors require four arguments: two populations, the number of genes to be selected and the flag specifying whether to copy or to move them. The difference between the implemented selectors is the strategy applied for the selection. So far we have implemented these selectors:

System OverviewProject Antares