solve.QP {quadprog}R Documentation

Solve a Quadratic Programming Problem

Description

This routine implements the dual method of Goldfarb and Idnani (1982, 1983) for solving quadratic programming problems of the form min(-d^T b + 1/2 b^T D b) with the constraints A^T b >= b_0.

Usage

solve.QP(Dmat, dvec, Amat, bvec, meq=0, factorized=FALSE)

Value

a list with the following components:

solution vector containing the solution of the quadratic programming problem.
value scalar, the value of the quadratic function at the solution
unconstrained.solution vector containing the unconstrained minimizer of the quadratic function.
iterations vector of length 2, the first component contains the number of iterations the algorithm needed, the second indicates how often constraints became inactive after becoming active first. vector with the indices of the active constraints at the solution.

References

Goldfarb, D. and Idnani, A. (1982). Dual and Primal-Dual Methods for Solving Strictly Convex Quadratic Programs. In Numerical Analysis J.P. Hennart, ed. Springer-Verlag, Berlin. pp. 226-239.

Goldfarb, D. and Idnani, A. (1983). A numerically stable dual method for solving strictly convex quadratic programs. Mathematical Programming 27, 1-33.

See Also

solve.QP.compact

Examples

#
# Assume we want to minimize: -(0 5 0) %*% b + 1/2 b^T b
# under the constraints:      A^T b >= b0
# with b0 = (-8,2,0)^T
# and      (-4  2  0) 
#      A = (-3  1 -2)
#          ( 0  0  1)
# we can use solve.QP as follows:
#
Dmat       <- matrix(0,3,3)
diag(Dmat) <- 1
dvec       <- c(0,5,0)
Amat       <- matrix(c(-4,-3,0,2,1,0,0,-2,1),3,3)
bvec       <- c(-8,2,0)
solve.QP(Dmat,dvec,Amat,bvec=bvec)