Difference between revisions of "Evolutionary algorithm"

From Lesswrongwiki
Jump to: navigation, search
(Possible superintelligence and shows variation in genetic algorithms to quickly demonstrate their viability)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{wikilink}}
 
{{wikilink}}
An '''Evolutionary algorithm''' is an algorithm which mimics biological evolution to develop a solution to a problem. Starting with a set of initial possible solutions and test criteria, the algorithm tests each solution, selects the most promising, duplicates, recombines and mutates them, repeating until a desired solution is found. Evolutionary algorithms have been applied in engineering, the financial market, chemistry, mathematics, and increasingly data mining.  
+
Within artificial intelligence, '''evolutionary algorithms''' refer to a set of programming methods that draw inspiration from concepts stemming from evolutionary biology. More specifically, they are algorithms capable of selecting the most appropriate solution (individual) from a large set (population) through the evaluation of its fitness (how well it adapts to the problem, the environment). Evolution thus takes place through the repetition of such selection.
  
There is great variety between evolutionary algorithms.Though at its simplest an evolutionary algorithm uses a single population, many variants use multiple populations and exchange individuals between them occasionally, similarly to nature. Individuals in each population are ranked relative to each other. Their reproduction is scaled to prevent an early success from dominating (not all paths always lead to the solution), usually with some randomness. Recombination can be an exchange of code or variable values in the same or different places, possibly with averaging of values or other mechanisms. Mutation is an exchange of values and code between places, the deletion of code and variables, Finally, individuals are displaced between populations and successful individuals can be duplicated.
+
The most basic evolutionary algorithm structure is quite simple:
  
It has been proposed that with enough computer power it would be possible to produce a [[superintelligence]] using a sufficiently complex evolutionary algorithm. This method does not require the understanding of intelligence  needed to create a [[AGI]] nor the scanning equipment needed to create a [[WBE]], and its consciousness or lack thereof might be impossible to identify. Furthermore, the development of an evolved superintelligence would be a large [[computational hazard]], from the suffering experienced by the developing superintelligences.
+
#Create an initial population of solutions (usually at random)
 +
#Start iteration (each step is a generation) 
 +
##Select some pairs to be parents (selection)
 +
##Combine pairs of parents to create offspring (recombination)
 +
##Perform some mutation(s) on the offspring (mutation)
 +
##Select some population members to be replaced by the new offspring based on their fitness to the environment (replacement)
 +
#Repeat
  
== References ==
+
 
 +
The use of this kind of programming has roots in the 1950s and has spread through many fields, from engineering, the financial market, chemistry, mathematics, and data mining. Nowadays there’s a great variety in evolutionary algorithms, ranging from simple genetic algorithms (seeking the solution through recombination or mutation) to neuroevolutionary algorithms (where the “genomes” are represented by artificial neural networks). They differ mainly in the amount of populations in use and the operators responsible for introducing change.
 +
 
 +
It seems possible that with enough computer power we would be able to produce a [[superintelligence]] using a sufficiently complex evolutionary algorithm. This method does not require the understanding of intelligence needed to create an [[AGI]] nor the scanning equipment needed to create a [[whole brain emulation]].
 +
 
 +
== Further Reading & References ==
 
*[http://www.talkorigins.org/faqs/genalg/genalg.html Genetic Algorithms and Evolutionary Computation] by Adam Marczyk
 
*[http://www.talkorigins.org/faqs/genalg/genalg.html Genetic Algorithms and Evolutionary Computation] by Adam Marczyk
*[http://www.geatbx.com/docu/algindex.html Evolutionary Algorithms 1 Introduction] by Hartmut Pohlheim
+
*[http://www.geatbx.com/docu/algindex.html Evolutionary Algorithms 1: Introduction] by Hartmut Pohlheim
 
*[http://dis.ijs.si/filipic/ec/ Evolutionary Computation Repository]
 
*[http://dis.ijs.si/filipic/ec/ Evolutionary Computation Repository]
 +
*Bäck, T., Fogel, D., Michalewicz, Z. (1997), Handbook of Evolutionary Computation, Oxford Univ. Press.
 +
*Yang X.-S., (2010), "Nature-Inspired Metaheuristic Algorithms", 2nd Edition, Luniver Press
  
 
== See Also ==
 
== See Also ==
 
*[[Evolution]]
 
*[[Evolution]]
 +
*[[Evolutionary psychology]]
 +
*[[Optimization process]]

Latest revision as of 04:45, 25 September 2012

Smallwikipedialogo.png
Wikipedia has an article about

Within artificial intelligence, evolutionary algorithms refer to a set of programming methods that draw inspiration from concepts stemming from evolutionary biology. More specifically, they are algorithms capable of selecting the most appropriate solution (individual) from a large set (population) through the evaluation of its fitness (how well it adapts to the problem, the environment). Evolution thus takes place through the repetition of such selection.

The most basic evolutionary algorithm structure is quite simple:

  1. Create an initial population of solutions (usually at random)
  2. Start iteration (each step is a generation)
    1. Select some pairs to be parents (selection)
    2. Combine pairs of parents to create offspring (recombination)
    3. Perform some mutation(s) on the offspring (mutation)
    4. Select some population members to be replaced by the new offspring based on their fitness to the environment (replacement)
  3. Repeat


The use of this kind of programming has roots in the 1950s and has spread through many fields, from engineering, the financial market, chemistry, mathematics, and data mining. Nowadays there’s a great variety in evolutionary algorithms, ranging from simple genetic algorithms (seeking the solution through recombination or mutation) to neuroevolutionary algorithms (where the “genomes” are represented by artificial neural networks). They differ mainly in the amount of populations in use and the operators responsible for introducing change.

It seems possible that with enough computer power we would be able to produce a superintelligence using a sufficiently complex evolutionary algorithm. This method does not require the understanding of intelligence needed to create an AGI nor the scanning equipment needed to create a whole brain emulation.

Further Reading & References

See Also