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.
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.
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.
- Genetic Algorithms and Evolutionary Computation by Adam Marczyk
- Evolutionary Algorithms 1 Introduction by Hartmut Pohlheim
- Evolutionary Computation Repository