qpOASES: a parametric active-set algorithm for quadratic programming


Many practical applications lead to optimization problems that can either be stated as quadratic programming (QP) problems or require the solution of QP problems on a lower algorithmic level. One relatively recent approach to solve QP problems are parametric active-set methods that are based on tracing the solution along a linear homotopy between a QP problem with known solution and the QP problem to be solved. This approach seems to make them particularly suited for applications where a-priori information can be used to speed-up the QP solution or where high solution accuracy is required. In this paper we describe the open-source C++ software package qpOASES, which implements a parametric active-set method in a reliable and efficient way. Numerical tests show that qpOASES can outperform other popular academic and commercial QP solvers on small- to medium-scale convex test examples of the Maros-Mészáros QP collection. Moreover, various interfaces to third-party software packages make it easy to use, even on embedded computer hardware. Finally, we describe how qpOASES can be used to compute critical points of nonconvex QP problems.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2


  1. 1.

    The name qpOASES is derived from the term “online active set strategy” [19] reflecting the fact that the code has been originally developed for use in model predictive control applications.

  2. 2.

    We use the notion warm-start if the QP solution procedure is initialized based on the solution of the previous QP problem. Hot-start refers to the case where also internal matrix factorizations are re-used.


  1. 1.

    Anderson, E., Bai, Z., Bischof, C., Blackford, S., Demmel, J., Dongarra, J., Croz, J.D., Greenbaum, A., Hammarling, S., McKenney, A., Sorensen, D.: LAPACK Users’ Guide, 3rd edn. SIAM, Philadelphia, PA (1999)

  2. 2.

    Ängeby, J., Huschenbett, M., Alberer, D.: Automotive Model Predictive Control, MIMO Model Predictive Control for Integral Gas Engines. In: Lecture Notes in Control and Information Sciences, vol. 402, pp. 257–272, Springer, Berlin (2010)

  3. 3.

    Arnold, E., Neupert, J., Sawodny, O., Schneider, K.: Trajectory tracking for boom cranes based on nonlinear control and optimal trajectory generation. In: IEEE International Conference on Control Applications, pp. 1444–1449 (2007). doi:10.1109/CCA.2007.4389439

  4. 4.

    Bartels, R., Golub, G.: The simplex method for linear programming using LU decomposition. Commun. ACM 12(5), 266–268 (1969)

    Article  MATH  Google Scholar 

  5. 5.

    Bartlett, R., Biegler, L.: QPSchur: a dual, active set, Schur complement method for large-scale and structured convex quadratic programming algorithm. Optim. Eng. 7, 5–32 (2006)

    Article  MATH  MathSciNet  Google Scholar 

  6. 6.

    Benzi, M., Golub, G., Liesen, J.: Numerical solution of saddle-point problems. Acta Numerica 14, 1–137 (2005)

    Article  MATH  MathSciNet  Google Scholar 

  7. 7.

    Best, M.: An Algorithm for the Solution of the Parametric Quadratic Programming Problem. In: Applied Mathematics and Parallel Computing, pp. 57–76. Physica, Heidelberg (1996)

  8. 8.

    Blackford, L.S., Demmel, J., Dongarra, J., Duff, I.: An updated set of basic linear algebra subprograms (BLAS). ACM Trans. Math. Softw. 28, 135–151 (2002)

    Article  Google Scholar 

  9. 9.

    Bock, H., Plitt, K.: A multiple shooting algorithm for direct solution of optimal control problems. In: Proceedings 9th IFAC World Congress, pp. 242–247. Pergamon Press, Budapest (1984)

  10. 10.

    Contesse, L.: Une charactérisation complète des minima locaux en programmation quadratique. Numerische Mathematik 34, 315–332 (1980)

    Article  MATH  MathSciNet  Google Scholar 

  11. 11.

    Dantzig, G.B.: Linear Programming and Extensions. Princeton University Press, Princeton (1963)

    Google Scholar 

  12. 12.

    Diehl, M., Ferreau, H.J., Haverbeke, N.: Nonlinear model predictive control, Efficient Numerical Methods for Nonlinear MPC and Moving Horizon Estimation. In: Lecture Notes in Control and Information Sciences, vol. 384, pp. 391–417. Springer, Berlin (2009)

  13. 13.

    Eaton, J.W.: GNU Octave Manual. Network Theory Limited (2002)

  14. 14.

    Ferreau, H.J.: An Online Active Set Strategy for Fast Solution of Parametric Quadratic Programs with Applications to Predictive Engine Control. Master’s thesis, University of Heidelberg (2006)

  15. 15.

    Ferreau, H.J., et al.: qpOASES User’s Manual. http://www.qpOASES.org (2007–2014)

  16. 16.

    Ferreau, H.J.: Model predictive control algorithms for applications with millisecond timescales. PhD thesis, KU Leuven (2011)

  17. 17.

    Ferreau, H.J., Diehl, M.: Online QP Benchmark Collection. http://www.qpOASES.org/onlineQP (2006–2008)

  18. 18.

    Ferreau, H.J., Ortner, P., Langthaler, P., del Re, L., Diehl, M.: Predictive control of a real-world diesel engine using an extended online active set strategy. Annu. Rev. Control 31(2), 293–301 (2007)

    Article  Google Scholar 

  19. 19.

    Ferreau, H.J., Bock, H.G., Diehl, M.: An online active set strategy to overcome the limitations of explicit MPC. Int. J. Robust Nonlinear Control 18(8), 816–830 (2008)

    Article  MATH  MathSciNet  Google Scholar 

  20. 20.

    Fletcher, R.: Practical Methods of Optimization, 2nd edn. Wiley, Chichester (1987)

    Google Scholar 

  21. 21.

    Fletcher, R.: Approximation Theory and Optimization, Dense factors of sparse matrices. In: Tributes to M.J.D. Powell, pp. 145–166. Cambridge University Press, Cambridge (1997)

  22. 22.

    Fletcher, R.: Stable reduced Hessian updates for indefinite quadratic programming. Numerical Analysis Report NA/187, Department of Mathematics and Computer Science, University of Dundee, Dundee DD1 4HN, Scotland, UK (1999)

  23. 23.

    Fletcher, R., Matthews, S.: Stable modification of explicit LU factors for simplex updates. Math. Progr. 30(3), 267–284 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  24. 24.

    Gertz, E., Wright, S.: Object-oriented software for quadratic programming. ACM Trans. Math. Softw. 29(1), 58–81 (2003)

    Article  MATH  MathSciNet  Google Scholar 

  25. 25.

    Gill, P., Golub, G., Murray, W., Saunders, M.A.: Methods for modifying matrix factorizations. Math. Comput. 28(126), 505–535 (1974)

    Article  MATH  MathSciNet  Google Scholar 

  26. 26.

    Gill, P., Murray, W., Saunders, M., Wright, M.: Procedures for optimization problems with a mixture of bounds and general linear constraints. ACM Trans. Math. Softw. 10(3), 282–298 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  27. 27.

    Gill, P., Murray, W., Saunders, M., Wright, M.: Maintaining LU factors of a general sparse matrix. Linear Algebra Appl. 88(89), 239–270 (1987)

    Article  MathSciNet  Google Scholar 

  28. 28.

    Goldfarb, D., Idnani, A.: A numerically stable dual method for solving strictly convex quadratic programs. Math. Progr. 27, 1–33 (1983)

    Article  MATH  MathSciNet  Google Scholar 

  29. 29.

    Gould, N.: An algorithm for large-scale quadratic programming. IMA J. Numer. Anal. 11(3), 299–324 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  30. 30.

    Gould, N., Toint, P.: A quadratic programming bibliography. Tech. Rep. 2000–1, Rutherford Appleton Laboratory, Computational Science and Engineering Department (2010)

  31. 31.

    Gould, N., Toint, P.: A quadratic programming page. http://www.numerical.rl.ac.uk/qp/qp.html (2012)

  32. 32.

    Gould, N., Orban, D., Toint, P.: CUTEr testing environment for optimization and linear algebra solvers. http://cuter.rl.ac.uk/cuter-www/, (2002)

  33. 33.

    Harris, P.: Pivot selection methods of the DEVEXLP code. Math. Progr. 5, 1–29 (1973)

    Article  MATH  Google Scholar 

  34. 34.

    van Heesch, D.: Doxygen homepage (1997–2011). http://www.doxygen.org

  35. 35.

    Houska, B., Ferreau, H.J., Diehl, M.: ACADO Toolkit—an open source framework for automatic control and dynamic optimization. Optim. Control Appl. Methods 32(3), 298–312 (2011)

    Article  MATH  MathSciNet  Google Scholar 

  36. 36.

    Huynh, H.: A large-scale quadratic programming solver based on block-LU updates of the KKT system. PhD thesis, Stanford University (2008)

  37. 37.

    IBM Corp: IBM ILOG CPLEX V12.1, User’s Manual for CPLEX (2009)

  38. 38.

    Inc TM: Real-Time Workshop for Use with SIMULINK, User’s Guide (1999)

  39. 39.

    Karmarkar, N.: A new polynomial time algorithm for linear programming. Combinatorica 4, 373–395 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  40. 40.

    Kirches, C., Bock, H., Schlöder, J., Sager, S.: A factorization with update procedures for a KKT matrix arising in direct optimal control. Math. Progr. Comput. 3(4), 319–348 (2011)

    Article  MATH  Google Scholar 

  41. 41.

    Kostina, E.: The long step rule in the bounded-variable dual simplex method: numerical experiments. Math. Methods Oper. Res. 55(3), 413–429 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  42. 42.

    Leineweber, D., Bauer, I., Schäfer, A., Bock, H., Schlöder, J.: An efficient multiple shooting based reduced SQP strategy for large-scale dynamic process optimization (parts I and II). Comput. Chem. Eng. 27, 157–174 (2003)

    Article  Google Scholar 

  43. 43.

    Löfberg, J.: YALMIP: A toolbox for modeling and optimization in MATLAB. In: Proceedings of the CACSD Conference, Taipei, Taiwan (2004). http://users.isy.liu.se/johanl/yalmip

  44. 44.

    Maros, I., Meszaros, C.: A repository of convex quadratic programming problems. Optim. Methods Softw. 11, 431–449 (1999)

    Article  MathSciNet  Google Scholar 

  45. 45.

    Murty, K.: Some NP-complete problems in quadratic and nonlinear programming. Math. Progr. 39, 117–129 (1987)

    Article  MATH  Google Scholar 

  46. 46.

    Nesterov, Y.: Introductory lectures on convex optimization: a basic course. In: Applied Optimization, vol. 87. Kluwer Academic Publishers, Dordrecht (2003)

  47. 47.

    Nesterov, Y., Nemirovski, A.: Interior-point Polynomial Algorithms in Convex Programming. In: Society for Industrial Mathematics (1994)

  48. 48.

    Nocedal, J., Wright, S.: Springer series in operations research and financial engineering. In: Numerical Optimization, 2nd edn. Springer, Berlin (2006)

  49. 49.

    Rauter, G., von Zitzewitz, J., Duschau-Wicke, A., Vallery, H., Riener, R.: A tendon-based parallel robot applied to motor learning in sports. In: Proceedings of the IEEE International Conference on Biomedical Robotics and Biomechatronics 2010, Japan (2010)

  50. 50.

    Rockafellar, R.: Monotone operators and the proximal point algorithm. SIAM J. Control Optim. 14, 877–898 (1976)

    Article  MATH  MathSciNet  Google Scholar 

  51. 51.

    Sager, S.: Lange Schritte im Dualen Simplex-Algorithmus. Master’s thesis, Universität Heidelberg (2001)

  52. 52.

    Scilab Consortium: Scilab: The free software for numerical computation. Scilab Consortium, Digiteo, Paris, France (2011). http://www.scilab.org

  53. 53.

    Takács, G., Rohal’-Ilkiv, B.: Predictive vibration control: efficient constrained MPC vibration control for lightly damped mechanical systems. Springer, Berlin (2012)

    Google Scholar 

  54. 54.

    Van den Broeck, L.: Time optimal control of mechatronic systems through embedded optimization. PhD thesis, KU Leuven (2011)

  55. 55.

    Wang, X.: Resolution of Ties in Parametric Quadratic Programming. Master’s thesis, University of Waterloo, Ontario, Canada (2004)

  56. 56.

    Wilkinson, J.: The Algebraic Eigenvalue Problem. Clarendon Press, Oxford (1965)

    Google Scholar 

  57. 57.

    Wills, A., Bates, D., Fleming, A., Ninness, B., Moheimani, S.: Application of MPC to an active structure using sampling rates up to 25kHz. In: 44th IEEE Conference on Decision and Control and European Control Conference ECC’05, Seville (2005)

  58. 58.

    Wolfe, P.: The simplex method for quadratic programming. Econometrica 27, 382–398 (1959)

    Article  MATH  MathSciNet  Google Scholar 

  59. 59.

    Wright, S.: Primal-Dual Interior-Point Methods. SIAM Publications, Philadelphia (1997)

    Google Scholar 

  60. 60.

    Wunderling, R.: Paralleler und Objektorientierter Simplex-Algorithmus. PhD thesis, Konrad-Zuse-Zentrum Berlin (1996)

Download references


The authors would like to thank the three anonymous referees whose insightful comments have helped to improve this article. The research leading to these results has received funding from the European Union Seventh Framework Programme (FP7/2007–2013) under grant agreement no  FP7-ICT-2009-4 248940 (EMBOCON). The Heidelberg Graduate School of Mathematical and Computational Methods for the Sciences (HGS MathComp, DFG GSC 220/2) supported this work by providing travel grants. Moreover, this research was supported by the German Research Association (DFG) under grants BO 864/12, BO 864/13, and 864/15, and the Research Council KUL: PFV/10/002 Optimization in Engineering Center OPTEC, GOA/10/09 MaNet and GOA/10/11 Global real-time optimal control of autonomous robots and mechatronic systems. Furthermore, this research was supported by the Flemish Government: IOF / KP / SCORES4CHEM; by FWO: PhD/postdoc grants, projects G.0320.08 (convex MPC) and G.0377.09 (Mechatronics MPC); by IWT: PhD Grants, SBO LeCoPro project; by the Belgian Federal Science Policy Office: IUAP P7 (DYSCO, Dynamical systems, control and optimization, 2012-2017); and by the EU: FP7-SADCO (MC ITN-264735), FP7-TEMPO (MC ITN-607957), ERC ST HIGHWIND (259 166), Eurostars SMART, ACCM. Development of a first prototype version of qpOASES has been supported by the REGINS-PREDIMOT European project. At the time of initial submission, the first author was with the Eletrical Engineering Department of KU Leuven (Belgium) and held a PhD fellowship of the Research Foundation – Flanders (FWO).

Author information



Corresponding author

Correspondence to Hans Joachim Ferreau.



See Table 5.

Table 5 Comparison of QP solvers on problems from the Maros-Mészáros test set ([44]) with at most \(n = 1{,}000\) variables and \(m=1{,}001\) two-sided inequality constraints (not counting variable bound constraints). The solution time in seconds and the optimality condition residual \(\rho \) are given for each solver. Failure of the solver is denoted by blank time fields

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Ferreau, H.J., Kirches, C., Potschka, A. et al. qpOASES: a parametric active-set algorithm for quadratic programming. Math. Prog. Comp. 6, 327–363 (2014). https://doi.org/10.1007/s12532-014-0071-1

Download citation


  • Parametric quadratic programming
  • Active set method
  • Model predictive control

Mathematics Subject Classification

  • 90C20 (Quadratic programming)
  • 65K05 (Mathematical programming methods)