This is my take on optimizing traffic light controls as a discrete type problem with genetic algorithms.
Setup and run instructions live in the src/docs/ folder. Pick the guide that matches your environment:
- Docker setup — build and run everything inside Docker.
- Linux setup — run directly with Python 3 on Linux (no Docker).
- Pipeline — Custom Optimizer (LT-OM Algorithm) — end-to-end walkthrough of the Custom Linkage-Tree Optimal Mixing optimizer.
- Pipeline — SHADE with Cluster Crossover (v3) — end-to-end walkthrough of SHADE with cluster crossover.
- Novel Bin-Crossing Crossover (v3) — the walk-decomposition cluster crossover used in place of SHADE's binomial crossover.
- Traffic Light Normalisation & Pair-wise Mutation — how raw gene values become a valid 90 s cycle, and how pair-wise mutation works.