# Octeract Engine

Octeract Engine is a proprietary massively parallel deterministic global optimization solver for general Mixed-Integer Nonlinear Programs (MINLP).
The solver is designed to work in parallel on a distributed environment. It is optimized for succeeding in synthetic benchmark sets. The latest world records were set in April 2023, when it became the first optimization solver to ever solve all problems in the benchmark, with a world record setting unscaled shifted geometric mean of 36.8.

## History

Octeract Engine was developed by Nikos Kazazakis and Gabriel Lau. The first public beta version of Octeract Engine was released in August 2019, and it came out of beta in August 2020.

## Performance

On 23 July 2022 it ranked first on the single thread Mittelmann MINLPLIB benchmark. This lead has been maintained for all releases of Octeract Engine hence.
As of August 2022 it is the first and only solver to solve the largest open transmission switching problems in the industry standard MINLPLIB library, namely transswitch2736spp and transswitch2736spr.

### World records

Octeract Engine currently holds two world records in MINLP benchmarks. The first world record, set on 20 April 2023, is in number of problems solved (100%). The second world record, also set on 20 April 2023, is the smallest unscaled shifted geometric mean ever achieved for this test set, which was 36.8. The runner-ups achieved means of 138.2 (BARON) and 380.5 (SCIP), with Couenne ranking last with a mean of 3304.4.

#### World record history

On 27 October 2022 Octeract Engine set its first world record by solving more 91% of problems in the benchmark, which was more than any solver had ever been able to solve by that time. This record has yet to be broken by any other solver as of 21 April 2023.
In January 2023, it became the first solver to solve 99% of problems in this benchmark.
In April 2023, it became the first solver to solve 100% of problems in this benchmark.
* MINLPLIB Benchmark results July 2022
* MINLPLIB Benchmark results October 2022
* MINLPLIB Benchmark results January 2023
* MINLPLIB Benchmark results April 2023

## Features

Octeract Engine is a suite of numerous solvers and techniques which are invoked automatically, or at the user's discretion. It features parallel branch-and-bound solvers, numerous local heuristics which can be invoked independently of global optimization, as well as numerous specialized techniques to exploit special structure, such as the Sherali-Smith reformulation.
Other notable features include:
* Distributed computing through MPI
* High degree of configurability with more than 100 options
* Supports discontinuous elementary functions (e.g. min and max)
* Supports trigonometric functions
* Can guarantee global optimality
* Reformulation of user input
* Detection of special structure
* Automatic problem classification
* Guaranteed calculations through interval arithmetic and arbitrary-precision arithmetic
* Powerful local solver capabilities through its LOCAL_SEARCH mode

## File formats

Octeract Engine can read and write .nl, .lp and .mps files.

## Interfaces

Octeract Engine can be run directly or invoked as a C++ library. It supports the following modelling languages:
* AMPL
* ASL
* GAMS
* JuMP
* Pyomo
The engine also interfaces to the following solvers:
* CPLEX
* CBC
* CLP
* IPOPT