Date: Fri, 11 Sep 2009 11:17:16 +0200
From: Jaroslav Hajek <address@hidden>
Subject: new function for quadratic programming: pqpnonneg
To: Octave users list <address@hidden>
Message-ID:
<address@hidden>
Content-Type: text/plain; charset=ISO-8859-1
hi all,
I just contributed a new function: pqpnonneg (Positive Quadratic
Programming in NONNEGative variables).
It can be used to solve problems of the form
min 1/2*x'*A*x + b'*x, all (x >= 0)
where A is a positive definite matrix. The implementation exploits a
duality between least squares and positive qp problems; it is very
similar to lsqnonneg except that it solves the dual system A \ -b and
works with a Cholesky factorization instead of QR (via qrinsert &
qrdelete).
If applicable, there are two advantages against qp:
1. it is usually significantly faster
2. it will always converge in a finite number of iterations (I think
this follows from the Lawson-Hanson proof and the duality)
both of these are of course very desirable. Here's a small benchmark
creating an artificial problem and solving it via both pqpnonneg and
qp: