03 · The evidence

Every number was produced by a command, and the CSV is named.

docs/BENCHMARKS.md is generated from bench/results/ by a script, so it cannot drift. Each CSV records the instance, its SHA-256, our objective, the published value, the gap, status, wall time, iterations, the commit and the machine.

Linear programs

Netlib, and the cross-check against HiGHS.

Netlib, full setnetlib-full-b3f1660.csv
80 / 89
Netlib, medium tiernetlib-medium-2b4eb6b.csv
48 / 50
Netlib, small set (demo)netlib-small-2b4eb6b.csv
9 / 9
HiGHS agreement, medium tiercompare-highs-medium-bf3df02*.csv
50 / 50
Of the 9 full-set non-passes: 8 where Netlib's own table is the outlier and our answer verifies as optimal, agreeing with HiGHS; 1, maros-r7, is ours, a time limit inside a basis factorization.1 HiGHS runs as a separate process; our wall time is 2.0x to 2.1x its wall time over three runs an hour apart.2
Integer and large

MIPLIB, Mittelmann, robustness.

MIPLIB easy, reach published optimummiplib-b3f1660.csv · 60 s
14 / 30
MIPLIB easy, prove itsame CSV
9 / 30
Mittelmann, 8 smallest LPs, dual simplexmittelmann-e134aeb.csv · 300 s
0 / 8
Mittelmann, same eight, first-order enginemittelmann-pdhg-d24662f.csv · 300 s
2 / 8
Mittelmann, same eight, interior pointmittelmann-ipm-d24662f.csv · 300 s
0 / 8
Robustness hazards demonstratedbench/runners/robustness.py
3 / 3
Mittelmann is where the solver stops today: the default simplex finishes none of the eight, the first-order engine two (chromaticindex1024-7 in 1.2 s, brazil3 in 127 s, both verified), the interior point none, with two out-of-memory crashes named in the CSV.4 Robustness: exact rank checked over the rationals on a degenerate model, condition number 2.1e+30 with the objective provably unmoved, a 33.8% integrality gap closed.3
Scale

To a million rows, with the optimum exact by construction.

A fixed budget of 1,000 first-order iterations, which removes the machine from the claim. The error does not grow with the model; only the cost per iteration does. Under a 120 s clock the same engine reaches 100,000 × 100,000 to 1.1e-07 and certifies 5,000 × 5,000 in 54 s.5

32,485rows of the daily refinery year solved exactly by the interior point in 68 sscale-refinery-e134aeb.csv
779,640rows of the hourly year reached by PDHG to 1.0e-06, proved by nothing: 6 of 9 solvessame family, 8,760 periods
10^310^410^510^6 rows = columns, random family 1e-31e-51e-71e-9 polished by the interior point: 1.9e-10 1,000 iterations, no clock
Random family, fixed iteration budget.6 The green point is the same 1,000-row model after the interior point finishes from PDHG's own point.
Reproduce

One command regenerates this page's numbers.

git clone https://github.com/thegoodengineers/SANKHYA
cd SANKHYA
scripts/reproduce.sh

Builds, runs 750 tests, the Netlib benchmark with verification, the HiGHS comparison and the PS26119 walkthrough, offline. Any step that cannot run on your machine says why and is listed again at the end, so a shorter run is never mistaken for a passing one. Commit hashes in the CSV names identify the exact solver that produced each number.

Sources

The files behind this page.

All in bench/results on main. The seven-character suffix is the commit of the solver that produced the file.

  1. netlib-full-b3f1660.csv, netlib-medium-2b4eb6b.csv, netlib-small-2b4eb6b.csv: the Netlib pass counts, every pass also accepted by the independent checker.
  2. compare-highs-medium-bf3df02*.csv: three runs of the HiGHS comparison, an hour apart, same 50 models.
  3. bench/runners/robustness.py: the three robustness hazards and the numbers they print.
  4. mittelmann-e134aeb.csv, mittelmann-pdhg-d24662f.csv, mittelmann-ipm-d24662f.csv, miplib-b3f1660.csv: the eight smallest Mittelmann LPs at 300 s under each of the three engines, and the MIPLIB easy set at 60 s.
  5. scale-e134aeb.csv, scale-refinery-e134aeb.csv: the generated families under a 120 s clock and the refinery year.
  6. scale-iterations-bf3df02.csv: a fixed 1,000 iterations of the first-order engine from one thousand to one million rows.