Introduction
PolynomialOptimization
is a Julia package that allows to easily optimize large-scale polynomial optimization problems (currently commutative only). It builds on MultivariatePolynomials
to provide a concise interface for the specification of the problem and allows to directly control the problem's sparsity using correlative sparsity, (chordal) term sparsity, and a combination of both. It also supports complex-valued problems and positive semidefinite constraints, and allows to extract solutions even for sparse problems. It provides a solver interface specifically designed for the optimization problems arising in polynomial optimization. This interface makes it easy to implement new solvers. On purpose, MathOptInterface
/JuMP
is not employed; despite JuMP
being very performant for a modelling framework, it introduces a significant overhead that is omitted in this way. The following solvers are supported:
- Clarabel
- COPT
- Hypatia
- Loraine (own implementation)
- LoRADS
- LANCELOT (not based on relaxations)
- Mosek
- ProxSDP
- SCS
- Sketchy CGAL (own implementation)
- SpecBM Primal (own implementation)