All selected projectsBack to homepage
Coursework2025–2026

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 README
  • The repository documents C++20 build requirements, simulator and GA tests, seeded sweep scripts and optional robustness extensions.

    Private portfolio repository README