Mathematical Programming Computation

, Volume 6, Issue 4, pp 327–363 | Cite as

qpOASES: a parametric active-set algorithm for quadratic programming

  • Hans Joachim FerreauEmail author
  • Christian Kirches
  • Andreas Potschka
  • Hans Georg Bock
  • Moritz Diehl
Full Length Paper


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.


Parametric quadratic programming Active set method   Model predictive control 

Mathematics Subject Classification

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



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).


  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)Google Scholar
  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)Google Scholar
  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)CrossRefzbMATHGoogle 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)CrossRefzbMATHMathSciNetGoogle Scholar
  6. 6.
    Benzi, M., Golub, G., Liesen, J.: Numerical solution of saddle-point problems. Acta Numerica 14, 1–137 (2005)CrossRefzbMATHMathSciNetGoogle 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)Google Scholar
  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)CrossRefGoogle 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)Google Scholar
  10. 10.
    Contesse, L.: Une charactérisation complète des minima locaux en programmation quadratique. Numerische Mathematik 34, 315–332 (1980)CrossRefzbMATHMathSciNetGoogle Scholar
  11. 11.
    Dantzig, G.B.: Linear Programming and Extensions. Princeton University Press, Princeton (1963)zbMATHGoogle 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)Google Scholar
  13. 13.
    Eaton, J.W.: GNU Octave Manual. Network Theory Limited (2002)Google Scholar
  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)Google Scholar
  15. 15.
    Ferreau, H.J., et al.: qpOASES User’s Manual. (2007–2014)
  16. 16.
    Ferreau, H.J.: Model predictive control algorithms for applications with millisecond timescales. PhD thesis, KU Leuven (2011)Google Scholar
  17. 17.
    Ferreau, H.J., Diehl, M.: Online QP Benchmark Collection. (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)CrossRefGoogle 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)CrossRefzbMATHMathSciNetGoogle Scholar
  20. 20.
    Fletcher, R.: Practical Methods of Optimization, 2nd edn. Wiley, Chichester (1987)zbMATHGoogle 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)Google Scholar
  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)Google Scholar
  23. 23.
    Fletcher, R., Matthews, S.: Stable modification of explicit LU factors for simplex updates. Math. Progr. 30(3), 267–284 (1984)CrossRefzbMATHMathSciNetGoogle Scholar
  24. 24.
    Gertz, E., Wright, S.: Object-oriented software for quadratic programming. ACM Trans. Math. Softw. 29(1), 58–81 (2003)CrossRefzbMATHMathSciNetGoogle Scholar
  25. 25.
    Gill, P., Golub, G., Murray, W., Saunders, M.A.: Methods for modifying matrix factorizations. Math. Comput. 28(126), 505–535 (1974)CrossRefzbMATHMathSciNetGoogle 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)CrossRefzbMATHMathSciNetGoogle 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)CrossRefMathSciNetGoogle Scholar
  28. 28.
    Goldfarb, D., Idnani, A.: A numerically stable dual method for solving strictly convex quadratic programs. Math. Progr. 27, 1–33 (1983)CrossRefzbMATHMathSciNetGoogle Scholar
  29. 29.
    Gould, N.: An algorithm for large-scale quadratic programming. IMA J. Numer. Anal. 11(3), 299–324 (1991)CrossRefzbMATHMathSciNetGoogle Scholar
  30. 30.
    Gould, N., Toint, P.: A quadratic programming bibliography. Tech. Rep. 2000–1, Rutherford Appleton Laboratory, Computational Science and Engineering Department (2010)Google Scholar
  31. 31.
    Gould, N., Toint, P.: A quadratic programming page. (2012)
  32. 32.
    Gould, N., Orban, D., Toint, P.: CUTEr testing environment for optimization and linear algebra solvers., (2002)
  33. 33.
    Harris, P.: Pivot selection methods of the DEVEXLP code. Math. Progr. 5, 1–29 (1973)CrossRefzbMATHGoogle Scholar
  34. 34.
    van Heesch, D.: Doxygen homepage (1997–2011).
  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)CrossRefzbMATHMathSciNetGoogle 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)Google Scholar
  37. 37.
    IBM Corp: IBM ILOG CPLEX V12.1, User’s Manual for CPLEX (2009)Google Scholar
  38. 38.
    Inc TM: Real-Time Workshop for Use with SIMULINK, User’s Guide (1999)Google Scholar
  39. 39.
    Karmarkar, N.: A new polynomial time algorithm for linear programming. Combinatorica 4, 373–395 (1984)CrossRefzbMATHMathSciNetGoogle 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)CrossRefzbMATHGoogle 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)CrossRefzbMATHMathSciNetGoogle 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)CrossRefGoogle Scholar
  43. 43.
    Löfberg, J.: YALMIP: A toolbox for modeling and optimization in MATLAB. In: Proceedings of the CACSD Conference, Taipei, Taiwan (2004).
  44. 44.
    Maros, I., Meszaros, C.: A repository of convex quadratic programming problems. Optim. Methods Softw. 11, 431–449 (1999)CrossRefMathSciNetGoogle Scholar
  45. 45.
    Murty, K.: Some NP-complete problems in quadratic and nonlinear programming. Math. Progr. 39, 117–129 (1987)CrossRefzbMATHGoogle Scholar
  46. 46.
    Nesterov, Y.: Introductory lectures on convex optimization: a basic course. In: Applied Optimization, vol. 87. Kluwer Academic Publishers, Dordrecht (2003)Google Scholar
  47. 47.
    Nesterov, Y., Nemirovski, A.: Interior-point Polynomial Algorithms in Convex Programming. In: Society for Industrial Mathematics (1994)Google Scholar
  48. 48.
    Nocedal, J., Wright, S.: Springer series in operations research and financial engineering. In: Numerical Optimization, 2nd edn. Springer, Berlin (2006)Google Scholar
  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)Google Scholar
  50. 50.
    Rockafellar, R.: Monotone operators and the proximal point algorithm. SIAM J. Control Optim. 14, 877–898 (1976)CrossRefzbMATHMathSciNetGoogle Scholar
  51. 51.
    Sager, S.: Lange Schritte im Dualen Simplex-Algorithmus. Master’s thesis, Universität Heidelberg (2001)Google Scholar
  52. 52.
    Scilab Consortium: Scilab: The free software for numerical computation. Scilab Consortium, Digiteo, Paris, France (2011).
  53. 53.
    Takács, G., Rohal’-Ilkiv, B.: Predictive vibration control: efficient constrained MPC vibration control for lightly damped mechanical systems. Springer, Berlin (2012)CrossRefGoogle Scholar
  54. 54.
    Van den Broeck, L.: Time optimal control of mechatronic systems through embedded optimization. PhD thesis, KU Leuven (2011)Google Scholar
  55. 55.
    Wang, X.: Resolution of Ties in Parametric Quadratic Programming. Master’s thesis, University of Waterloo, Ontario, Canada (2004)Google Scholar
  56. 56.
    Wilkinson, J.: The Algebraic Eigenvalue Problem. Clarendon Press, Oxford (1965)zbMATHGoogle 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)Google Scholar
  58. 58.
    Wolfe, P.: The simplex method for quadratic programming. Econometrica 27, 382–398 (1959)CrossRefzbMATHMathSciNetGoogle Scholar
  59. 59.
    Wright, S.: Primal-Dual Interior-Point Methods. SIAM Publications, Philadelphia (1997)CrossRefzbMATHGoogle Scholar
  60. 60.
    Wunderling, R.: Paralleler und Objektorientierter Simplex-Algorithmus. PhD thesis, Konrad-Zuse-Zentrum Berlin (1996)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg and Mathematical Optimization Society 2014

Authors and Affiliations

  • Hans Joachim Ferreau
    • 1
    Email author
  • Christian Kirches
    • 2
  • Andreas Potschka
    • 2
  • Hans Georg Bock
    • 2
  • Moritz Diehl
    • 3
    • 4
  1. 1.ABB Corporate ResearchBaden-DättwilSwitzerland
  2. 2.Interdisciplinary Center for Scientific Computing (IWR)Heidelberg UniversityHeidelbergGermany
  3. 3.Eletrical Engineering Department (ESAT-STADIUS / OPTEC)LeuvenBelgium
  4. 4.Department of Microsystems Engineering IMTEKUniversity of FreiburgFreiburgGermany

Personalised recommendations