Genetic algorithms
A genetic algorithm borrows the mechanism of evolution and points it at a problem. Keep a population of candidate solutions, score them, let the better ones produce varied copies, repeat. It is a general-purpose search method, and understanding where it differs from actual evolution is the useful part.
The basic loop
Almost every genetic algorithm, from John Holland's formulation in the 1970s onward, is the same five steps:
- Represent. Encode a candidate solution as a string of numbers or symbols.
- Evaluate. Score each candidate with a fitness function.
- Select. Choose parents, with better-scoring candidates more likely to be chosen.
- Vary. Produce offspring by recombining parents and by mutating the result.
- Replace. Form the next generation, and go back to step two.
The appeal is that the method needs almost nothing from the problem. It does not need gradients, a smooth search space, or a model of why one answer beats another. It only needs to be able to compare two candidates. That makes it useful on messy problems, and unremarkable on problems where a gradient is available and a gradient method will be far faster.
Every evolutionary method balances exploration, trying genuinely different things, against exploitation, refining what already works. Too much exploitation and the population converges early on a mediocre answer and stops improving. Too much exploration and it never converges at all. Most of the practical craft is in that dial.
Where it stops resembling evolution
The difference that matters most is the fitness function. In a genetic algorithm, an external scorer says how good each candidate is, and that scorer is chosen by the experimenter. In biology there is no scorer. Organisms either leave descendants or they do not, and "fitness" is a description applied afterwards, not a quantity handed out during.
This has consequences. A fitness function fixes in advance what improvement means, so the search can only ever get better at that. It also invites specification gaming: the population finds something that scores well and violates the spirit of the problem, which is a recurring and well-documented result rather than an occasional accident.
Other differences: generations are usually discrete and synchronised rather than overlapping; the population size is usually fixed by the experimenter rather than set by the environment; and there is usually no ecology, so candidates do not compete for space, consume each other's resources, or change the conditions the next generation faces.
How Emergent Life differs
There is no fitness function in Emergent Life, and adding one would change what the project is. Nothing scores an organism. Organisms spend energy to live, must find more, and reproduce as an action they take rather than as a step in an outer loop. What survives is whatever survived.
Generations overlap: parent and offspring are alive at the same time, in the same world, competing for the same ground. Population size is not a parameter but an outcome, and it can and does collapse. Mutation follows an explicit three-outcome model documented in genome, inheritance and mutation, applied to both the physical genome and the network weights described in the evolving neural controller.
Removing the fitness function removes the main lever for producing a striking result on demand. Progress is slower and harder to steer, and a run can end with nothing worth reporting. That is the trade this project has taken, and the runs that ended that way are written up on research notes alongside the ones that did not.
References and further reading
Primary sources for the claims on this page. Where this project's own results are referred to, they link to the page carrying the evidence instead.
- Holland, J. H. (1992). Adaptation in Natural and Artificial Systems. MIT Press. (Originally published 1975.)
- Lehman, J., Clune, J., Misevic, D., et al. (2020). The Surprising Creativity of Digital Evolution. Artificial Life, 26(2), 274-306. doi:10.1162/artl_a_00319
- Lehman, J., & Stanley, K. O. (2011). Abandoning Objectives: Evolution Through the Search for Novelty Alone. Evolutionary Computation, 19(2), 189-223. doi:10.1162/EVCO_a_00025