Every building object of evolution requires an algorithm,
able to generate future configurations of this building.
The most powerful algorithm, good enough to solve optimization problems and find
unexpected solutions, is called Genetic Algorithm (GA).
It consists of a population of a particular number of generations, containing
a particular number of solutions.
The first generation organisms are usually produced using arbitrary numbers and they are not
working ones, the working solution is achieved during the execution of the Genetic Algorithm.
The next generations are made by mixing the genes of chosen parents from the previous generation.
  The basic parts of a classical (GA) are:
  1. Function that generates the organisms of the first generation.
  2. Function that evaluates the solutions (fitness-function).
  3. Function that chooses the parents of the next generation.
  4. Crossover function. It mixes the genetic material of the two parents.
  5. Mutation function.