Introduction to genetic algorithms

Genetic algorithms are a well known heuristic approach to solve complex optimization problems, which are inspired by nature's breed selection. They are based on generations of solutions. Every generation contains a number of possible solutions to the optimization problem, which are called genomes. Every genome is evaluated and assigned a fitness value. This fitness value is highly problem specific and indicates how "good" the solution is. There are multiple sources on the Internet that give good overview of th terminology in the world of evolutionary algorithms.
Every generation serves as the basis for a new generation. To generate the genomes of the new generation, the genomes of the old generation are copied, mutated, or combined. These operations are performed by genetic operators, namely a copy operator, a mutator, and a crossover operator.

Genetic representation and modeling

The representation of a solution is problem-specific and often not obvious. The challenge lies in finding a compact representation for which it is possible to find suitable mutation and crossover operators. These operators must be able to perform the genetic operation quickly and efficiently, and it is beneficial if they produce a valid solution. Note that it is in principal also possible to penalize invalid solutions with a low fitness value. Moreover, the mutation of a genome or the combination of two genomes must lead to a solution that still sustains some properties of the original genome(s). Last but not least, it must be possible to determine a fitness value for all genomes.


Creating the model and linking it to the genome represenation is a vital part when working with evolutionary algorithms. For some problems, it is quite straigt forward to find a good representation, but very often, it is not.
Modeling of Genomes

A few references

I recommend this nice this nice introduction to evolutionary algorithms. It gives a general overview of evolutionary algorithms and the farious different flavours. This pdf script from the University of TÜbingen can also be recommended.
If you want to get into programming with genetic algorithms, I recommend this page on evolutionary algorithms with code examples.
Other references will follow.