fbpx

Octeract Engine

logo-Engine-resized

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

 

JuMP logo
GAMS Trans
Mosel

 

Supported Programming Languages

C++ new
Julia resized

Supported File Formats

.nl
.lp
.mps

 

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:

is benchmarked by an independent third party
comes with a unique reformulation language
natively supports supercomputing
solves 80% of all library problems in under 30 seconds
speeds up linearly with more CPUs

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)

94

% Feasible Solutions in CoconutLib

86

% Feasible Solutions in MINLPLib

80

% Feasible Solutions in QPLib

Technical Features

What are the Engine’s main 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
How does the Engine work?
  • 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

 

Three tricks the Engine can perform in under five seconds
  • It will classify your problem
  • It will linearise your problem
  • It will automatically detect whether your problem is convex/concave

User Experience

User-friendly Python API
Automatically makes your math solver-friendly
Converts file formats seamlessly
Solves all problems well. No solver-switching needed.

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.

 

Trial the Engine

Contact Us

Plexal, 14 East Bay Lane, London, E15 2GW