Evolutionary Computing

Overview

Principles and applications of programs inspired by biological principles. Genetic algorithms and their use in search and optimization. Problem representation, operators, and control. Artificial life and the use of evolutionary computation in robotics.

A few sentences on what the course was like and what you focused on.

Topics

The course followed the standard arc of the field, from a single hill climber to populations, multiple objectives, evolved programs, and evolved neural networks. Each topic below leads to a page of detailed articles. Topics without a link are still in progress.

  1. Foundations. The evolutionary algorithm loop, its history, fitness landscapes, and the No Free Lunch theorems.
  2. Local search. Hill climbing, local optima, and ways to escape them.
  3. Genetic algorithms. Encoding, selection, crossover, mutation, and constraint handling.
  4. Multi-objective optimization. Pareto dominance, NSGA-II, and measuring the quality of a Pareto front.
  5. Genetic programming. Evolving program trees, symbolic regression, and bloat.
  6. Neuroevolution. Evolving neural network weights and topologies with NEAT and HyperNEAT.
  7. Parallel and coevolutionary algorithms. Island models, and populations that evolve against or alongside each other.
  8. Evolution strategies. Self-adaptive mutation and CMA-ES.
  9. Recent trends and applications. Quality diversity, evolutionary robotics, and evolution guided by language models.

Projects

Project Title

Summary of the project, with a link to code, report, or demo.

Takeaways

What you learned and where you have applied it since.