Skip to content

optimatika/ojAlgo-mathematical-programming-benchmark

Repository files navigation

ojAlgo Mathematical Programming Benchmark (ojMPB)

Benchmarks for ojAlgo mathematical programming solvers, comparing against alternative Java and native solver integrations. Uses standard optimisation problem test sets and custom benchmark harnesses.

Problem test sets

Linear Programming -- Netlib

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.

Convex Quadratic Programming -- Maros-Meszaros

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.

Mixed-Integer Programming -- MIPLIB 2017

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.

Solvers compared

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

Building and running

mvn clean install

Each 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

About

oj! Mathematical Programming Benchmark

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors