QPC - Quadratic Programming in C

Contact Details

Dr. Adrian Wills

Email

Phone

+61 2 49216028

Fax

+61 2 49216993

Office

Callaghan Campus
Building EA: EA-204

Post

Dr. Adrian Wills

School of Electrical Engineering and Computer Science

- - -

Funding

Australian Research Council

ARC Discovery Project
DP0666955
2006-2008
Value: $336,000

Australian Research Council

ARC Discovery Project
DP0208665
2002-2005
Value: $360,000

Australian Research Council

Discovery Project
DP0774086
2007-2009
Value: $246,090
This project offers a collection of quadratic programming routines, which are written in C and callable from Matlab. These routines cover a range of problem structures from simply bounded strictly convex quadratic programmes to the more general case. Furthermore, a range of approaches are used including active-set, interior-point and a branch and bound approach.

News

  • 2008-03-04: BUG: QPC does not compile under Matlab 2007b for Windows using the lcc compiler. It does, however, compile correctly using Microsoft Visual C++, for example. This problem is caused by Mathworks not supporting calls to the lcc version of the LAPACK libraries in Matlab 2007b. I do not know if this problem will be fixed by Mathworks in the new release. I plan to release a new version shortly that includes a binary version of the libraries plus source.
  • 2007-09-20: Latest version released; bug fixes for cross platform compilation.
  • 2007-05-31: Latest version released now including source code.
  • 2007-05-31: The current release of YALMIP now has support for QPC, thanks to Johan Löfberg.
  • 2007-05-29: Fixed some bugs, found mainly by Johan Löfberg - Thanks!
  • 2006-11-23: Latest version of routines released. Includes bug fixes. See usage for full details.
  • 2006-07-12: Latest version of routines released. Includes bug fixes and a faster interior-point method. Also returns Lagrange Multipliers. See usage for full details.
  • 2005-09-07: New website released.

Available routines

QPC includes the following routines:

  • qpas: Uses a dual active-set method to solve a general strictly convex quadratic programming problem.
  • qpip: Uses a primal-dual interior-point method to solve a general strictly convex quadratic programming problem. Accepts an optional argument to stop on central-path at a user specified fixed point.
  • qps_ip: Uses an interior-point method to solve a simply bounded convex quadratic programming problem.
  • qps_as: Uses an active-set method to solve a simply bounded convex quadratic programming problem.
  • qps_mq: Uses a branch-and-bound method to solve a simply bounded convex quadratic programming problem.

NOTE: The above routines use ideas from pre-existing algorithms. In particular:

  • The active-set codes are based on ideas from QL written by Klaus Schittkowski
  • The interior-point codes are based on ideas from OOQP by Mike Gertz and Steve Wright
  • The qps_mq routine is based on ideas from MINQ by Arnold Neumaier

Try it Out

  • This software works with Matlab under Linux, Mac OS X, and MS Windows.
  • In an attempt to help further development, we have made the source code available. So if you find bugs or enhancements, then please inform us via email
  • We request that you register your name and email address in order to proceed with the download.
→ Available here: Download

Report an unexplored feature (bug)

  • If you would like to report a bug then please email me.

Maintained by Dr. Adrian Wills
University of Newcastle
7 Mar 2008, © Copyright