Genetic Algorithms, or GAs implement efficient mechanisms to search what in mathematical terms are called a solution space. This family of algorithms adopt several terms from biology, and hence the use of the term Genetic. They are quite easy to understand and explain.

A typical GA will employ several distinct modules to achieve it's goal of searching a large - and possibly highly disparate - solution space. They are presented in roughly the sequential order of execution during a GA simulation.

An evaluator. The purpose of this function is to consider all existing solutions, to determine if an optimal solution has been found within a precision programmed by the GA creator. It also will determine if the function has failed to converge, and abort further processing if necessary.

If this is the case, a GA will present the best solution found to date in the simulation. Sometimes referred to in the literature as the God function.

The Grim Reaper: this function is responsbile for examining the existing solutions, and removing those which manifest the lowest score. The biological equivalent of survival of the fittest.

A Breeder. This function takes a subset of the existing solutions, and intermingles portions of their values into new solutions. This is probably best explained with an example.

Consider we have a function of three variables, f(x,y,z). We also have two candidate solutions, f(1,2,9) and f(-3,6,3). The breeder would construct a new candiate solution, for example, f(1,6,9), employing the DNA (continuing the use biological metaphors) of each. This clearly a new solution that is a descendant of the two parent solutions. Keep in mind that both parent solutions were considered optimal, and therefore any child solutions should be at least as good, and possbily better, than them (another biological metaphor).

The real strength of GA's lies in the next function: the mutant or mutation function. This module takes a small subset of existing solutions, and randomly changes their values (once again, DNA to use the biological metaphor)). The purpose of the mutation function is to insure that the GA does NOT get locked in a local region of the solution space.

In other words, the mutation function insures that a degree of randomness is introduced into the searching - and hence the possible solutions - evaluated by the GA.

Processing now continues at the first processing step, the evaluator.