Solve / Algorithm engineering · Research competition

2026

PACE 2026 Solver Suite

Three specialised C++ solvers for the heuristic, exact and lower-bound tracks of the PACE Maximum Agreement Forest Challenge.

C++17KernelisationCluster DecompositionCaDiCaLHiGHSPhylogenetics
KEY SIGNAL3 competition tracks
Technical visualization for PACE 2026 Solver Suite
01

THE CHALLENGE

What needed to change.

Maximum Agreement Forest asks for a minimum-component forest shared by rooted evolutionary trees. The underlying combinatorial search grows rapidly with tree size and disagreement, so competitive solvers need strong structural reductions, useful bounds and carefully selected search strategies—not just more compute.

02

THE APPROACH

How I structured the solution.

I engineered a three-track C++ solver suite around shared phylogenetic structures and track-specific objectives. The system combines subtree and chain kernelisation, cluster decomposition, adaptive routing, greedy and anytime improvement, exact search, certificate-aware validation, and SAT/ILP-backed optimisation through CaDiCaL and HiGHS.

03

THE SOLVER FAMILY

One problem. Three competitive objectives.

Each track demands a different notion of success, so each repository has a distinct job inside the suite.

04

THE OUTCOME

What the work demonstrated.

The result is a complementary solver family: MAFia searches aggressively for high-quality feasible forests, ClusterLuck targets exact solutions, and CutSetGo computes defensible lower bounds. Together they demonstrate end-to-end algorithm engineering under strict correctness and runtime constraints.