Solver Integrations

ojAlgo's ExpressionsBasedModel is solver-agnostic: the formulation is not tied to the engine that solves it. Optimatika maintains a set of integration modules connecting that model to external solvers, all in a single repository — ojAlgo-extensions.

This integration work is also what the Optimisation Service is built on. The Service draws on the open source, licence-compatible modules; which of them it uses is an implementation detail that changes as solvers improve, and no specific solver is promised. Commercial solvers are not part of it.

All the modules — commercial integrations included — are available directly to Optimatika Subscription holders, together with the right to request new builds against current solver versions. An integration module is not a solver licence: the commercial modules let you reach a solver you have already licensed from its vendor, and do not come with one.

Commercial solvers

The leading commercial solvers offer the highest performance, especially on large MIP models where they are meaningfully ahead of any open source alternative. They are the industry standard for a reason.

The costs are not only the licence fee. Pricing is usually quote-gated, so you may not know it until you talk to sales. The solvers themselves are native code, so platform-specific binaries have to be packaged and deployed alongside your Java application. Licence servers or licence files must be managed, and licence terms can restrict how and where the software runs.

ModuleSolverTypesStatus
ojAlgo-cplexIBM ILOG CPLEXLP, QP, MIPReleased
ojAlgo-gurobiGurobiLP, QP, MIPReleased
ojAlgo-mosekMOSEKLP, QP, MIPReleased
ojAlgo-xpressFICO XpressLP, QP, MIPPlanned
ojAlgo-coptCOPTLP, QP, MIPPlanned

Other Java solver libraries

There are a few other pure Java solver libraries, and ojAlgo has integrations for them so they can be tried as drop-in alternatives.

In practice ojAlgo outperforms all of them, both in speed and in the number of models solved successfully. Hipparchus is the most capable alternative and still fails on roughly half the standard LP test models. Commons Math is older and more limited — Hipparchus is its maintained fork — and JOptimizer's QP work is largely superseded by ojAlgo's own.

ModuleSolverTypesLicenceStatus
ojAlgo-hipparchusHipparchusLP, QPApache 2.0Released
ojAlgo-commons-math3Apache Commons MathLPApache 2.0Released
ojAlgo-joptimizerJOptimizerQPApache 2.0Released
ojAlgo-ssclpSSC-LPLP, MIPGPLv3In development — GPL is incompatible with ojAlgo's MIT licence, so no release

Open source native solvers

When models grow past what pure Java can do, open source native solvers are a strong option. HiGHS has become the leading open source solver for LP, QP and MIP, and OR-Tools bundles Google's GLOP simplex solver alongside CP-SAT and other algorithms.

The cost here is deployment complexity rather than money. These are C, C++ or Rust libraries that must be compiled or packaged as platform-specific binaries for every target environment. JNI or Foreign Function calls bridge the JVM and the native code, adding a layer that can be fragile across JDK versions, and debugging at that boundary is harder than debugging pure Java.

This is the work the Optimisation Service exists to absorb.

ModuleSolverTypesLanguageStatus
ojAlgo-highsHiGHSLP, QP, MIPC++Released
ojAlgo-ortoolsGoogle OR-Tools / GLOPLP, MIPC++Released
ojAlgo-clarabel4jClarabel via clarabel4jQPRustReleased
ojAlgo-clarabelClarabelQPRustIn development
ojAlgo-scipSCIPLP, QP, MIPCIn development

Status and access

Released modules are on Maven Central. In development modules are in the repository but not yet released. Planned modules are not yet started.

The ojAlgo-extensions repository also holds integrations that are not solvers — JFreeChart and RocksDB among them.

Access to the repository, and the right to request new builds of any module against current solver versions, comes with an Optimatika Subscription.

See the Optimisation Service