sqlp {sdpt3r} | R Documentation |
Semidefinite Quadratic Linear Programming Solver
Description
sqlp
solves a semidefinite quadratic linear programming problem using the SDPT3 algorithm of Toh et. al. (1999)
returning both the primal solution X and dual solution Z.
Usage
sqlp(blk = NULL, At = NULL, C = NULL, b = NULL, control = NULL,
X0 = NULL, y0 = NULL, Z0 = NULL)
Arguments
blk |
A named-list object describing the block diagonal structure of the SQLP data |
At |
A list object containing constraint matrices for the primal-dual problem |
C |
A list object containing the constant $c$ matrices in the primal objective function |
b |
A vector containing the right hand side of the equality constraints in the primal problem |
control |
A list object specifying the values of certain parameters. If not provided, default values are used |
X0 |
An initial iterate for the primal solution variable X. If not provided, an initial iterate is computed internally. |
y0 |
An initial iterate for the dual solution variable y. If not provided, an initial iterate is computed internally. |
Z0 |
An initial iterate for the dual solution variable Z. If not provided, an initial iterate is computed internally. |
Details
A full mathematical description of the problem to be solved, details surrounding the input variables, and discussion regarding the output variables can be found in the accompanying vignette.
Value
X |
A list containing the solution matrix to the primal problem |
y |
The solution vector to the dual problem |
Z |
A list containing the solution matrix to the dual problem |
pobj |
The achieved value of the primary objective function |
dobj |
The achieved value of the dual objective function |
References
K.C. Toh, M.J. Todd, and R.H. Tutuncu, SDPT3 — a Matlab software package for semidefinite programming, Optimization Methods and Software, 11 (1999), pp. 545–581. R.H Tutuncu, K.C. Toh, and M.J. Todd, Solving semidefinite-quadratic-linear programs using SDPT3, Mathematical Programming Ser. B, 95 (2003), pp. 189–217.
Examples
blk = c("l" = 2)
C = matrix(c(1,1),nrow=1)
A = matrix(c(1,3,4,-1), nrow=2)
At = t(A)
b = c(12,10)
out = sqlp(blk,list(At),list(C),b)