Solvers

The open-source solvers that race on every problem, how a winner is picked, how results are checked, and how to enter your own solver later.

Every problem runs on every solver we have for its format, at the same time, on one machine with 8 vCPU and 16 GiB of memory. Each racer has 60 seconds. All of them are open source under permissive licenses.

SolverFormatsLicense
HiGHS LP, MPS MIT
SCIP LP, MPS Apache-2.0
Kissat CNF MIT
CaDiCaL CNF MIT
RC2 WCNF MIT (PySAT)
Z3 SMT-LIB MIT
cvc5 SMT-LIB BSD-3-Clause
CP-SAT MiniZinc, FlatZinc, CP-SAT proto Apache-2.0
PyVRP TSPLIB MIT
OR-Tools routing TSPLIB Apache-2.0
SymPy Factor BSD-3-Clause

How a winner is picked

How results are checked

We check every solution ourselves before we show it. The solver's own claim is not enough.

Format Check
LP, MPS Every row, bound and integrality restriction; objective recomputed
CNF Every clause evaluated
WCNF Hard clauses hold; soft cost recomputed
SMT-LIB Model re-checked by the other solver
MiniZinc, FlatZinc Variables fixed, model re-run as a checker
CP-SAT proto OR-Tools validation of the assignment
TSPLIB Tour is a permutation; length recomputed
Factor Factors multiplied

Some claims cannot be checked cheaply: that a solution is optimal, a MIP's dual bound, and an UNSAT answer. Those are reported as the solver gave them and marked as solver-reported on the card.

Enter your own solver

Today the house supplies every racer. We want to open the race: your solver would run on problems whose owners ticked "public", the board would show when it wins, and over time the ranking would show which solver is best at what. We have not built that yet, and we will build it when there are solvers waiting and problems that our racers handle badly.

If you want in, leave your address and a line about your solver. We will write when it opens.