If Q==NULL
then the problem is linear, if any value of the vtype
argument is "B" or "I" then the problem is a mixed-integer program.
The control
argument is used to set CPLEX's many parameters. See
details. The objsense
determines if the problem is a
maximization or minimization problem. The sense
argument is
used to set the constraint directions.
Rcplex_solve_QCP(cvec, Amat, bvec, Qmat = NULL, QC, lb = 0, ub = Inf, sense = "L", objsense = c("min", "max"), vtype = NULL, n = 1, control = list())
ncol(Amat)==length(cvec)
) length(bvec)==nrow(Amat)
)NULL
the problem is linear. If not NULL
, it must be a symmetric positive
semidefinite matrix of size length(cvec)
by length(cvec)
. Default NULL
QC
, dir
, and
b
. The element QC
is a list with the quadratic part
Q
, a matrix, and the linear part of the constraint L
, a
numeric (currently nonzero values are not supported). dir
has the same meaning as argument sense
and
b
as bvec
.length(lb)==1
then lb
is the lower bound of all
variables. Otherwise, length(lb)==length(cvec)
. Set
lb=-Inf
to have no lower bound. Default 0.lb
for
further details. Default Inf
."max"
or "min"
, determines the optimization
direction. Default "min"
length(sense)==1
then the same value is taken
for each constraint. Can be one of "L"
(less than or equal),
"G"
(reater than or equal) or "E"
(equal). Requires
length(sense)==length(bvec)
. Default "L"
. "C"
(continuous), "I"
(integer) or "B"
(binary). If
length(vtype)==1
the same value is taken for all
variables. Otherwise, requires
length(vtype)==length(ctype)
. Default "C"
.n
has to be set to NA
. In CPLEX this is also called
populating the solution pool. The parameters solnpoolagap
,
solnpoolgap
, and solnpoolintensity
influence the
search for multiple solutions (see also the control
argument below for details). Available from CPLEX 11.0 on. Rcplex()
raises a warning if an older version of CPLEX is used and n>1
. Default 1
.n > 1
a list
of length equal to the number of optimal solutions containing the
following components for each solution:
link[Rcplex]{Rcplex}()
for more information about
sparse matrix representation and control arguments.
Rcplex.close
, optim
## objective function c <- c(1, 2, 3) Q <- matrix(c(-33, 6, 0, 6, -22, 11.5, 0, 11.5, -11), nrow = 3) ## constraints ## linear part A <- matrix(c(-1, 1, 1, -3, 1, 1), nrow = 2) dir <- c("L", "L") b <- c(20, 30) ## quadratic part QC <- list(QC = list(Q = list(diag(1, nrow = 3)), L = NULL), dir = "L", b = 1) ## bounds ub <- c(40, Inf, Inf) ## solve res <- Rcplex_solve_QCP(c,A, b, Q, ub = ub, QC = QC, sense = dir, objsense = "max") print(res) ## solve MIQCP res <- Rcplex_solve_QCP(c, A, b, Q, ub = ub, QC = QC, sense = dir, objsense = "max", vtype = c("C", "I", "C")) ## quadratic and linear part QC <- list(QC = list(Q = list(diag(1, nrow = 3)), L = list(c(3,4,-3))), dir = "L", b = 1) ## solve res <- Rcplex_solve_QCP(c,A, b, Q, ub = ub, QC = QC, sense = dir, objsense = "max") print(res) Rcplex.close()