I have a problem that is almost in quadratic form, but involves an extra set of vector variables.
That is, I want to find the vector x that minimizes
J = x' C x
where C is a known positive definite matrix. The minimization is subject to the usual constraints
A x >= b
x >= 0
for fixed constraint matrix A and vector b. So far, this is a standard problem that can easily be solved.
However, I also have the additional vector variable y and constraints as follows:
x = F y + g
y >= 0
The matrix F and the vector g are known, but F is not invertible (or even square). In my particular problem, y has a much smaller dimension than x, so F has many more rows than columns.
I want to solve for both x and y. My first attempt was to create an extended vector z = (x, y) and re-write the problem in terms of z. However, doing so results in a problem of the form:
Minimize z' Q x,
but now Q is singular. So solve.QP cannot be used.
I can solve this problem easily in CPLEX, AMPL, etc., but I specifically want to solve it in R using quadprog.
Can anybody tell me how to rewrite the problem so that I can solve for both x and y, specifically using solve.QP?
Thanks!
meq
, the border between F and A rows. – saschaQ
is smaller:min x'Qx subject to Ax+By=b
(as long as Q is positive semi-definite). I.e. we can solvemin x1^2 subject to Ax=b
. – Erwin Kalvelagen