Evolutionary Computation

Overview


Evolution

The Algorithm of Life



Evolutionary Algorithm




Same pattern for (almost) all evolutionary methods

Artifical Evolution in Action



Historical perspective


  • Evolutionary Strategies
    • developed by Rechenberg, Schwefel, etc. in 1960s
    • focus: real-valued parameter optimization
  • Evolutionary Programming
    • developed by Fogel et al in 1960s
    • focus: evolve intelligent behavior with Finite State Machines
  • Genetic Algorithms
    • developed by Holland in 1960s
    • focus: robust, adaptive systems, reproduction via mutation and recombination
  • Genetic Programming
    • developed by Koza in 1988
    • focus: evolution of programs

Applications


  • Software design
  • Robotics and hardware design
  • Biology and bioinformatics
  • Management, scheduling
  • Economics, trading systems
  • and more


Well-known algorithms


  • CMA-ES
    • Covariance Matrix Adaptation Evolutionary Strategy
    • Continuous optimization
  • NSGA-II
    • Non-dominated Sorting Genetic Algorithm II
    • Multi-objective optimization
  • NEAT
    • Neuroevolution of Augmenting Topologies
    • Evolution of neural networks
  • MAP-Elites
    • Illuminating Search Spaces by Mapping Elites
    • Evolution of behavior

Resources


Evolutionary computation methods in many languages



and many many more

In this class

  1. Genetic Algorithms: Mutation, Crossover, TSP
  2. Evolutionary Algorithms: 1+1, 1+lambda
  3. Evolutionary Strategies: Continuous optimization
  4. Neuroevolution: Neural network optimization with ES
  5. Multi-Objective Optimization: NSGA-II
  6. Behavior and Novelty: behavioral diversity, novelty search and Quality Diversity
  7. Genetic Programming: Tree-based representation
  8. Symbolic Regression: Data function optimization


Evogym project: Form and policy

Not in this class




The GECCO (Genetic and Evolutionary Computation Conference) Proceedings include excellent tutorials on many of these subjects for further reading.

Exercise



Break into groups and discuss:

What drives selection in biological evolution? Can these selection pressures be expressed, quantified, or measured? How can we replicate selection pressures in artificial evolution?