Octeract Engine

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.

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?
The Engine:
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
Technical Features
- 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
User Experience
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 maths, so you don’t have to.
Activate a frustration-free future with Octeract Engine. The power is at your fingertips.
Follow Us
Trial the Engine
Contact Us