Foundations of Evolutionary Computing

What evolutionary algorithms are, where they came from, which parts of biology they borrow, how the structure of a problem shapes their search, and what they cannot promise.

Evolutionary computation is a family of search and optimization methods that keep a population of candidate solutions and improve it by repeated variation and selection. Candidates are scored by a fitness function. The better ones are more likely to be kept or to have offspring, and the offspring are copies changed by mutation or recombined from two parents. Nothing in the method requires a gradient, a closed-form model of the problem, or even a continuous search space. An evolutionary algorithm needs only a way to represent candidates, a way to vary them, and a way to compare them. That is why the same basic loop has been applied to tuning parameters, scheduling, designing antennas, writing programs, and growing neural networks.

The generality has a cost. An evolutionary algorithm knows nothing about a problem beyond what its representation, operators, and fitness function encode. Its success depends on whether that encoding makes good solutions reachable by small, mostly improving steps. This topic sets out the common framework before the rest of the course examines its variants. It defines the algorithm and its vocabulary, traces where the ideas came from, separates the biology the field borrows from the biology it ignores, and introduces the two ideas that explain most of what follows: the fitness landscape a search moves across, and the No Free Lunch theorems that limit what any search method can claim.

Articles

The algorithm

  • The evolutionary algorithm loop: representation, populations, parent and survivor selection, recombination and mutation, and termination, with a small run worked through generation by generation and a comparison of its cost with simpler methods.
  • History of evolutionary computation: early proposals by Turing, Box, and Bremermann; the separate schools of evolution strategies, evolutionary programming, and genetic algorithms; genetic programming; and how they merged into one field.

The analogy

  • Natural selection for computer scientists: heredity, variation, selection, genotype and phenotype, and genetic drift, and what an evolutionary algorithm keeps, simplifies, or discards from each.
  • Limits of the evolutionary metaphor: why natural evolution is not an optimizer, the critique of metaphor-driven metaheuristics, and the problems where evolutionary methods have earned their place.

Search and its limits

  • Fitness landscapes: Wright's adaptive landscape, neighborhoods defined by operators, local optima, neutrality, epistasis, and deception, measured on small benchmark problems.
  • No Free Lunch theorems: what Wolpert and Macready proved, why no algorithm beats random search averaged over all problems, and why that says little about the problems people actually solve.

What comes next

The course then moves from the general framework to particular algorithms. Local search starts with a single candidate and a hill climber, which shows the local-optimum problem that populations are meant to solve. Genetic algorithms add a population, crossover, and selection schemes. Multi-objective optimization handles problems with several competing objectives. Genetic programming evolves programs instead of parameter vectors, and neuroevolution evolves neural networks. Parallel and coevolutionary algorithms spread a population across machines, or evolve populations against each other. Evolution strategies adapt their own mutation distributions, and recent trends cover quality diversity, evolutionary robotics, and evolution guided by language models.

References

  • Eiben, A. E., and Smith, J. E. (2015). Introduction to Evolutionary Computing, 2nd ed. Springer.
  • Wolpert, D. H., and Macready, W. G. (1997). No free lunch theorems for optimization. IEEE Transactions on Evolutionary Computation, 1(1), 67–82.