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.

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.

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.