Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Evolutionary computation
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== History == 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 .<ref name=":1">{{Citation |last1=Eiben |first1=A. E. |title=Evolutionary Computing: The Origins |date=2015 |url=http://dx.doi.org/10.1007/978-3-662-44874-8_2 |pages=13–24 |place=Berlin, Heidelberg |publisher=Springer Berlin Heidelberg |isbn=978-3-662-44873-1 |access-date=2022-05-06 |last2=Smith |first2=J. E.|series=Natural Computing Series |doi=10.1007/978-3-662-44874-8_2 |url-access=subscription }}</ref> Turing's B-type [[u-machine]]s resemble primitive [[neural network]]s, and connections between neurons were learnt via a sort of [[genetic algorithm]]. His P-type [[u-machine]]s resemble a method for [[reinforcement learning]], where pleasure and pain signals direct the machine to learn certain behaviors. 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.<ref name=":2">{{cite arXiv |last1=Burgin |first1=Mark |last2=Eberbach |first2=Eugene |date=2013-04-12 |title=Evolutionary Turing in the Context of Evolutionary Machines |class=cs.AI |eprint=1304.3762 }}</ref> Evolutionary computing as a field began in earnest in the 1950s and 1960s.<ref name=":1" /> There were several independent attempts to use the process of evolution in computing at this time, which developed separately for roughly 15 years. Three branches emerged in different places to attain this goal: [[Evolution strategy|evolution strategies]], [[evolutionary programming]], and [[genetic algorithm]]s. A fourth branch, [[genetic programming]], eventually emerged in the early 1990s. These approaches differ in the method of selection, the permitted mutations, and the representation of genetic data. 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.<ref name=":0">{{Cite book |url=https://www.worldcat.org/oclc/38270557 |title=Evolutionary computation : the fossil record |date=1998 |publisher=IEEE Press |others=David B. Fogel |isbn=0-7803-3481-7 |location=New York |oclc=38270557}}</ref> In 1962, [[Lawrence J. Fogel]] initiated the research of [[Evolutionary programming|Evolutionary Programming]] in the United States, which was considered an [[artificial intelligence]] endeavor. In this system, [[Finite-state machine|finite state machines]] are used to solve a prediction problem: these machines would be mutated (adding or deleting states, or changing the state transition rules), and the best of these mutated machines would be evolved further in future generations. The final finite state machine may be used to generate predictions when needed. The evolutionary programming method was successfully applied to prediction problems, system identification, and automatic control. It was eventually extended to handle time series data and to model the evolution of gaming strategies.<ref name=":0" /> In 1964, [[Ingo Rechenberg]] and [[Hans-Paul Schwefel]] introduce the paradigm of [[Evolution strategy|evolution strategies]] in Germany.<ref name=":0" /> Since traditional [[gradient descent]] techniques produce results that may get stuck in local minima, Rechenberg and Schwefel proposed that random mutations (applied to all parameters of some solution vector) may be used to escape these minima. Child solutions were generated from parent solutions, and the more successful of the two was kept for future generations. This technique was first used by the two to successfully solve optimization problems in [[fluid dynamics]].<ref name=":3">{{Citation |last=Fischer |first=Thomas |title=Kybernetische Systemanalyse Einer Tuchfabrik zur Einführung Eines Computergestützten Dispositionssystems der Fertigung |date=1986 |url=http://dx.doi.org/10.1007/978-3-642-71161-9_14 |work=DGOR |pages=120 |place=Berlin, Heidelberg |publisher=Springer Berlin Heidelberg |doi=10.1007/978-3-642-71161-9_14 |isbn=978-3-642-71162-6 |access-date=2022-05-06|url-access=subscription }}</ref> Initially, this optimization technique was performed without computers, instead relying on dice to determine random mutations. By 1965, the calculations were performed wholly by machine.<ref name=":0" /> [[John Henry Holland]] introduced [[genetic algorithm]]s in the 1960s, and it was further developed at the [[University of Michigan]] in the 1970s.<ref name=":4">{{Cite book |last=Mitchell |first=Melanie |url=http://dx.doi.org/10.7551/mitpress/3927.001.0001 |title=An Introduction to Genetic Algorithms |date=1998 |publisher=The MIT Press |doi=10.7551/mitpress/3927.001.0001 |isbn=978-0-262-28001-3}}</ref> 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. Populations of chromosomes, represented as bit strings, were transformed by an artificial selection process, selecting for specific 'allele' bits in the bit string. Among other mutation methods, interactions between chromosomes were used to simulate the [[Genetic recombination|recombination]] of DNA between different organisms. While previous methods only tracked a single optimal organism at a time (having children compete with parents), Holland's genetic algorithms tracked large populations (having many organisms compete each generation). By the 1990s, a new approach to evolutionary computation that came to be called [[genetic programming]] emerged, advocated for by [[John Koza]] among others.<ref name=":0" /> In this class of algorithms, the subject of evolution was itself a program written in a [[high-level programming language]] (there had been some previous attempts as early as 1958 to use machine code, but they met with little success). For Koza, the programs were [[Lisp (programming language)|Lisp]] [[S-expression]]s, which can be thought of as trees of sub-expressions. This representation permits programs to swap subtrees, representing a sort of genetic mixing. Programs are scored based on how well they complete a certain task, and the score is used for artificial selection. Sequence induction, pattern recognition, and planning were all successful applications of the genetic programming paradigm. 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 algorithm]]s and [[artificial life]] techniques were performed by [[Nils Aall Barricelli]] in 1953, with first results published in 1954.<ref>{{Cite journal |last=Barricelli |first=Nils Aall |date=1954 |title=Esempi Numerici di processi di evoluzione |journal=Methodos |pages=45–68}}</ref> Another pioneer in the 1950s was [[Alex Fraser (scientist)|Alex Fraser]], who published a series of papers on simulation of [[artificial selection]].<ref>{{cite journal |author=Fraser AS |year=1958 |title=Monte Carlo analyses of genetic models |journal=Nature |volume=181 |issue=4603 |pages=208–9 |bibcode=1958Natur.181..208F |doi=10.1038/181208a0 |pmid=13504138 |s2cid=4211563}}</ref> As academic interest grew, dramatic increases in the power of computers allowed practical applications, including the automatic evolution of computer programs.<ref>{{cite book |last=Koza |first=John R. |title=Genetic Programming: On the Programming of Computers by Means of Natural Selection |publisher=[[MIT Press]] |year=1992 |isbn=978-0-262-11170-6}}</ref> Evolutionary algorithms are now used to solve multi-dimensional problems more efficiently than software produced by human designers, and also to optimize the design of systems.<ref>G. C. Onwubolu and B V Babu, {{cite book |last1=Onwubolu |first1=Godfrey C. |url=https://www.springer.com/in/book/9783540201670 |title=New Optimization Techniques in Engineering |last2=Babu |first2=B. V. |date=2004-01-21 |publisher=Springer |isbn=9783540201670 |access-date=17 September 2016}}</ref><ref>{{cite journal |author=Jamshidi M |year=2003 |title=Tools for intelligent control: fuzzy controllers, neural networks and genetic algorithms |journal=[[Philosophical Transactions of the Royal Society A]] |volume=361 |issue=1809 |pages=1781–808 |bibcode=2003RSPTA.361.1781J |doi=10.1098/rsta.2003.1225 |pmid=12952685 |s2cid=34259612}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)