Octeract Engine

Octeract Engine is a proprietary massively parallel deterministic global optimization solver for general Mixed-Integer Nonlinear Programs (MINLP). It uses MPI as a means of accelerating solution times.[1] It is notable for its parallelism and for ranking ahead of all other global MINLP solvers in the Mittelmann MINLP benchmark.[2] As of January 2023, it is also the first solver to ever solve 99% of problems in this benchmark.[3]

Octeract Engine
Developer(s)Octeract
Stable release
4.6.0
TypeTechnical computing
LicenseSubscription
Websiteocteract.gg

History

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

Performance

Octeract Engine exhibits world-class performance on a single thread, and also has the ability to speed up these single thread solution times by many times through supercomputing.

In July 2022 it ranked first on the single thread Mittelmann MINLPLIB benchmark.[5] As of January 2023 this benchmark is run with four threads.

As of August 2022 it is the first and only solver to solve the largest open transmission switching problems in the industry standard MINLPLIB[2] library, namely transswitch2736spp[6] and transswitch2736spr.[7]

In January 2023, it became the first solver to ever solve 99% of problems in this benchmark, followed by BARON (84%), and SCIP (74%).[3]

Features

Octeract Engine is predominantly a branch-and-bound solver, although it has been known to use other specialized techniques to exploit special structure, such as the Sherali-Smith reformulation.[8][9] Some of its features are:[10]

  • Distributed computing through MPI
  • Supports discontinuous elementary functions (e.g. min and max)
  • Supports trigonometric functions
  • Guarantees global optimality
  • Reformulation of user input
  • Detection of special structure
  • Guaranteed calculations through interval arithmetic and arbitrary-precision arithmetic

Supported problem types

Problem type (MI)LP (MI)SDP (MI)QP (MI)QCP (MI)QCQP (MI)NLP D(MI)NLP Black-box
Solves Continuous Yes No Yes Yes Yes Yes Yes No
Solves Mixed-Integer Yes No Yes Yes Yes Yes Yes No
Solves Convex Yes No Yes Yes Yes Yes Yes No
Solves Non-convex N/A N/A Yes Yes Yes Yes Yes No

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:[10]

The engine also interfaces to the following solvers:

Limitations

Like all deterministic global optimization software, Octeract Engine requires the explicit mathematical expressions for all functions used in the problem.

See also

References

  1. "Octeract Engine documentation". octeract.gg. Octeract. Retrieved 27 January 2023.
  2. "A Library of Mixed-Integer and Continuous Nonlinear Programming Instances". Minlplib. 2022-10-14. Retrieved 2023-01-27.
  3. "Visualisation of Mittelmann Benchmark". mattmilten.github.io. Matthias Miltenberger. Retrieved 27 January 2023.
  4. "Octeract Credits". octeract.gg. Octeract. Retrieved 27 January 2023.
  5. "MINLP Benchmark July 2022". mattmilten.github.io. Matthias Miltenberger. Retrieved 27 January 2023.
  6. "Transswitch2736spp solution". minlplib.org. MINLPLIB. Retrieved 27 January 2023.
  7. "Transswitch2736spr solution". minlplib.org. MINLPLIB. Retrieved 27 January 2023.
  8. "BQP Reformulation Procedure". octeract.gg. Octeract. Retrieved 27 January 2023.
  9. Sherali, Hanif D.; Smith, J. Cole (2006). "An improved linearization strategy for zero-one quadratic programming problems". Optimization Letters. 1 (1): 33–47. doi:10.1007/s11590-006-0019-0.
  10. Octeract Engine User Manual, 27 Jan 2023, retrieved 27 Jan 2023
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.