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.
Description
OSQP: An Operator Splitting Solver for Quadratic Programs
%0 Journal Article
%1 stellato2017operator
%A Stellato, Bartolomeo
%A Banjac, Goran
%A Goulart, Paul
%A Bemporad, Alberto
%A Boyd, Stephen
%D 2017
%J Mathematical Programming Computation
%K 65k05-numerical-mathematical-programming-methods 65k10-numerical-analysis-optimization-and-variational-techniques 90c06-large-scale-problems-in-mathematical-programming 90c20-quadratic-programming 90c25-convex-programming 90c90-applications-of-mathematical-programming
%N 4
%P 637-672
%R 10.1007/s12532-020-00179-2
%T OSQP: An Operator Splitting Solver for Quadratic Programs
%U https://link.springer.com/article/10.1007/s12532-020-00179-2#Sec18
%V 12
%X 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.
@article{stellato2017operator,
abstract = {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.},
added-at = {2023-06-28T06:51:40.000+0200},
author = {Stellato, Bartolomeo and Banjac, Goran and Goulart, Paul and Bemporad, Alberto and Boyd, Stephen},
biburl = {https://www.bibsonomy.org/bibtex/2c5b59c179b5f62ea4c0bb96b2c8af427/gdmcbain},
description = {OSQP: An Operator Splitting Solver for Quadratic Programs},
doi = {10.1007/s12532-020-00179-2},
interhash = {475d777cc4b3b2c7ca430038f2bc81b5},
intrahash = {c5b59c179b5f62ea4c0bb96b2c8af427},
journal = {Mathematical Programming Computation},
keywords = {65k05-numerical-mathematical-programming-methods 65k10-numerical-analysis-optimization-and-variational-techniques 90c06-large-scale-problems-in-mathematical-programming 90c20-quadratic-programming 90c25-convex-programming 90c90-applications-of-mathematical-programming},
note = {arxiv:1711.08013},
number = 4,
pages = {637-672},
timestamp = {2023-06-28T07:35:30.000+0200},
title = {OSQP: An Operator Splitting Solver for Quadratic Programs},
url = {https://link.springer.com/article/10.1007/s12532-020-00179-2#Sec18},
volume = 12,
year = 2017
}