A '''genetic algorithm''' is a [[stochastic]] numerical algorithm used to solve optimization problems where [[analytic]] or step-wise computation optimization is impossible or intractable. Genetic algorithms are a popular subset of [[Evolutionary algorithm|Evolutionary algorithms]] which use common concepts in [[evolutionary biology]] and principles of the [[Theory of evolution]] such as: [[inheritance]], [[mutation]], [[selection]], and [[recombination]].
Solutions to a problem are randomly generated and then allowed to interact in a modeled environment. Various solutions can [[breed]] with each other producing new combinations, also at random intervals certain elements of the solution can randomly mutate. The fitness of any given solution to the problem is measured by a fitness function and those that are a better fit are selected for. This can either happen by increasing the rate of offspring reproduction in better solutions or by killing off solutions that perform worse.
Genetic algorithms are used in a wide subset of disciplines including: [[biology]], [[engineering]], [[medicine]] and [[chemistry]].
'''Genetic programming''' is a type of genetic algorithm where the population consists of programs whose fitness is determined by their ability to solve a given problem. ==See Alsoalso==
[[Monte Carlo method]]
==References==
Schmitt, Lothar M (2001), Theory of Genetic Algorithms, Theoretical Computer Science (259), pp. 1-61 1–61
==External links==
*[http://www.talkorigins.org/faqs/genalg/genalg.html "Genetic Algorithms and Evolutionary Computation" on the TalkOrigins Archive]
[[categoryCategory:mathematicsMathematics]]
[[Category:Computer Science]]