Genetic Algorithm Circuit Optimizer
A C++20 team coursework system combining circuit simulation, genetic optimisation, structural validity checks and reproducible seeded sweeps with optional robustness extensions.
Role
- Team contributor
- MSc group coursework
Stack
- C++20
- CMake
- OpenMP
- Python
- Genetic algorithms
- Graph analysis
Problem
Search a large space of encoded mineral-processing circuits for high simulated performance while rejecting structures that cannot produce valid, converged mass balances.
Constraints
- Candidate topologies must satisfy reachability, outlet and recycle constraints before expensive simulation.
- The simulator uses an iterative mass-balance solve, so structural validity does not guarantee numerical convergence.
- Stochastic optimisation comparisons require controlled seeds and repeated runs rather than isolated best cases.
- The work is team coursework and the portfolio repository is private.
My contribution
- Contributed within the team project spanning the genetic algorithm, simulator, validity analysis and reproducibility workflows.
- This case study keeps project outcomes team-attributed because the repository README does not identify individual ownership of specific modules.
Architecture / methodology
- Evolve validity-checked circuit vectors with selection, crossover, mutation, elitism and configurable stagnation stopping.
- Evaluate candidates through unit separation physics, an iterative mass-balance solver and economic fitness scoring.
- Compare baseline and extended modes using seeded sweep scripts, with optional tournament selection, mixed initialisation, graph-aware mutation and child repair.
- Keep experimental topology and numerical-stability checks disabled by default when their runtime cost outweighs early-rejection savings.
Evaluation
- Cover pseudo-random behaviour, GA operators, convergence, simulator physics, benchmarks and destination validity with CTest-backed executables.
- Record per-seed configuration, runtime, performance, validity, exit status and final circuit vectors for reproducible comparison.
- Treat experimental validity heuristics as opt-in findings rather than default improvements.
Results
- The team artefact provides a configurable optimiser, simulator, validity layer, diagnostics and repeatable post-processing workflows.
- The portfolio makes no unsupported claim about a final optimum, speed-up or individually owned result.
Evidence and links
The README identifies the project as 2025–2026 Imperial College London MSc group coursework and credits the work to the team.
Private portfolio repository READMEThe repository documents C++20 build requirements, simulator and GA tests, seeded sweep scripts and optional robustness extensions.
Private portfolio repository README