Foundations Of Cognitive Science

Genetic Algorithm

A genetic algorithm is a computer simulation technique that is used to efficiently discover a code capable of solving a problem of interest (Mitchell, 1996). Invented by Holland (1992), genetic algorithms are inspired by biological processes at the level of genes. A code (i.e., a program) for solving a problem is represented as a linear string of elements. A fitness function (i.e., a measure of how well the code works for solving the problem) is also developed. A new generation of codes are created by treating their linear strings as genes: children are produced by copying the string, splitting it into two, and joining it with other code fragments. The likelihood of a code string surviving to produce offspring is determined by measuring its fitness: fit codes surive, and unfit codes are selected out. During code reproduction, some mutations can also be produced. In essence, genetic programming can be viewed as an iterative, massively parallel search through a space of codes in an attempt to create a useful code string. This technique has proven very adept at quickly converging on codes for solving various problems of interest, and can be considered to be an alternative to artificial neural networks.


  1. Holland, J. H. (1992). Adaptation In Natural And Artificial Systems. Cambridge, MA: MIT Press
  2. Mitchell, M. (1996). An Introduction To Genetic Algorithms. Cambridge, MA: MIT Press.
(Added March 2010)