— Ch. 1 · Origins And Early History —
Evolutionary computation.
~4 min read · Ch. 1 of 6
Alan Turing proposed a method of genetic search in 1948. His B-type u-machines resembled primitive neural networks where connections between neurons were learned via a sort of genetic algorithm. Turing's P-type u-machines resembled a method for reinforcement learning using pleasure and pain signals to direct machine behavior. However, his paper went unpublished until 1968, and he died in 1954. This early work had little to no effect on the field that was to develop. Evolutionary computing as a field began in earnest during the 1950s and 1960s. Several independent attempts used the process of evolution in computing at this time. These efforts developed separately for roughly 15 years before converging into distinct branches. Three branches emerged in different places to attain this goal: evolution strategies, evolutionary programming, and genetic algorithms. A fourth branch called genetic programming eventually emerged in the early 1990s.
Core Algorithmic Paradigms
In 1962, Lawrence J. Fogel initiated research into Evolutionary Programming within the United States. He considered it an artificial intelligence endeavor involving finite state machines solving prediction problems. These machines would be mutated by adding or deleting states or changing transition rules. The best of these mutated machines evolved further in future generations. In 1964, Ingo Rechenberg and Hans-Paul Schwefel introduced the paradigm of evolution strategies in Germany. They proposed random mutations applied to all parameters of some solution vector to escape local minima found by traditional gradient descent techniques. Child solutions were generated from parent solutions, keeping only the more successful ones for future generations. John Henry Holland introduced genetic algorithms in the 1960s while developing them further at the University of Michigan during the 1970s. Populations of chromosomes represented as bit strings transformed through artificial selection processes selecting specific allele bits. By the 1990s, a new approach called genetic programming emerged advocated for by John Koza among others. Programs written in high-level languages like Lisp S-expressions became subjects of evolution themselves.