Natural Selection: Genetic Algorithm for System Optimization & Genetic Programming

Evo2 is our advanced genetic algorithm library which incorporates the latest in genetic algorithm design, such as biologically identical processes, epigenetic switches, simulated annealing, Westermarck inbreeding prevention, age-limited recombination, and more

Bio-Identical Genome and Algorithm

Evo2 is not only bio-inspired, but it is bio-identical in many aspects. Evo2 simulates every natural process from mate selection to DNA packaging and complete meiosis. Most standard genetic algorithms neglect to perform the multiple steps of meiosis that are vitally important to genetic variation, a crucially important variable in avoiding local optima.


During prophase, chromosomes synapse and a small amount of DNA is exchanged between homologous chromosomes through a process known as "crossing over." The critical part of prophase is the lining-up of tetrads into homologous pairs. The Evo2 algorithm ensures that homologs are only created from unrelated, opposite sex chromosomes

Metaphase and Anaphase

Metaphase and anaphase are the phases where much variation is incorporated into the genome; however, most genetic algorithms completely leave these steps out. Evo2 simulates both phases completely and accurately.

Epigenetic Switches

Epigenetic theory describes how changes in gene expression may be caused by mechanisms other than changes in the underlying dna sequence, temporarily or through multiple generations, by influencing a network of chemical switches within cells collectively known as the epigenome. Evo2 can simulate epigenetic switches to allow the system to be temporarily penalized for actions such as being too greedy or risk averse.

Simulated Annealing

Simulated annealing is a probabilistic metaheuristic for the global optimization problem of locating a good approximation to the global optimum of a given function in a large search space. It is often used when the search space is discrete. For certain problems, simulated annealing may be more efficient than exhaustive enumeration.

Family Tree

Evo2 can save genealogical information for each genome so users may review the progression of the genetic algorithm to see how certain genes have evolved over time.

Karyogram Viewer

Evo2 features a built-in karyogram, which allows visualization of genomes while genetic algorithms are evolving. The karyogram could be customized to display genealogy information for specific genomes via a context menu.