Solve mixed integer quadtratic programming problems.
Solve mixed integer quadtratic programming problems.
x = cplexmiqp(H,f,Aineq,bineq) x = cplexmiqp(H,f,Aineq,bineq,Aeq,beq) x = cplexmiqp(H,f,Aineq,bineq,Aeq,beq,sostype,sosind,soswt) x = cplexmiqp(H,f,Aineq,bineq,Aeq,beq,sostype,sosind,soswt,lb,ub) x = cplexmiqp(H,f,Aineq,bineq,Aeq,beq,sostype,sosind,soswt,lb,ub,ctype) x = cplexmiqp(H,f,Aineq,bineq,Aeq,beq,sostype,sosind,soswt,lb,ub,ctype,x0) x = cplexmiqp(H,f,Aineq,bineq,Aeq,beq,sostype,sosind,soswt,lb,ub,ctype,x0,options) x = cplexmiqp(problem) [x,fval] = cplexmiqp(...) [x,fval,exitflag] = cplexmiqp(...) [x,fval,exitflag,output] = cplexmiqp(...)
Finds the minimum of a problem specified by
min 0.5*x'*H*x+f*x or f*x st. Aineq*x <= bineq Aeq*x = beq lb <= x <= ub
x
is a BICSN vector -- that is, its individual entries are each required to be binary, general integer, continuous, semi-continuous or semi-integer.
H | Symmetric double matrix for objective function | |
f | Double column vector for linear objective function | |
Aineq | Double matrix for linear inequality constraints | |
bineq | Double column vector for linear inequality constraints | |
Aeq | Double matrix for linear equality constraints | |
beq | Double column vector for linear equality constraints | |
sostype | String with possible char values '1', '2' | |
sosind | Double column vector or column vector cell of indices for the SOSs to be added | |
soswt | Double column vector or column vector cell of weights for the SOSs to be added | |
lb | Double column vector of lower bounds | |
ub | Double column vector of upper bounds | |
ctype | String with possible char values 'B','I','C','S','N'; set ctype(j) to 'B', 'I','C', 'S', or 'N' to indicate that x(j) should be binary, general integer, continuous, semi-continuous or semi-integer (respectively). | |
x0 | Double column vector of initial point of x | |
options | Options structure created with cplexoptimset | |
problem | Structure containing the following fields: H : Symmetric double matrix for objective function f : Double column vector for linear objective function Aineq : Double matrix for linear inequality constraints bineq : Double column vector for linear inequality constraints Aeq : Double matrix for linear equality constraints beq : Double column vector for linear equality constraints sos : Struct vector representing the SOSs sos(i).type : String with possible char values '1', '2' sos(i).ind : Double column vector of indices for the SOSs to be added sos(i).wt : Double column vector of weights for the SOSs to be added lb : Double column vector of lower bounds ub : Double column vector of upper bounds ctype : String with possible char values 'B','I','C','S','N'; set ctype(j) to 'B', 'I','C', 'S', or 'N' to indicate that x(j) should be binary, general integer, continuous, semi-continuous or semi-integer (respectively) x0 : Double column vector for initial point of x options : Options structure created with cplexoptimset |
x | Solution found by the optimization function. If exitflag > 0 , then x is a solution; otherwise, x is the value of the optimization routine when it terminated prematurely. | |
fval | Value of the objective function at the solution x | |
exitflag | Integer identifying the reason the optimization algorithm terminated | |
output | Structure containing information about the optimization. The fields of the structure are: iterations : Number of iterations algorithm : Optimization algorithm used message : Exit message time : Execution time of the algorithm cplexstatus : Status code of the solution cplexstatusstring : Status string of the solution |
x = cplexmiqp(H, f, Aineq, bineq)
solves the mixed integer quadratic programming problem min 1/2*x'*H*x + f*x
subject to Aineq*x <= bineq
. If no quadratic objective term exists, set H=[]
.x = cplexmiqp(H, f, Aineq, bineq, Aeq, beq)
solves the preceding problem with the additional equality constraints Aeq*x = beq
. If no inequalities exist, set Aineq=[]
and bineq=[]
.
x = cplexmiqp(H, f, Aineq, bineq, Aeq, beq, sostype, sosind, soswt)
solves the preceding problem with the additional requirement that the SOS constraints are satisfied. If no equalities exist, set Aeq=[]
and beq=[]
.
x = cplexmiqp(H, f, Aineq, bineq, Aeq, beq, sostype, sosind, soswt, lb, ub)
defines a set of lower and upper bounds on the design variables, x
, so that the solution is always in the range lb <= x <= ub
. If no SOS constraints exist, set sostype=[]
, sosind=[]
and soswt=[]
.
x = cplexmiqp(H, f, Aineq, bineq, Aeq, beq, sostype, sosind, soswt, lb, ub, ctype)
defines the types for each of the design variables. If no bounds exist, set lb=[]
and ub=[]
.
x = cplexmiqp(H, f, Aineq, bineq, Aeq, beq, sostype, sosind, soswt, lb, ub, ctype, x0)
sets the starting point for the algorithm to x0
. If all design variables are continuous, set ctype=[]
.
x = cplexmiqp(H, f, Aineq, bineq, Aeq, beq, sostype, sosind, soswt, lb, ub, ctype, x0, options)
minimizes with the default optimization options
replaced by values in the structure options
, which can be created using the function cplexoptimset
. If you do not want to give an initial point, set x0=[]
.
x = cplexmiqp(problem)
where problem
is a structure.
[x,fval] = cplexmiqp(...)
returns the value of the objective function at the solution x
: fval = 0.5*x'*H*x + f*x
.
[x,fval,exitflag] = cplexmiqp(...)
returns a value exitflag
that describes the exit condition of cplexmiqp
.
[x,fval,exitflag,output] = cplexmiqp(...)
returns a structure output
that contains information about the optimization.
NOTE: If there are no lower bounds specified (that is, either []
passed in for lb
or a form of the function without lb
is used), then -Inf
will be used as lower bound for all variables.
See cplexmiqcp for a description of exitflag values.
See also cplexoptimset.