Title: | Functions to Solve Quadratic Programming Problems |
---|---|
Description: | This package contains routines and documentation for solving quadratic programming problems. |
Authors: | S original by Berwin A. Turlach <[email protected]> R port by Andreas Weingessel <[email protected]> Fortran contributions from Cleve Moler (dposl/LINPACK and (a modified version of) dpodi/LINPACK) |
Maintainer: | Berwin A. Turlach <[email protected]> |
License: | GPL (>= 2) |
Version: | 1.5-8 |
Built: | 2024-11-18 05:38:52 UTC |
Source: | https://github.com/cran/quadprog |
This routine implements the dual method of Goldfarb and Idnani (1982,
1983) for solving quadratic programming problems of the form
with the
constraints
.
solve.QP(Dmat, dvec, Amat, bvec, meq=0, factorized=FALSE)
solve.QP(Dmat, dvec, Amat, bvec, meq=0, factorized=FALSE)
Dmat |
matrix appearing in the quadratic function to be minimized. |
dvec |
vector appearing in the quadratic function to be minimized. |
Amat |
matrix defining the constraints under which we want to minimize the quadratic function. |
bvec |
vector holding the values of |
meq |
the first |
factorized |
logical flag: if |
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. |
Lagrangian |
vector with the Lagragian at the solution. |
iact |
vector with the indices of the active constraints at the solution. |
D. Goldfarb and A. Idnani (1982). Dual and Primal-Dual Methods for Solving Strictly Convex Quadratic Programs. In J. P. Hennart (ed.), Numerical Analysis, Springer-Verlag, Berlin, pages 226–239.
D. Goldfarb and A. Idnani (1983). A numerically stable dual method for solving strictly convex quadratic programs. Mathematical Programming, 27, 1–33.
## ## 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)
## ## 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)
This routine implements the dual method of Goldfarb and Idnani (1982,
1983) for solving quadratic programming problems of the form
with the
constraints
.
solve.QP.compact(Dmat, dvec, Amat, Aind, bvec, meq=0, factorized=FALSE)
solve.QP.compact(Dmat, dvec, Amat, Aind, bvec, meq=0, factorized=FALSE)
Dmat |
matrix appearing in the quadratic function to be minimized. |
dvec |
vector appearing in the quadratic function to be minimized. |
Amat |
matrix containing the non-zero elements of the matrix |
Aind |
matrix of integers. The first element of each column gives the
number of non-zero elements in the corresponding column of the
matrix |
bvec |
vector holding the values of |
meq |
the first |
factorized |
logical flag: if |
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. |
Lagrangian |
vector with the Lagragian at the solution. |
iact |
vector with the indices of the active constraints at the solution. |
D. Goldfarb and A. Idnani (1982). Dual and Primal-Dual Methods for Solving Strictly Convex Quadratic Programs. In J. P. Hennart (ed.), Numerical Analysis, Springer-Verlag, Berlin, pages 226–239.
D. Goldfarb and A. Idnani (1983). A numerically stable dual method for solving strictly convex quadratic programs. Mathematical Programming, 27, 1–33.
## ## 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.compact as follows: ## Dmat <- matrix(0,3,3) diag(Dmat) <- 1 dvec <- c(0,5,0) Aind <- rbind(c(2,2,2),c(1,1,2),c(2,2,3)) Amat <- rbind(c(-4,2,-2),c(-3,1,1)) bvec <- c(-8,2,0) solve.QP.compact(Dmat,dvec,Amat,Aind,bvec=bvec)
## ## 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.compact as follows: ## Dmat <- matrix(0,3,3) diag(Dmat) <- 1 dvec <- c(0,5,0) Aind <- rbind(c(2,2,2),c(1,1,2),c(2,2,3)) Amat <- rbind(c(-4,2,-2),c(-3,1,1)) bvec <- c(-8,2,0) solve.QP.compact(Dmat,dvec,Amat,Aind,bvec=bvec)