February 13, 2020 | Bartolomeo Stellato, Goran Banjac, Paul Goulart, Alberto Bemporad, and Stephen Boyd
The paper presents OSQP, a general-purpose solver for convex quadratic programs (QPs) based on the alternating direction method of multipliers (ADMM). The solver employs a novel operator splitting technique that requires solving a quasi-definite linear system with the same coefficient matrix at almost every iteration. This approach is robust and does not impose strict requirements on the problem data, such as positive definiteness of the objective function or linear independence of the constraint functions. OSQP can be configured to be division-free once an initial matrix factorization is performed, making it suitable for real-time applications in embedded systems. Additionally, the solver can detect primal and dual infeasibility from the algorithm iterates, and supports factorization caching and warm starting, making it efficient for solving parametrized problems in finance, control, and machine learning. The open-source C implementation of OSQP is small, library-free, and has been extensively tested on various problem instances. Numerical results show that OSQP is typically ten times faster than competing interior-point methods and can provide significant time reductions when using warm starting or factorization caching. OSQP has gained widespread adoption, with tens of thousands of users in both academic and corporate settings.The paper presents OSQP, a general-purpose solver for convex quadratic programs (QPs) based on the alternating direction method of multipliers (ADMM). The solver employs a novel operator splitting technique that requires solving a quasi-definite linear system with the same coefficient matrix at almost every iteration. This approach is robust and does not impose strict requirements on the problem data, such as positive definiteness of the objective function or linear independence of the constraint functions. OSQP can be configured to be division-free once an initial matrix factorization is performed, making it suitable for real-time applications in embedded systems. Additionally, the solver can detect primal and dual infeasibility from the algorithm iterates, and supports factorization caching and warm starting, making it efficient for solving parametrized problems in finance, control, and machine learning. The open-source C implementation of OSQP is small, library-free, and has been extensively tested on various problem instances. Numerical results show that OSQP is typically ten times faster than competing interior-point methods and can provide significant time reductions when using warm starting or factorization caching. OSQP has gained widespread adoption, with tens of thousands of users in both academic and corporate settings.