Master's dissertation
Comparing Learning Techniques for Multi-Agent Navigation in Procedurally Generated Cities
Evolving cars that can cross a city they've never seen.
Comparing Learning Techniques for Multi-Agent Navigation in Procedurally Generated Cities logo

My fourth year project, and the sequel to the one below: instead of reinforcement learning, a genetic algorithm evolves a population of cars to cross a procedurally generated city. Each leaves a trail of breadcrumbs, borrowed from ant pheromones, so the population spreads out instead of following one route.

Reviving it in 2026, I found out why it had never really worked. The network was fed raw sensor values on wildly different scales, so the largest drowned out the rest. Scaling the inputs and the initial weights took it from reaching the target 0.2 times a generation to 261, in cities it had never seen.

Two surprises: smaller networks beat bigger ones, because every mutation does more damage to a larger genome, and the best scorer in training was one of the worst drivers. The car in the demo was picked by replaying candidates across a hundred unseen cities.

Built with

  • Genetic Algorithms
  • Neural Networks
  • Procedural Generation
  • Unity
  • C#