Differences between Nature and a Genetic Algorithm

[JGAP Home]

A Genetic Algorithm is an idealized model of processes and structures occurring in nature. It is by no means meant to follow or copy nature completely. To clarify this partial plagiarism, here are some few examples.

General Architecture

We are referring to the interesting article 2020 Computing: Can computers help to explain biology?, from which the following picture was taken.

Mitosis and Meiosis

Mitosis is the process where a cell separates. Meiosis occurs for eukaryotes and transforms one diploid cell into four haploid cells. Both processes are important for the sexual reproduction of humans.

Mitosis and meiosis are complex processes containing sub-processes. In nature, especially errors in mitosis can occur as well as in meiosis. A computer-run Genetic Algorithm does not have problems producing offsprings (asexually) with 100% correctness.


Following the Wobble hypothesis, amino acids are encoded asymmetrically by three codons. Some amino acids are more common than others. Stop codons mark the end of a protein synthesis. As stop codons are not present with Genetic Algorithms, effects depending on them (such as interpreting errors) could not occur.

Mendelian inheritance

In nature, the phenotypic expression of genotypic characteristics allows for intermediary inheritance. For Genetic Algorithms, this holds only true for special implementations of interpretations of the current genotype.


Inactive X-chromosome. For women and all female mammals owning two homologous X-chromosomes, one is always inactivated.


As it is not intended copying nature transparently, we are free in implementing a Genetic Algorithm as it seems most reasonable. Aspects involved in judging what could be reasonable are ease of use, capability and performance (time, memory, convergence). One example for a difference between JGAP and other Genetic Algorithms packages is the Genotype.evolve() method. In JGAP, we don't use a pool of candidate chromosomes any more, although it is an established concept in other packages. We have not noticed any losses because of this, but instead a speedup.

[JGAP Home]
      SourceForge Logo