Multi-objective search over an LLM repair pipeline
MSc dissertation. Tuning the decoding and retry policy of a four-stage multi-agent LLM pipeline for automated program repair under three competing objectives: correctness, complexity and energy.
- Random sampling beat NSGA-II on held-out correctness (Cliff's δ = 1, Holm-corrected p = 0.024).
- Selecting on training correctness raised held-out correctness by 3.4–5.2 points in every arm–benchmark cell.
- Correctness rankings transferred from C to Python (ρ = 0.63 over 665 policies); energy rankings did not.
Python / Ollama · qwen2.5-coder 1.5B / pymoo / BoTorch / GPyTorch / Intel RAPL
- NSGA-II
- MOBO (qLogNEHVI)
- Random search
- dominated region, pooled front
Data: 2-D fronts
| arm | test-pass | energy (mJ) |
|---|---|---|
| NSGA-II | 0.389 | 15.31 |
| NSGA-II | 0.392 | 15.34 |
| NSGA-II | 0.414 | 15.64 |
| NSGA-II | 0.502 | 15.66 |
| NSGA-II | 0.519 | 16.25 |
| NSGA-II | 0.543 | 16.38 |
| NSGA-II | 0.567 | 16.58 |
| NSGA-II | 0.571 | 16.72 |
| NSGA-II | 0.606 | 16.86 |
| NSGA-II | 0.616 | 18.00 |
| NSGA-II | 0.638 | 18.43 |
| MOBO (qLogNEHVI) | 0.274 | 14.96 |
| MOBO (qLogNEHVI) | 0.496 | 15.45 |
| MOBO (qLogNEHVI) | 0.575 | 16.09 |
| MOBO (qLogNEHVI) | 0.607 | 17.15 |
| MOBO (qLogNEHVI) | 0.616 | 17.57 |
| MOBO (qLogNEHVI) | 0.618 | 17.61 |
| MOBO (qLogNEHVI) | 0.619 | 17.73 |
| MOBO (qLogNEHVI) | 0.638 | 18.11 |
| MOBO (qLogNEHVI) | 0.639 | 19.10 |
| Random search | 0.379 | 15.43 |
| Random search | 0.504 | 15.65 |
| Random search | 0.521 | 15.96 |
| Random search | 0.538 | 16.19 |
| Random search | 0.579 | 16.23 |
| Random search | 0.611 | 17.26 |
| Random search | 0.622 | 17.64 |
| Random search | 0.626 | 18.33 |
| Random search | 0.636 | 18.48 |
4 seeds per arm (reps 1–4, one energy epoch) · 545 policies · 9 beyond 22 mJ not shown · reference point (22 mJ, 0.1) · source @ 3ad0d48