The goal of our project was to design and implement an open system for dealing with genetic algorithms (GAs). Genetic algorithms are robust search algorithms inspired by natural genetics. They are suitable for solving complicated optimisation problems. In addition to the standard usage scheme of genetic algorithms we support multilayer neural networks (NNs) for approximating the fitness function.
Genetic algorithms operate on formally coded individuals. Each individual represents a solution candidate and it is encoded as a finite-length string over a given finite alphabet. These strings are called genes. In every step genetic algorithms work on the whole set of genes simultaneously. This set of genes is called population. Genetic algorithms use probabilistic rules (the so-called genetic operators) for improving the overall quality of the population during their run. Nevertheless, genetic algorithms do not perform a purely random search through the search space. They use the so-called fitness function to control the search. Genetic algorithms do not require any special analytical property of this function. In the case that the function cannot be expressed analytically, e.g. a neural network can be used for its approximation.
In our project we support a parallel approach to the genetic algorithms. Our aim was to divide the computational costs to several processors. We are expecting it will reduce the computational time and that it will enable more extensive search through the search space. Our system is implemented on a network of workstations with the UNIX operating system. It uses PVM (Parallel Virtual Machine) for parallel computing. GUI (Graphical User Interface) is X-Windows.