Benchmarks for ojAlgo mathematical programming solvers, comparing against alternative Java and native solver integrations. Uses standard optimisation problem test sets and custom benchmark harnesses.
Benchmarks using the Netlib LP test set. Classes in org.ojalgo.benchmark.linear.netlib run the full Netlib suite with configurable problem size filters and solver selection. Test data is provided by the optimisation-models artifact.
Benchmarks using the Maros-Meszaros QP test set. Classes in org.ojalgo.benchmark.convex.marosmeszaros filter models by type (pure QP, separable) and size, and compare solvers against known optimal values.
Classes in org.ojalgo.benchmark.integer.miplib2017 benchmark the easy/benchmark subset of MIPLIB 2017. Includes staged benchmarks: parse files, solve relaxed LP, find feasible MIP solutions, and find optimal MIP solutions.
ojAlgo's built-in solvers are compared against integrations with:
| Solver | Type |
|---|---|
| HiGHS | Open source LP/MIP |
| Clarabel | Open source QP/conic |
| Hipparchus | Open source (Apache Commons Math successor) |
| JOptimizer | Open source QP |
| OR-Tools | Google's optimisation suite |
| CPLEX | Commercial LP/MIP/QP |
| Gurobi | Commercial LP/MIP/QP |
| Mosek | Commercial conic/LP/MIP |
mvn clean installEach benchmark has a main method. For example:
java -cp target/ojmpb.jar org.ojalgo.benchmark.linear.netlib.NetlibBenchmark
java -cp target/ojmpb.jar org.ojalgo.benchmark.convex.marosmeszaros.MarosMeszarosBenchmark
java -cp target/ojmpb.jar org.ojalgo.benchmark.integer.miplib2017.OptimalMIP