Our new X account is live! Follow @wizwand_team for updates
WorkDL logo mark

OSQP: An Operator Splitting Solver for Quadratic Programs

About

We present a general-purpose solver for convex quadratic programs based on the alternating direction method of multipliers, employing a novel operator splitting technique that requires the solution of a quasi-definite linear system with the same coefficient matrix at almost every iteration. Our algorithm is very robust, placing no requirements on the problem data such as positive definiteness of the objective function or linear independence of the constraint functions. It can be configured to be division-free once an initial matrix factorization is carried out, making it suitable for real-time applications in embedded systems. In addition, our technique is the first operator splitting method for quadratic programs able to reliably detect primal and dual infeasible problems from the algorithm iterates. The method also supports factorization caching and warm starting, making it particularly efficient when solving parametrized problems arising in finance, control, and machine learning. Our open-source C implementation OSQP has a small footprint, is library-free, and has been extensively tested on many problem instances from a wide variety of application areas. It is typically ten times faster than competing interior-point methods, and sometimes much more when factorization caching or warm start is used. OSQP has already shown a large impact with tens of thousands of users both in academia and in large corporations.

Bartolomeo Stellato, Goran Banjac, Paul Goulart, Alberto Bemporad, Stephen Boyd• 2017

Related benchmarks

TaskDatasetResultRank
Quadratic ProgrammingMaros & Mészáros
Solve Time0.00e+0
52
Quadratic Program SolvingQPLIB 15 (test)
Solving Time (s)0.105
24
Quadratic ProgrammingMaros–Meszáros (test)
Failure Rate44.7
12
Inference Time EstimationConvex small
Median Latency6.00e-4
10
Inference Time EstimationConvex large
Median Time60.3
10
Optimization Solver Inference TimeNon-convex small (test)
Median Latency0.0334
8
Optimization Solver Inference TimeNon-convex large (test)
Inference Time (Median)10.159
8
Constrained Quadratic ProgrammingConstrained QP 100 variables, 50 equality constraints, 30 inequality constraints
Objective Value-16.33
7
Constrained Quadratic ProgrammingConstrained QP 100 variables, 50 equality constraints, 50 inequality constraints
Objective Value-15.05
7
Constrained Quadratic ProgrammingConstrained QP 100 variables, 50 equality constraints, 130 inequality constraints
Objective Value-12.73
7
Showing 10 of 16 rows

Other info

Follow for update