Octeract Engine is a massively parallel MINLP solver. It is written in ORL (Octeract Reformulation Language), a programming language we designed to build a new generation optimisation engine. The ORL compiler enables rapid development of high-performance algorithms.
The engine contains 14 Octeract solvers for different types of mathematical structure, each with their own algorithms, to a grand total of 1031 high-performance algorithms.
Supported Modeling Languages
Supported Programming Languages
Supported File Formats
What makes this MINLP solver different?
- Finds the global solution. Every time. Guaranteed.
- No need for starting points from the user
- Solves any math, including non-smooth & discontinuous
- No need for the user to provide derivatives
- Thousands of CPUs can be used on hard problems
- Has a presolver that reduces problem size
- Automatically detects convexity
- Automatically convexifies non-convex problems
- Automatically applies hundreds of mathematical tricks
- Solves (MI)LPs well too
Did you know?
import octeract as orl from octeract import Model m = Model() m.import_model_file("aircraft.nl") m.detect_convexity() # Reformulate all powers of binaries to binaries if not m.is_convex(): linearise_powers = (orl.Match('V(b)^P(a)') & orl.IsBinary('b')).then(orl.SubTerm('b')) m.apply_mod(linearise_powers) m.global_solve(cores=30, timeout=10)
% Feasible Solutions in CoconutLib
% Feasible Solutions in MINLPLib
% Feasible Solutions in QPLib
- Built-in high-performance symbolic engine that does math for the user
- Natively supports distributed computing through MPI
- Guarantees global optimality for any algebraic mathematical structure
- Parallel branch-and-bound for continuous and discrete problems
- Performs symbolic whole-problem transformations to solve easier versions of the input problem
- Contains 14 solvers that exploit different types of mathematical structure
- Applies dozens of heuristics, problem reduction, and domain reduction techniques
- It will classify your problem
- It will linearise your problem
- It will automatically detect whether your problem is convex/concave
import octeract m = Model() m.import_model_file("../aircraft.nl") m.global_solve(cores=30)
The Future of Optimisation
Octeract Engine is more than just a solver. It’s an entire environment.
The Engine works the way you work, allowing you to do what you do. Just better.
It cuts through complexity because it can do math, so you don’t have to.
Activate a frustration-free future with Octeract Engine. The power is at your fingertips.
Trial Us Out
Take the Engine for a test drive.
We’re here to lend an ear. Get in touch.