Evolutionary computation

In technical terms, they are a family of population-based trial and error problem solvers with a metaheuristic or stochastic optimization character.

Each new generation is produced by stochastically removing less desired solutions, and introducing small random changes as well as, depending on the method, mixing parental information.

The concept of mimicking evolutionary processes to solve problems originates before the advent of computers, such as when Alan Turing proposed a method of genetic search in 1948 .

[1] Turing's B-type u-machines resemble primitive neural networks, and connections between neurons were learnt via a sort of genetic algorithm.

However, Turing's paper went unpublished until 1968, and he died in 1954, so this early work had little to no effect on the field of evolutionary computation that was to develop.

Three branches emerged in different places to attain this goal: evolution strategies, evolutionary programming, and genetic algorithms.

By the 1990s, the distinctions between the historic branches had begun to blur, and the term 'evolutionary computing' was coined in 1991 to denote a field that exists over all four paradigms.

[3] In 1962, Lawrence J. Fogel initiated the research of Evolutionary Programming in the United States, which was considered an artificial intelligence endeavor.

[5] While the other approaches were focused on solving problems, Holland primarily aimed to use genetic algorithms to study adaptation and determine how it may be simulated.

Many other figures played a role in the history of evolutionary computing, although their work did not always fit into one of the major historical branches of the field.

The earliest computational simulations of evolution using evolutionary algorithms and artificial life techniques were performed by Nils Aall Barricelli in 1953, with first results published in 1954.

Broadly speaking, the field includes: A thorough catalogue with many other recently proposed algorithms has been published in the Evolutionary Computation Bestiary.

The most promising ideas about program-development parallels seem to us to be ones that point to an apparently close analogy between processes within cells, and the low-level operation of modern computers.

[15] The analogy to computation extends also to the relationship between inheritance systems and biological structure, which is often thought to reveal one of the most pressing problems in explaining the origins of life.

animation of random patches evolving into image of Charles Darwin
Evolution of a population of random images. Each frame in the animation is a generation showing the best fitness individual with a genome made up of the greyscale level of each patch. Evolution repeatedly follows 1. evaluate fitness, 2. rank individuals and 3. include some genes from next highest fitness individual. Fitness is the error difference with an image of Charles Darwin .