I quote below a personal portable implementation (in C++) of a classic genetic algorithm (evolutionary algorithm) used to maximize the function f(x, y) = sin(x) * sin(y) in the domain 0 <= x, y <= 2pi. You can compile the program with the g++ compiler.

The Genetic Algorithm implements the following features:

  1. Multi-parameter problems optimization (with constant parameters)
  2. Binary encoded genotypes (with integers)
  3. Genotypes of multiples chromosomes
  4. Number of iterations as the termination criterion
  5. Elitism by cloning of the best individuals
  6. Roulette wheel method for the selection of parents
  7. Generational replacement of parents and children
  8. One-point crossover and cloning of parents
  9. Deterministic method of mutation (probability of mutation per bit)
  10. Use of the climbing operator “phenotype mutation”
  11. Use of operator for chromosome replication or cloning

For more information you can get the project itself:

`evolutionary-computation-paradigms