Similar to Genetic Algorithms.

The emphasis here is on mutation and there is no crossover.

Every individual mutates, doubling the population.

The selection/survival operator tends to be Tournament Selection.

Tournament Selection


Each member of the population is compared with a fixed number of other individuals. For each comparison, the individual is awarded a point if it’s fitness is better than the opponent. The population is then reduced back to its original size by retaining those with the highest score.

Pseudo-Code


Input: Population size, number of generations  
and Fitness Function  
1) Create the initial population  
2) For i = 1 to number of generations  
3) Mutate the population  
4) Apply Tournament Selection  
5) End For  
Output: Return the best individual

Genetic Programming


It extends Genetic Algorithms.

We evolve computer programs by Natural Selection.

Symbolic Regression is a type of Genetic Programming, which represents a mathematical expression as a tree structure.