GRBModel#
- GRBModel#
Gurobi model object. Commonly used methods include
addVar
(adds a new decision variable to the model),addConstr
(adds a new constraint to the model),optimize
(optimizes the current model), andget
(retrieves the value of an attribute).While the Java garbage collector will eventually collect an unused
GRBModel
object, the vast majority of the memory associated with a model is stored outside of the Java heap. As a result, the garbage collector can’t see this memory usage, and thus it can’t take this quantity into account when deciding whether collection is necessary. We recommend that you callGRBModel.dispose
when you are done using a model.- GRBModel GRBModel(GRBEnv env)#
Constructor for
GRBModel
that creates an empty model. You can then calladdVar
andaddConstr
to populate the model with variables and constraints.- Arguments:
env – Environment for new model.
- Return value:
New model object. Model initially contains no variables or constraints.
- GRBModel GRBModel(GRBEnv env, String filename)#
Constructor for
GRBModel
that reads a model from a file. Note that the type of the file is encoded in the file name suffix. Valid suffixes are.mps
,.rew
,.lp
,.rlp
,.dua
,.dlp
,.ilp
, or.opb
. The files can be compressed, so additional suffixes of.zip
,.gz
,.bz2
, or.7z
are accepted.- Arguments:
env – Environment for new model.
filename – Name of the file containing the model.
- Return value:
New model object.
- GRBModel GRBModel(GRBModel model)#
Constructor for
GRBModel
that creates a copy of an existing model. Note that due to the lazy update approach in Gurobi, you have to callupdate
before copying it.- Arguments:
model – Model to copy.
- Return value:
New model object. Model is a clone of the original.
- GRBModel GRBModel(GRBModel model, GRBEnv targetenv)#
Copy an existing model to a different environment. Multiple threads can not work simultaneously within the same environment. Copies of models must therefore reside in different environments for multiple threads to operate on them simultaneously.
Note that this method itself is not thread safe, so you should either call it from the main thread or protect access to it with a lock.
Note that pending updates will not be applied to the model, so you should call
update
before copying if you would like those to be included in the copy.For Compute Server users, note that you can copy a model from a client to a Compute Server environment, but it is not possible to copy models from a Compute Server environment to another (client or Compute Server) environment.
- Arguments:
model – Model to copy.
targetenv – Environment to copy model into.
- Return value:
New model object. Model is a clone of the original.
- GRBConstr addConstr(GRBLinExpr lhsExpr, char sense, GRBLinExpr rhsExpr, String name)#
Add a single linear constraint to a model.
- Arguments:
lhsExpr – Left-hand side expression for new linear constraint.
sense – Sense for new linear constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhsExpr – Right-hand side expression for new linear constraint.
name – Name for new constraint.
- Return value:
New constraint object.
- GRBConstr addConstr(GRBLinExpr lhsExpr, char sense, GRBVar rhsVar, String name)#
Add a single linear constraint to a model.
- Arguments:
lhsExpr – Left-hand side expression for new linear constraint.
sense – Sense for new linear constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhsVar – Right-hand side variable for new linear constraint.
name – Name for new constraint.
- Return value:
New constraint object.
- GRBConstr addConstr(GRBLinExpr lhsExpr, char sense, double rhs, String name)#
Add a single linear constraint to a model.
- Arguments:
lhsExpr – Left-hand side expression for new linear constraint.
sense – Sense for new linear constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhs – Right-hand side value for new linear constraint.
name – Name for new constraint.
- Return value:
New constraint object.
- GRBConstr addConstr(GRBVar lhsVar, char sense, GRBLinExpr rhsExpr, String name)#
Add a single linear constraint to a model.
- Arguments:
lhsVar – Left-hand side variable for new linear constraint.
sense – Sense for new linear constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhsExpr – Right-hand side expression for new linear constraint.
name – Name for new constraint.
- Return value:
New constraint object.
- GRBConstr addConstr(GRBVar lhsVar, char sense, GRBVar rhsVar, String name)#
Add a single linear constraint to a model.
- Arguments:
lhsVar – Left-hand side variable for new linear constraint.
sense – Sense for new linear constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhsVar – Right-hand side variable for new linear constraint.
name – Name for new constraint.
- Return value:
New constraint object.
- GRBConstr addConstr(GRBVar lhsVar, char sense, double rhs, String name)#
Add a single linear constraint to a model.
- Arguments:
lhsVar – Left-hand side variable for new linear constraint.
sense – Sense for new linear constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhs – Right-hand side value for new linear constraint.
name – Name for new constraint.
- Return value:
New constraint object.
- GRBConstr addConstr(double lhs, char sense, GRBVar rhsVar, String name)#
Add a single linear constraint to a model.
- Arguments:
lhs – Left-hand side value for new linear constraint.
sense – Sense for new linear constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhsVar – Right-hand side variable for new linear constraint.
name – Name for new constraint.
- Return value:
New constraint object.
- GRBConstr addConstr(double lhs, char sense, GRBLinExpr rhsExpr, String name)#
Add a single linear constraint to a model.
- Arguments:
lhs – Left-hand side value for new linear constraint.
sense – Sense for new linear constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhsExpr – Right-hand side expression for new linear constraint.
name – Name for new constraint.
- Return value:
New constraint object.
- GRBConstr[] addConstrs(int count)#
Add
count
new linear constraints to a model. The new constraints are all of the form0 <= 0
.We recommend that you build your model one constraint at a time (using
addConstr
), since it introduces no significant overhead and we find that it produces simpler code. Feel free to use these methods if you disagree, though.- Arguments:
count – Number of constraints to add.
- Return value:
Array of new constraint objects.
- GRBConstr[] addConstrs(GRBLinExpr[] lhsExprs, char[] senses, double[] rhss, String[] names)#
Add new linear constraints to a model. The number of added constraints is determined by the length of the input arrays (which must be consistent across all arguments).
We recommend that you build your model one constraint at a time (using
addConstr
), since it introduces no significant overhead and we find that it produces simpler code. Feel free to use these methods if you disagree, though.- Arguments:
lhsExprs – Left-hand side expressions for the new linear constraints.
senses – Senses for new linear constraints (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhss – Right-hand side values for the new linear constraints.
names – Names for new constraints.
- Return value:
Array of new constraint objects.
- GRBConstr[] addConstrs(GRBLinExpr[] lhsExprs, char[] senses, double[] rhss, String[] names, int start, int len)#
Add new linear constraints to a model. This signature allows you to use arrays to hold the various constraint attributes (left-hand side, sense, etc.), without forcing you to add one constraint for each entry in the array. The
start
andlen
arguments allow you to specify which constraints to add.We recommend that you build your model one constraint at a time (using
addConstr
), since it introduces no significant overhead and we find that it produces simpler code. Feel free to use these methods if you disagree, though.- Arguments:
lhsExprs – Left-hand side expressions for the new linear constraints.
senses – Senses for new linear constraints (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhss – Right-hand side values for the new linear constraints.
names – Names for new constraints.
start – The first constraint in the list to add.
len – The number of constraints to add.
- Return value:
Array of new constraint objects.
- GRBGenConstr addGenConstrMax(GRBVar resvar, GRBVar[] vars, double constant, String name)#
Add a new general constraint of type
GRB.GENCONSTR_MAX
to a model.A MAX constraint \(r = \max\{x_1,\ldots,x_n,c\}\) states that the resultant variable \(r\) should be equal to the maximum of the operand variables \(x_1,\ldots,x_n\) and the constant \(c\).
- Arguments:
resvar – The resultant variable of the new constraint.
vars – Array of variables that are the operands of the new constraint.
constant – The additional constant operand of the new constraint.
name – Name for the new general constraint.
- Return value:
New general constraint.
- GRBGenConstr addGenConstrMin(GRBVar resvar, GRBVar[] vars, double constant, String name)#
Add a new general constraint of type
GRB.GENCONSTR_MIN
to a model.A MIN constraint \(r = \min\{x_1,\ldots,x_n,c\}\) states that the resultant variable \(r\) should be equal to the minimum of the operand variables \(x_1,\ldots,x_n\) and the constant \(c\).
- Arguments:
resvar – The resultant variable of the new constraint.
vars – Array of variables that are the operands of the new constraint.
constant – The additional constant operand of the new constraint.
name – Name for the new general constraint.
- Return value:
New general constraint.
- GRBGenConstr addGenConstrAbs(GRBVar resvar, GRBVar argvar, String name)#
Add a new general constraint of type
GRB.GENCONSTR_ABS
to a model.An ABS constraint \(r = \mbox{abs}\{x\}\) states that the resultant variable \(r\) should be equal to the absolute value of the argument variable \(x\).
- Arguments:
resvar – The resultant variable of the new constraint.
argvar – The argument variable of the new constraint.
name – Name for the new general constraint.
- Return value:
New general constraint.
- GRBGenConstr addGenConstrAnd(GRBVar resvar, GRBVar[] vars, String name)#
Add a new general constraint of type
GRB.GENCONSTR_AND
to a model.An AND constraint \(r = \mbox{and}\{x_1,\ldots,x_n\}\) states that the binary resultant variable \(r\) should be \(1\) if and only if all of the operand variables \(x_1,\ldots,x_n\) are equal to \(1\). If any of the operand variables is \(0\), then the resultant should be \(0\) as well.
Note that all variables participating in such a constraint will be forced to be binary, independent of how they were created.
- Arguments:
resvar – The resultant variable of the new constraint.
vars – Array of variables that are the operands of the new constraint.
name – Name for the new general constraint.
- Return value:
New general constraint.
- GRBGenConstr addGenConstrOr(GRBVar resvar, GRBVar[] vars, String name)#
Add a new general constraint of type
GRB.GENCONSTR_OR
to a model.An OR constraint \(r = \mbox{or}\{x_1,\ldots,x_n\}\) states that the binary resultant variable \(r\) should be \(1\) if and only if any of the operand variables \(x_1,\ldots,x_n\) is equal to \(1\). If all operand variables are \(0\), then the resultant should be \(0\) as well.
Note that all variables participating in such a constraint will be forced to be binary, independent of how they were created.
- Arguments:
resvar – The resultant variable of the new constraint.
vars – Array of variables that are the operands of the new constraint.
name – Name for the new general constraint.
- Return value:
New general constraint.
- GRBGenConstr addGenConstrNorm(GRBVar resvar, GRBVar[] vars, double which, String name)#
Add a new general constraint of type
GRB.GENCONSTR_NORM
to a model.A NORM constraint \(r = \mbox{norm}\{x_1,\ldots,x_n\}\) states that the resultant variable \(r\) should be equal to the vector norm of the argument vector \(x_1,\ldots,x_n\).
- Arguments:
resvar – The resultant variable of the new constraint.
vars – Array of variables that are the operands of the new constraint. Note that this array may not contain duplicates.
which – Which norm to use. Options are 0, 1, 2, and GRB.INFINITY.
name – Name for the new general constraint.
- Return value:
New general constraint.
- GRBGenConstr addGenConstrIndicator(GRBVar binvar, int binval, GRBLinExpr expr, char sense, double rhs, String name)#
Add a new general constraint of type
GRB.GENCONSTR_INDICATOR
to a model.An INDICATOR constraint \(z = f \rightarrow a^Tx \leq b\) states that if the binary indicator variable \(z\) is equal to \(f\), where \(f \in \{0,1\}\), then the linear constraint \(a^Tx \leq b\) should hold. On the other hand, if \(z = 1-f\) , the linear constraint may be violated. The sense of the linear constraint can also be specified to be \(=\) or \(\geq\) .
Note that the indicator variable \(z\) of a constraint will be forced to be binary, independent of how it was created.
- Arguments:
binvar – The binary indicator variable.
binval – The value for the binary indicator variable that would force the linear constraint to be satisfied (\(0\) or \(1\)).
expr – Left-hand side expression for the linear constraint triggered by the indicator.
sense – Sense for the linear constraint. Options are
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
.rhs – Right-hand side value for the linear constraint.
name – Name for the new general constraint.
- Return value:
New general constraint.
- GRBGenConstr addGenConstrPWL(GRBVar xvar, GRBVar yvar, double[] xpts, double[] ypts, String name)#
Add a new general constraint of type
GRB.GENCONSTR_PWL
to a model.A piecewise-linear (PWL) constraint states that the relationship \(y = f(x)\) must hold between variables \(x\) and \(y\), where \(f\) is a piecewise-linear function. The breakpoints for \(f\) are provided as arguments. Refer to the description of piecewise-linear objectives for details of how piecewise-linear functions are defined.
- Arguments:
xvar – The \(x\) variable.
yvar – The \(y\) variable.
xpts – The \(x\) values for the points that define the piecewise-linear function. Must be in non-decreasing order.
ypts – The \(y\) values for the points that define the piecewise-linear function.
name – Name for the new general constraint.
- Return value:
New general constraint.
- GRBGenConstr addGenConstrPoly(GRBVar xvar, GRBVar yvar, double[] p, String name, String options)#
Add a new general constraint of type
GRB.GENCONSTR_POLY
to a model.A polynomial function constraint states that the relationship \(y = p_0 x^d + p_1 x^{d-1} + ... + p_{d-1} x + p_{d}\) should hold between variables \(x\) and \(y\).
A piecewise-linear approximation of the function is added to the model. The details of the approximation are controlled using the following four attributes (or using the parameters with the same names): FuncPieces, FuncPieceError, FuncPieceLength, and FuncPieceRatio. Alternatively, the function can be treated as a nonlinear constraint by setting the attribute FuncNonlinear. For details, consult the General Constraint discussion.
- Arguments:
xvar – The \(x\) variable.
yvar – The \(y\) variable.
p – The coefficients for the polynomial function (starting with the coefficient for the highest power).
name – Name for the new general constraint.
options – A string that can be used to set the attributes that control the piecewise-linear approximation of this function constraint. To assign a value to an attribute, follow the attribute name with an equal sign and the desired value (with no spaces). Assignments for different attributes should be separated by spaces (e.g. “FuncPieces=-1 FuncPieceError=0.001”).
- Return value:
New general constraint.
- GRBGenConstr addGenConstrExp(GRBVar xvar, GRBVar yvar, String name, String options)#
Add a new general constraint of type
GRB.GENCONSTR_EXP
to a model.A natural exponential function constraint states that the relationship \(y = \exp(x)\) should hold for variables \(x\) and \(y\).
A piecewise-linear approximation of the function is added to the model. The details of the approximation are controlled using the following four attributes (or using the parameters with the same names): FuncPieces, FuncPieceError, FuncPieceLength, and FuncPieceRatio. Alternatively, the function can be treated as a nonlinear constraint by setting the attribute FuncNonlinear. For details, consult the General Constraint discussion.
- Arguments:
xvar – The \(x\) variable.
yvar – The \(y\) variable.
name – Name for the new general constraint.
options – A string that can be used to set the attributes that control the piecewise-linear approximation of this function constraint. To assign a value to an attribute, follow the attribute name with an equal sign and the desired value (with no spaces). Assignments for different attributes should be separated by spaces (e.g. “FuncPieces=-1 FuncPieceError=0.001”).
- Return value:
New general constraint.
- GRBGenConstr addGenConstrExpA(GRBVar xvar, GRBVar yvar, double a, String name, String options)#
Add a new general constraint of type
GRB.GENCONSTR_EXPA
to a model.An exponential function constraint states that the relationship \(y = a^x\) should hold for variables \(x\) and \(y\), where \(a > 0\)
is the (constant) base.
A piecewise-linear approximation of the function is added to the model. The details of the approximation are controlled using the following four attributes (or using the parameters with the same names): FuncPieces, FuncPieceError, FuncPieceLength, and FuncPieceRatio. Alternatively, the function can be treated as a nonlinear constraint by setting the attribute FuncNonlinear. For details, consult the General Constraint discussion.
- Arguments:
xvar – The \(x\) variable.
yvar – The \(y\) variable.
a – The base of the function, \(a > 0\) .
name – Name for the new general constraint.
options – A string that can be used to set the attributes that control the piecewise-linear approximation of this function constraint. To assign a value to an attribute, follow the attribute name with an equal sign and the desired value (with no spaces). Assignments for different attributes should be separated by spaces (e.g. “FuncPieces=-1 FuncPieceError=0.001”).
- Return value:
New general constraint.
- GRBGenConstr addGenConstrLog(GRBVar xvar, GRBVar yvar, String name, String options)#
Add a new general constraint of type
GRB.GENCONSTR_LOG
to a model.A natural logarithmic function constraint states that the relationship \(y = \log(x)\) should hold for variables \(x\) and \(y\).
A piecewise-linear approximation of the function is added to the model. The details of the approximation are controlled using the following four attributes (or using the parameters with the same names): FuncPieces, FuncPieceError, FuncPieceLength, and FuncPieceRatio. Alternatively, the function can be treated as a nonlinear constraint by setting the attribute FuncNonlinear. For details, consult the General Constraint discussion.
- Arguments:
xvar – The \(x\) variable.
yvar – The \(y\) variable.
name – Name for the new general constraint.
options – A string that can be used to set the attributes that control the piecewise-linear approximation of this function constraint. To assign a value to an attribute, follow the attribute name with an equal sign and the desired value (with no spaces). Assignments for different attributes should be separated by spaces (e.g. “FuncPieces=-1 FuncPieceError=0.001”).
- Return value:
New general constraint.
- GRBGenConstr addGenConstrLogA(GRBVar xvar, GRBVar yvar, double a, String name, String options)#
Add a new general constraint of type
GRB.GENCONSTR_LOGA
to a model.A logarithmic function constraint states that the relationship \(y = \log_a(x)\) should hold for variables \(x\) and \(y\), where \(a > 0\)
is the (constant) base.
A piecewise-linear approximation of the function is added to the model. The details of the approximation are controlled using the following four attributes (or using the parameters with the same names): FuncPieces, FuncPieceError, FuncPieceLength, and FuncPieceRatio. Alternatively, the function can be treated as a nonlinear constraint by setting the attribute FuncNonlinear. For details, consult the General Constraint discussion.
- Arguments:
xvar – The \(x\) variable.
yvar – The \(y\) variable.
a – The base of the function, \(a > 0\) .
name – Name for the new general constraint.
options – A string that can be used to set the attributes that control the piecewise-linear approximation of this function constraint. To assign a value to an attribute, follow the attribute name with an equal sign and the desired value (with no spaces). Assignments for different attributes should be separated by spaces (e.g. “FuncPieces=-1 FuncPieceError=0.001”).
- Return value:
New general constraint.
- GRBGenConstr addGenConstrLogistic(GRBVar xvar, GRBVar yvar, String name, String options)#
Add a new general constraint of type
GRB.GENCONSTR_LOGISTIC
to a model.A logistic function constraint states that the relationship \(y = \frac{1}{1 + e^{-x}}\) should hold for variables \(x\) and \(y\).
A piecewise-linear approximation of the function is added to the model. The details of the approximation are controlled using the following four attributes (or using the parameters with the same names): FuncPieces, FuncPieceError, FuncPieceLength, and FuncPieceRatio. Alternatively, the function can be treated as a nonlinear constraint by setting the attribute FuncNonlinear. For details, consult the General Constraint discussion.
- Arguments:
xvar – The \(x\) variable.
yvar – The \(y\) variable.
name – Name for the new general constraint.
options – A string that can be used to set the attributes that control the piecewise-linear approximation of this function constraint. To assign a value to an attribute, follow the attribute name with an equal sign and the desired value (with no spaces). Assignments for different attributes should be separated by spaces (e.g. “FuncPieces=-1 FuncPieceError=0.001”).
- Return value:
New general constraint.
- GRBGenConstr addGenConstrPow(GRBVar xvar, GRBVar yvar, double a, String name, String options)#
Add a new general constraint of type
GRB.GENCONSTR_POW
to a model.A power function constraint states that the relationship \(y = x^a\) should hold for variables \(x\) and \(y\), where \(a\) is the (constant) exponent.
If the exponent \(a\) is negative, the lower bound on \(x\) must be strictly positive. If the exponent isn’t an integer, the lower bound on \(x\) must be non-negative.
A piecewise-linear approximation of the function is added to the model. The details of the approximation are controlled using the following four attributes (or using the parameters with the same names): FuncPieces, FuncPieceError, FuncPieceLength, and FuncPieceRatio. Alternatively, the function can be treated as a nonlinear constraint by setting the attribute FuncNonlinear. For details, consult the General Constraint discussion.
- Arguments:
xvar – The \(x\) variable.
yvar – The \(y\) variable.
a – The exponent of the function.
name – Name for the new general constraint.
options – A string that can be used to set the attributes that control the piecewise-linear approximation of this function constraint. To assign a value to an attribute, follow the attribute name with an equal sign and the desired value (with no spaces). Assignments for different attributes should be separated by spaces (e.g. “FuncPieces=-1 FuncPieceError=0.001”).
- Return value:
New general constraint.
- GRBGenConstr addGenConstrSin(GRBVar xvar, GRBVar yvar, String name, String options)#
Add a new general constraint of type
GRB.GENCONSTR_SIN
to a model.A sine function constraint states that the relationship \(y = \sin(x)\) should hold for variables \(x\) and \(y\).
A piecewise-linear approximation of the function is added to the model. The details of the approximation are controlled using the following four attributes (or using the parameters with the same names): FuncPieces, FuncPieceError, FuncPieceLength, and FuncPieceRatio. Alternatively, the function can be treated as a nonlinear constraint by setting the attribute FuncNonlinear. For details, consult the General Constraint discussion.
- Arguments:
xvar – The \(x\) variable.
yvar – The \(y\) variable.
name – Name for the new general constraint.
options – A string that can be used to set the attributes that control the piecewise-linear approximation of this function constraint. To assign a value to an attribute, follow the attribute name with an equal sign and the desired value (with no spaces). Assignments for different attributes should be separated by spaces (e.g. “FuncPieces=-1 FuncPieceError=0.001”).
- Return value:
New general constraint.
- GRBGenConstr addGenConstrCos(GRBVar xvar, GRBVar yvar, String name, String options)#
Add a new general constraint of type
GRB.GENCONSTR_COS
to a model.A cosine function constraint states that the relationship \(y = \cos(x)\) should hold for variables \(x\) and \(y\).
A piecewise-linear approximation of the function is added to the model. The details of the approximation are controlled using the following four attributes (or using the parameters with the same names): FuncPieces, FuncPieceError, FuncPieceLength, and FuncPieceRatio. Alternatively, the function can be treated as a nonlinear constraint by setting the attribute FuncNonlinear. For details, consult the General Constraint discussion.
- Arguments:
xvar – The \(x\) variable.
yvar – The \(y\) variable.
name – Name for the new general constraint.
options – A string that can be used to set the attributes that control the piecewise-linear approximation of this function constraint. To assign a value to an attribute, follow the attribute name with an equal sign and the desired value (with no spaces). Assignments for different attributes should be separated by spaces (e.g. “FuncPieces=-1 FuncPieceError=0.001”).
- Return value:
New general constraint.
- GRBGenConstr addGenConstrTan(GRBVar xvar, GRBVar yvar, String name, String options)#
Add a new general constraint of type
GRB.GENCONSTR_TAN
to a model.A tangent function constraint states that the relationship \(y = \tan(x)\) should hold for variables \(x\) and \(y\).
A piecewise-linear approximation of the function is added to the model. The details of the approximation are controlled using the following four attributes (or using the parameters with the same names): FuncPieces, FuncPieceError, FuncPieceLength, and FuncPieceRatio. Alternatively, the function can be treated as a nonlinear constraint by setting the attribute FuncNonlinear. For details, consult the General Constraint discussion.
- Arguments:
xvar – The \(x\) variable.
yvar – The \(y\) variable.
name – Name for the new general constraint.
options – A string that can be used to set the attributes that control the piecewise-linear approximation of this function constraint. To assign a value to an attribute, follow the attribute name with an equal sign and the desired value (with no spaces). Assignments for different attributes should be separated by spaces (e.g. “FuncPieces=-1 FuncPieceError=0.001”).
- Return value:
New general constraint.
- GRBQConstr addQConstr(GRBQuadExpr lhsExpr, char sense, GRBQuadExpr rhsExpr, String name)#
Add a quadratic constraint to a model.
Important
Gurobi can handle both convex and non-convex quadratic constraints. The differences between them can be both important and subtle. Refer to this discussion for additional information.
- Arguments:
lhsExpr – Left-hand side quadratic expression for new quadratic constraint.
sense – Sense for new quadratic constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhsExpr – Right-hand side quadratic expression for new quadratic constraint.
name – Name for new constraint.
- Return value:
New quadratic constraint object.
- GRBQConstr addQConstr(GRBQuadExpr lhsExpr, char sense, GRBVar rhsVar, String name)#
Add a quadratic constraint to a model.
Important
Gurobi can handle both convex and non-convex quadratic constraints. The differences between them can be both important and subtle. Refer to this discussion for additional information.
- Arguments:
lhsExpr – Left-hand side quadratic expression for new quadratic constraint.
sense – Sense for new quadratic constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhsVar – Right-hand side variable for new quadratic constraint.
name – Name for new constraint.
- Return value:
New quadratic constraint object.
- GRBQConstr addQConstr(GRBQuadExpr lhsExpr, char sense, GRBLinExpr rhsExpr, String name)#
Add a quadratic constraint to a model.
Important
Gurobi can handle both convex and non-convex quadratic constraints. The differences between them can be both important and subtle. Refer to this discussion for additional information.
- Arguments:
lhsExpr – Left-hand side quadratic expression for new quadratic constraint.
sense – Sense for new quadratic constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhsExpr – Right-hand side linear expression for new quadratic constraint.
name – Name for new constraint.
- Return value:
New quadratic constraint object.
- GRBQConstr addQConstr(GRBQuadExpr lhsExpr, char sense, double rhs, String name)#
Add a quadratic constraint to a model.
Important
Gurobi can handle both convex and non-convex quadratic constraints. The differences between them can be both important and subtle. Refer to this discussion for additional information.
- Arguments:
lhsExpr – Left-hand side quadratic expression for new quadratic constraint.
sense – Sense for new quadratic constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhs – Right-hand side value for new quadratic constraint.
name – Name for new constraint.
- Return value:
New quadratic constraint object.
- GRBQConstr addQConstr(GRBLinExpr lhsExpr, char sense, GRBQuadExpr rhsExpr, String name)#
Add a quadratic constraint to a model.
Important
Gurobi can handle both convex and non-convex quadratic constraints. The differences between them can be both important and subtle. Refer to this discussion for additional information.
- Arguments:
lhsExpr – Left-hand side linear expression for new quadratic constraint.
sense – Sense for new quadratic constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhsExpr – Right-hand side quadratic expression for new quadratic constraint.
name – Name for new constraint.
- Return value:
New quadratic constraint object.
- GRBQConstr addQConstr(GRBVar lhsVar, char sense, GRBQuadExpr rhsExpr, String name)#
Add a quadratic constraint to a model.
Important
Gurobi can handle both convex and non-convex quadratic constraints. The differences between them can be both important and subtle. Refer to this discussion for additional information.
- Arguments:
lhsVar – Left-hand side variable for new quadratic constraint.
sense – Sense for new quadratic constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhsExpr – Right-hand side quadratic expression for new quadratic constraint.
name – Name for new constraint.
- Return value:
New quadratic constraint object.
- GRBQConstr addQConstr(double lhs, char sense, GRBQuadExpr rhsExpr, String name)#
Add a quadratic constraint to a model.
Important
Gurobi can handle both convex and non-convex quadratic constraints. The differences between them can be both important and subtle. Refer to this discussion for additional information.
- Arguments:
lhs – Left-hand side value for new quadratic constraint.
sense – Sense for new quadratic constraint (
GRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
).rhsExpr – Right-hand side quadratic expression for new quadratic constraint.
name – Name for new constraint.
- Return value:
New quadratic constraint object.
- GRBConstr addRange(GRBLinExpr expr, double lower, double upper, String name)#
Add a single range constraint to a model. A range constraint states that the value of the input expression must be between the specified
lower
andupper
bounds in any solution.Note that range constraints are stored internally as equality constraints. We add an extra variable to the model to capture the range information. Thus, the Sense attribute on a range constraint will always be
GRB.EQUAL
. In particular introducing a range constraint\[L \leq a^T x \leq U\]is equivalent to adding a slack variable \(s\) and the following constraints
\[\begin{split}\begin{array}{rl} a^T x - s & = L \\ 0 \leq s & \leq U - L. \end{array}\end{split}\]- Arguments:
expr – Linear expression for new range constraint.
lower – Lower bound for linear expression.
upper – Upper bound for linear expression.
name – Name for new constraint.
- Return value:
New constraint object.
- GRBConstr[] addRanges(GRBLinExpr[] exprs, double[] lower, double[] upper, String[] names)#
Add new range constraints to a model. A range constraint states that the value of the input expression must be between the specified
lower
andupper
bounds in any solution.- Arguments:
exprs – Linear expressions for the new range constraints.
lower – Lower bounds for linear expressions.
upper – Upper bounds for linear expressions.
names – Names for new range constraints.
- Return value:
Array of new constraint objects.
- GRBSOS addSOS(GRBVar[] vars, double[] weights, int type)#
Add an SOS constraint to the model. Please refer to the SOS Constraints section in the Reference Manual for additional details.
- Arguments:
vars – Array of variables that participate in the SOS constraint.
weights – Weights for the variables in the SOS constraint.
type – SOS type (can be
GRB.SOS_TYPE1
orGRB.SOS_TYPE2
).
- Return value:
New SOS constraint.
- GRBVar addVar(double lb, double ub, double obj, char type, String name)#
Add a single decision variable to a model; non-zero entries will be added later.
- Arguments:
lb – Lower bound for new variable.
ub – Upper bound for new variable.
obj – Objective coefficient for new variable.
type – Variable type for new variable (
GRB.CONTINUOUS
,GRB.BINARY
,GRB.INTEGER
,GRB.SEMICONT
, orGRB.SEMIINT
).name – Name for new variable.
- Return value:
New variable object.
- GRBVar addVar(double lb, double ub, double obj, char type, GRBConstr[] constrs, double[] coeffs, String name)#
Add a single decision variable and the associated non-zero coefficients to a model.
- Arguments:
lb – Lower bound for new variable.
ub – Upper bound for new variable.
obj – Objective coefficient for new variable.
type – Variable type for new variable (
GRB.CONTINUOUS
,GRB.BINARY
,GRB.INTEGER
,GRB.SEMICONT
, orGRB.SEMIINT
).constrs – Array of constraints in which the variable participates.
coeffs – Array of coefficients for each constraint in which the variable participates. The lengths of the
constrs
andcoeffs
arrays must be identical.name – Name for new variable.
- Return value:
New variable object.
- GRBVar addVar(double lb, double ub, double obj, char type, GRBColumn col, String name)#
Add a single decision variable to a model. This signature allows you to specify the set of constraints to which the new variable belongs using a
GRBColumn
object.- Arguments:
lb – Lower bound for new variable.
ub – Upper bound for new variable.
obj – Objective coefficient for new variable.
type – Variable type for new variable (
GRB.CONTINUOUS
,GRB.BINARY
,GRB.INTEGER
,GRB.SEMICONT
, orGRB.SEMIINT
).col – GRBColumn object for specifying a set of constraints to which new variable belongs.
name – Name for new variable.
- Return value:
New variable object.
- GRBVar[] addVars(int count, char type)#
Add
count
new decision variables to a model. All associated attributes take their default values, except the variabletype
, which is specified as an argument.- Arguments:
count – Number of variables to add.
type – Variable type for new variables (
GRB.CONTINUOUS
,GRB.BINARY
,GRB.INTEGER
,GRB.SEMICONT
, orGRB.SEMIINT
).
- Return value:
Array of new variable objects.
- GRBVar[] addVars(double[] lb, double[] ub, double[] obj, char[] type, String[] names)#
Add new decision variables to a model. The number of added variables is determined by the length of the input arrays (which must be consistent across all arguments).
- Arguments:
lb – Lower bounds for new variables. Can be
null
, in which case the variables get lower bounds of 0.0.ub – Upper bounds for new variables. Can be
null
, in which case the variables get infinite upper bounds.obj – Objective coefficients for new variables. Can be
null
, in which case the variables get objective coefficients of 0.0.type – Variable types for new variables (
GRB.CONTINUOUS
,GRB.BINARY
,GRB.INTEGER
,GRB.SEMICONT
, orGRB.SEMIINT
). Can benull
, in which case the variables are assumed to be continuous.names – Names for new variables. Can be
null
, in which case all variables are given default names.
- Return value:
Array of new variable objects.
- GRBVar[] addVars(double[] lb, double[] ub, double[] obj, char[] type, String[] names, int start, int len)#
Add new decision variables to a model. This signature allows you to use arrays to hold the various variable attributes (lower bound, upper bound, etc.), without forcing you to add a variable for each entry in the array. The
start
andlen
arguments allow you to specify which variables to add.- Arguments:
lb – Lower bounds for new variables. Can be
null
, in which case the variables get lower bounds of 0.0.ub – Upper bounds for new variables. Can be
null
, in which case the variables get infinite upper bounds.obj – Objective coefficients for new variables. Can be
null
, in which case the variables get objective coefficients of 0.0.type – Variable types for new variables (
GRB.CONTINUOUS
,GRB.BINARY
,GRB.INTEGER
,GRB.SEMICONT
, orGRB.SEMIINT
). Can benull
, in which case the variables are assumed to be continuous.names – Names for new variables. Can be
null
, in which case all variables are given default names.start – The first variable in the list to add.
len – The number of variables to add.
- Return value:
Array of new variable objects.
- GRBVar[] addVars(double[] lb, double[] ub, double[] obj, char[] type, String[] names, GRBColumn[] cols)#
Add new decision variables to a model. This signature allows you to specify the list of constraints to which each new variable belongs using an array of
GRBColumn
objects.- Arguments:
lb – Lower bounds for new variables. Can be
null
, in which case the variables get lower bounds of 0.0.ub – Upper bounds for new variables. Can be
null
, in which case the variables get infinite upper bounds.obj – Objective coefficients for new variables. Can be
null
, in which case the variables get objective coefficients of 0.0.type – Variable types for new variables (
GRB.CONTINUOUS
,GRB.BINARY
,GRB.INTEGER
,GRB.SEMICONT
, orGRB.SEMIINT
). Can benull
, in which case the variables are assumed to be continuous.names – Names for new variables. Can be
null
, in which case all variables are given default names.cols – GRBColumn objects for specifying a set of constraints to which each new column belongs.
- Return value:
Array of new variable objects.
- void chgCoeff(GRBConstr constr, GRBVar var, double newval)#
Change one coefficient in the model. The desired change is captured using a
GRBVar
object, aGRBConstr
object, and a desired coefficient for the specified variable in the specified constraint. If you make multiple changes to the same coefficient, the last one will be applied.Note that, due to our lazy update approach, the change won’t actually take effect until you update the model (using
GRBModel.update
), optimize the model (usingGRBModel.optimize
), or write the model to disk (usingGRBModel.write
).- Arguments:
constr – Constraint for coefficient to be changed.
var – Variable for coefficient to be changed.
newval – Desired new value for coefficient.
- void chgCoeffs(GRBConstr[] constrs, GRBVar[] vars, double[] newvals)#
Change a list of coefficients in the model. Each desired change is captured using a
GRBVar
object, aGRBConstr
object, and a desired coefficient for the specified variable in the specified constraint. The entries in the input arrays each correspond to a single desired coefficient change. The lengths of the input arrays must all be the same. If you make multiple changes to the same coefficient, the last one will be applied.Note that, due to our lazy update approach, the change won’t actually take effect until you update the model (using
GRBModel.update
), optimize the model (usingGRBModel.optimize
), or write the model to disk (usingGRBModel.write
).- Arguments:
constrs – Constraints for coefficients to be changed.
vars – Variables for coefficients to be changed.
newvals – Desired new values for coefficients.
- void computeIIS()#
Compute an Irreducible Inconsistent Subsystem (IIS).
An IIS is a subset of the constraints and variable bounds with the following properties:
It is still infeasible, and
If a single constraint or bound is removed, the subsystem becomes feasible.
Note that an infeasible model may have multiple IISs. The one returned by Gurobi is not necessarily the smallest one; there may exist others with fewer constraints or bounds.
IIS results are returned in a number of attributes: IISConstr, IISLB, IISUB, IISSOS, IISQConstr, and IISGenConstr. Each indicates whether the corresponding model element is a member of the computed IIS.
Note that for models with general function constraints, piecewise-linear approximation of the constraints may cause unreliable IIS results.
The IIS log provides information about the progress of the algorithm, including a guess at the eventual IIS size.
If an IIS computation is interrupted before completion, Gurobi will return the smallest infeasible subsystem found to that point.
The IISConstrForce, IISLBForce, IISUBForce, IISSOSForce, IISQConstrForce, and IISGenConstrForce attributes allow you mark model elements to either include or exclude from the computed IIS. Setting the attribute to 1 forces the corresponding element into the IIS, setting it to 0 forces it out of the IIS, and setting it to -1 allows the algorithm to decide.
To give an example of when these attributes might be useful, consider the case where an initial model is known to be feasible, but it becomes infeasible after adding constraints or tightening bounds. If you are only interested in knowing which of the changes caused the infeasibility, you can force the unmodified bounds and constraints into the IIS. That allows the IIS algorithm to focus exclusively on the new constraints, which will often be substantially faster.
Note that setting any of the
Force
attributes to 0 may make the resulting subsystem feasible, which would then make it impossible to construct an IIS. Trying anyway will result in a IIS_NOT_INFEASIBLE error. Similarly, setting this attribute to 1 may result in an IIS that is not irreducible. More precisely, the system would only be irreducible with respect to the model elements that have force values of -1 or 0.This method populates the IISConstr, IISQConstr, and IISGenConstr constraint attributes, the IISSOS, SOS attribute, and the IISLB and IISUB variable attributes. You can also obtain information about the results of the IIS computation by writing a
.ilp
format file (seeGRBModel.write
). This file contains only the IIS from the original model.Use the IISMethod parameter to adjust the behavior of the IIS algorithm.
Note that this method can be used to compute IISs for both continuous and MIP models.
- void discardConcurrentEnvs()#
Discard concurrent environments for a model.
The concurrent environments created by
getConcurrentEnv
will be used by every subsequent call to the concurrent optimizer until the concurrent environments are discarded.Use
getMultiobjEnv
to create a multi-objective environment.
- void discardMultiobjEnvs()#
Discard all multi-objective environments associated with the model, thus restoring multi objective optimization to its default behavior.
Please refer to the discussion of Multiple Objectives for information on how to specify multiple objective functions and control the trade-off between them.
Use
getMultiobjEnv
to create a multi-objective environments.
- void dispose()#
Release the resources associated with a
GRBModel
object. While the Java garbage collector will eventually reclaim these resources, we recommend that you call thedispose
method when you are done using a model.You should not attempt to use a
GRBModel
object after callingdispose
on it.
- double feasRelax(int relaxobjtype, boolean minrelax, GRBVar[] vars, double[] lbpen, double[] ubpen, GRBConstr[] constrs, double[] rhspen)#
Modifies the
GRBModel
object to create a feasibility relaxation. Note that you need to calloptimize
on the result to compute the actual relaxed solution.The feasibility relaxation is a model that, when solved, minimizes the amount by which the solution violates the bounds and linear constraints of the original model. This method provides a number of options for specifying the relaxation.
If you specify
relaxobjtype=0
, the objective of the feasibility relaxation is to minimize the sum of the weighted magnitudes of the bound and constraint violations. Thelbpen
,ubpen
, andrhspen
arguments specify the cost per unit violation in the lower bounds, upper bounds, and linear constraints, respectively.If you specify
relaxobjtype=1
, the objective of the feasibility relaxation is to minimize the weighted sum of the squares of the bound and constraint violations. Thelbpen
,ubpen
, andrhspen
arguments specify the coefficients on the squares of the lower bound, upper bound, and linear constraint violations, respectively.If you specify
relaxobjtype=2
, the objective of the feasibility relaxation is to minimize the weighted count of bound and constraint violations. Thelbpen
,ubpen
, andrhspen
arguments specify the cost of violating a lower bound, upper bound, and linear constraint, respectively.To give an example, if a constraint with
rhspen
valuep
is violated by 2.0, it would contribute2*p
to the feasibility relaxation objective forrelaxobjtype=0
, it would contribute2*2*p
forrelaxobjtype=1
, and it would contributep
forrelaxobjtype=2
.The
minrelax
argument is a boolean that controls the type of feasibility relaxation that is created. Ifminrelax=false
, optimizing the returned model gives a solution that minimizes the cost of the violation. Ifminrelax=true
, optimizing the returned model finds a solution that minimizes the original objective, but only from among those solutions that minimize the cost of the violation. Note thatfeasRelax
must solve an optimization problem to find the minimum possible relaxation whenminrelax=true
, which can be quite expensive.There are two signatures for this method. The more complex one takes a list of variables and constraints, as well as penalties associated with relaxing the corresponding lower bounds, upper bounds, and constraints. If a variable or constraint is not included in one of these lists, the associated bounds or constraints may not be violated. The simpler signature takes a pair of boolean arguments,
vrelax
andcrelax
, that indicate whether variable bounds and/or constraints can be violated. Ifvrelax
/crelax
istrue
, then every bound/constraint is allowed to be violated, respectively, and the associated cost is 1.0.For an example of how this routine transforms a model, and more details about the variables and constraints created, please see this section.
Note that this is a destructive method: it modifies the model on which it is invoked. If you don’t want to modify your original model, use the
GRBModel constructor
to create a copy before invoking this method.Create a feasibility relaxation model.
- Arguments:
relaxobjtype – The cost function used when finding the minimum cost relaxation.
minrelax – The type of feasibility relaxation to perform.
vars – Variables whose bounds are allowed to be violated.
lbpen – Penalty for violating a variable lower bound. One entry for each variable in argument
vars
.ubpen – Penalty for violating a variable upper bound. One entry for each variable in argument
vars
.constrs – Linear constraints that are allowed to be violated.
rhspen – Penalty for violating a linear constraint. One entry for each constraint in argument
constrs
.
- Return value:
Zero if
minrelax
is false. Ifminrelax
is true, the return value is the objective value for the relaxation performed. If the value is less than 0, it indicates that the method failed to create the feasibility relaxation.
- double feasRelax(int relaxobjtype, boolean minrelax, boolean vrelax, boolean crelax)#
Modifies the
GRBModel
object to create a feasibility relaxation. Note that you need to calloptimize
on the result to compute the actual relaxed solution.The feasibility relaxation is a model that, when solved, minimizes the amount by which the solution violates the bounds and linear constraints of the original model. This method provides a number of options for specifying the relaxation.
If you specify
relaxobjtype=0
, the objective of the feasibility relaxation is to minimize the sum of the weighted magnitudes of the bound and constraint violations. Thelbpen
,ubpen
, andrhspen
arguments specify the cost per unit violation in the lower bounds, upper bounds, and linear constraints, respectively.If you specify
relaxobjtype=1
, the objective of the feasibility relaxation is to minimize the weighted sum of the squares of the bound and constraint violations. Thelbpen
,ubpen
, andrhspen
arguments specify the coefficients on the squares of the lower bound, upper bound, and linear constraint violations, respectively.If you specify
relaxobjtype=2
, the objective of the feasibility relaxation is to minimize the weighted count of bound and constraint violations. Thelbpen
,ubpen
, andrhspen
arguments specify the cost of violating a lower bound, upper bound, and linear constraint, respectively.To give an example, if a constraint with
rhspen
valuep
is violated by 2.0, it would contribute2*p
to the feasibility relaxation objective forrelaxobjtype=0
, it would contribute2*2*p
forrelaxobjtype=1
, and it would contributep
forrelaxobjtype=2
.The
minrelax
argument is a boolean that controls the type of feasibility relaxation that is created. Ifminrelax=false
, optimizing the returned model gives a solution that minimizes the cost of the violation. Ifminrelax=true
, optimizing the returned model finds a solution that minimizes the original objective, but only from among those solutions that minimize the cost of the violation. Note thatfeasRelax
must solve an optimization problem to find the minimum possible relaxation whenminrelax=true
, which can be quite expensive.There are two signatures for this method. The more complex one takes a list of variables and constraints, as well as penalties associated with relaxing the corresponding lower bounds, upper bounds, and constraints. If a variable or constraint is not included in one of these lists, the associated bounds or constraints may not be violated. The simpler signature takes a pair of boolean arguments,
vrelax
andcrelax
, that indicate whether variable bounds and/or constraints can be violated. Ifvrelax
/crelax
istrue
, then every bound/constraint is allowed to be violated, respectively, and the associated cost is 1.0.For an example of how this routine transforms a model, and more details about the variables and constraints created, please see this section.
Note that this is a destructive method: it modifies the model on which it is invoked. If you don’t want to modify your original model, use the
GRBModel constructor
to create a copy before invoking this method.Simplified method for creating a feasibility relaxation model.
- Arguments:
relaxobjtype – The cost function used when finding the minimum cost relaxation.
minrelax – The type of feasibility relaxation to perform.
vrelax – Indicates whether variable bounds can be relaxed (with a cost of 1.0 for any violations.
crelax – Indicates whether linear constraints can be relaxed (with a cost of 1.0 for any violations.
- Return value:
Zero if
minrelax
is false. Ifminrelax
is true, the return value is the objective value for the relaxation performed. If the value is less than 0, it indicates that the method failed to create the feasibility relaxation.
- GRBModel fixedModel()#
Create the fixed model associated with a MIP model. The MIP model must have a solution loaded (e.g., after a call to the
optimize
method). In the fixed model, each integer variable is fixed to the value that variable takes in the MIP solution. In addition, continuous variables may be fixed to satisfy SOS or general constraints. The result is a model without any integrality constraints, SOS constraints, or general constraints.Note that, while the fixed problem is always a continuous model, it may contain a non-convex quadratic objective or non-convex quadratic constraints. As a result, it may still be solved using the MIP algorithm.
- Return value:
Fixed model associated with calling object.
- double get(GRB.DoubleParam param)#
Query the value of a double-valued parameter.
- Arguments:
param – The parameter being queried.
- Return value:
The current value of the requested parameter.
- int get(GRB.IntParam param)#
Query the value of an int-valued parameter.
- Arguments:
param – The parameter being queried.
- Return value:
The current value of the requested parameter.
- String get(GRB.StringParam param)#
Query the value of a string-valued parameter.
- Arguments:
param – The parameter being queried.
- Return value:
The current value of the requested parameter.
- char[] get(GRB.CharAttr attr, GRBVar[] vars)#
Query a char-valued variable attribute for an array of variables.
- Arguments:
attr – The attribute being queried.
vars – The variables whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input variable.
- char[] get(GRB.CharAttr attr, GRBVar[] vars, int start, int len)#
Query a char-valued variable attribute for a sub-array of variables.
- Arguments:
attr – The attribute being queried.
vars – A one-dimensional array of variables whose attribute values are being queried.
start – The index of the first variable of interest in the list.
len – The number of variables.
- Return value:
The current values of the requested attribute for each input variable.
- char[][] get(GRB.CharAttr attr, GRBVar[][] vars)#
Query a char-valued variable attribute for a two-dimensional array of variables.
- Arguments:
attr – The attribute being queried.
vars – A two-dimensional array of variables whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input variable.
- char[][][] get(GRB.CharAttr attr, GRBVar[][][] vars)#
Query a char-valued variable attribute for a three-dimensional array of variables.
- Arguments:
attr – The attribute being queried.
vars – A three-dimensional array of variables whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input variable.
- char[] get(GRB.CharAttr attr, GRBConstr[] constrs)#
Query a char-valued constraint attribute for an array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – The constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input constraint.
- char[] get(GRB.CharAttr attr, GRBConstr[] constrs, int start, int len)#
Query a char-valued constraint attribute for a sub-array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – A one-dimensional array of constraints whose attribute values are being queried.
start – The index of the first constraint of interest in the list.
len – The number of constraints.
- Return value:
The current values of the requested attribute for each input constraint.
- char[][] get(GRB.CharAttr attr, GRBConstr[][] constrs)#
Query a char-valued constraint attribute for a two-dimensional array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – A two-dimensional array of constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input constraint.
- char[][][] get(GRB.CharAttr attr, GRBConstr[][][] constrs)#
Query a char-valued constraint attribute for a three-dimensional array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – A three-dimensional array of constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input constraint.
- char[] get(GRB.CharAttr attr, GRBQConstr[] qconstrs)#
Query a char-valued quadratic constraint attribute for an array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – The quadratic constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- char[] get(GRB.CharAttr attr, GRBQConstr[] qconstrs, int start, int len)#
Query a char-valued quadratic constraint attribute for a sub-array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – A one-dimensional array of quadratic constraints whose attribute values are being queried.
start – The index of the first quadratic constraint of interest in the list.
len – The number of quadratic constraints.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- char[][] get(GRB.CharAttr attr, GRBQConstr[][] qconstrs)#
Query a char-valued quadratic constraint attribute for a two-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – A two-dimensional array of quadratic constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- char[][][] get(GRB.CharAttr attr, GRBQConstr[][][] qconstrs)#
Query a char-valued quadratic constraint attribute for a three-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – A three-dimensional array of quadratic constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- double get(GRB.DoubleAttr attr)#
Query the value of a double-valued model attribute.
- Arguments:
attr – The attribute being queried.
- Return value:
The current value of the requested attribute.
- double[] get(GRB.DoubleAttr attr, GRBVar[] vars)#
Query a double-valued variable attribute for an array of variables.
- Arguments:
attr – The attribute being queried.
vars – The variables whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input variable.
- double[] get(GRB.DoubleAttr attr, GRBVar[] vars, int start, int len)#
Query a double-valued variable attribute for a sub-array of variables.
- Arguments:
attr – The attribute being queried.
vars – A one-dimensional array of variables whose attribute values are being queried.
start – The index of the first variable of interest in the list.
len – The number of variables.
- Return value:
The current values of the requested attribute for each input variable.
- double[][] get(GRB.DoubleAttr attr, GRBVar[][] vars)#
Query a double-valued variable attribute for a two-dimensional array of variables.
- Arguments:
attr – The attribute being queried.
vars – A two-dimensional array of variables whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input variable.
- double[][][] get(GRB.DoubleAttr attr, GRBVar[][][] vars)#
Query a double-valued variable attribute for a three-dimensional array of variables.
- Arguments:
attr – The attribute being queried.
vars – A three-dimensional array of variables whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input variable.
- double[] get(GRB.DoubleAttr attr, GRBConstr[] constrs)#
Query a double-valued constraint attribute for an array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – The constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input constraint.
- double[] get(GRB.DoubleAttr attr, GRBConstr[] constrs, int start, int len)#
Query a double-valued constraint attribute for a sub-array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – A one-dimensional array of constraints whose attribute values are being queried.
start – The first constraint of interest in the list.
len – The number of constraints.
- Return value:
The current values of the requested attribute for each input constraint.
- double[][] get(GRB.DoubleAttr attr, GRBConstr[][] constrs)#
Query a double-valued constraint attribute for a two-dimensional array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – A two-dimensional array of constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input constraint.
- double[][][] get(GRB.DoubleAttr attr, GRBConstr[][][] constrs)#
Query a double-valued constraint attribute for a three-dimensional array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – A three-dimensional array of constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input constraint.
- double[] get(GRB.DoubleAttr attr, GRBQConstr[] qconstrs)#
Query a double-valued quadratic constraint attribute for an array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – The quadratic constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- double[] get(GRB.DoubleAttr attr, GRBQConstr[] qconstrs, int start, int len)#
Query a double-valued quadratic constraint attribute for a sub-array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – A one-dimensional array of quadratic constraints whose attribute values are being queried.
start – The first quadratic constraint of interest in the list.
len – The number of quadratic constraints.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- double[][] get(GRB.DoubleAttr attr, GRBQConstr[][] qconstrs)#
Query a double-valued quadratic constraint attribute for a two-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – A two-dimensional array of quadratic constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- double[][][] get(GRB.DoubleAttr attr, GRBQConstr[][][] qconstrs)#
Query a double-valued quadratic constraint attribute for a three-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – A three-dimensional array of quadratic constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- int get(GRB.IntAttr attr)#
Query the value of an int-valued model attribute.
- Arguments:
attr – The attribute being queried.
- Return value:
The current value of the requested attribute.
- int[] get(GRB.IntAttr attr, GRBVar[] vars)#
Query an int-valued variable attribute for an array of variables.
- Arguments:
attr – The attribute being queried.
vars – The variables whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input variable.
- int[] get(GRB.IntAttr attr, GRBVar[] vars, int start, int len)#
Query an int-valued variable attribute for a sub-array of variables.
- Arguments:
attr – The attribute being queried.
vars – A one-dimensional array of variables whose attribute values are being queried.
start – The index of the first variable of interest in the list.
len – The number of variables.
- Return value:
The current values of the requested attribute for each input variable.
- int[][] get(GRB.IntAttr attr, GRBVar[][] vars)#
Query an int-valued variable attribute for a two-dimensional array of variables.
- Arguments:
attr – The attribute being queried.
vars – A two-dimensional array of variables whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input variable.
- int[][][] get(GRB.IntAttr attr, GRBVar[][][] vars)#
Query an int-valued variable attribute for a three-dimensional array of variables.
- Arguments:
attr – The attribute being queried.
vars – A three-dimensional array of variables whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input variable.
- int[] get(GRB.IntAttr attr, GRBConstr[] constrs)#
Query an int-valued constraint attribute for an array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – The constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input constraint.
- int[] get(GRB.IntAttr attr, GRBConstr[] constrs, int start, int len)#
Query an int-valued constraint attribute for a sub-array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – A one-dimensional array of constraints whose attribute values are being queried.
start – The index of the first constraint of interest in the list.
len – The number of constraints.
- Return value:
The current values of the requested attribute for each input constraint.
- int[][] get(GRB.IntAttr attr, GRBConstr[][] constrs)#
Query an int-valued constraint attribute for a two-dimensional array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – A two-dimensional array of constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input constraint.
- int[][][] get(GRB.IntAttr attr, GRBConstr[][][] constrs)#
Query an int-valued constraint attribute for a three-dimensional array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – A three-dimensional array of constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input constraint.
- int[] get(GRB.IntAttr attr, GRBQConstr[] qconstrs)#
Query an int-valued quadratic constraint attribute for an array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – The quadratic constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- int[] get(GRB.IntAttr attr, GRBQConstr[] qconstrs, int start, int len)#
Query an int-valued quadratic constraint attribute for a sub-array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – A one-dimensional array of quadratic constraints whose attribute values are being queried.
start – The index of the first quadratic constraint of interest in the list.
len – The number of quadratic constraints.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- int[][] get(GRB.IntAttr attr, GRBQConstr[][] qconstrs)#
Query an int-valued quadratic constraint attribute for a two-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – A two-dimensional array of quadratic constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- int[][][] get(GRB.IntAttr attr, GRBQConstr[][][] qconstrs)#
Query an int-valued quadratic constraint attribute for a three-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – A three-dimensional array of quadratic constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- int[] get(GRB.IntAttr attr, GRBGenConstr[] genconstrs)#
Query an int-valued general constraint attribute for an array of general constraints.
- Arguments:
attr – The attribute being queried.
genconstrs – The general constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input general constraint.
- int[] get(GRB.IntAttr attr, GRBGenConstr[] genconstrs, int start, int len)#
Query an int-valued general constraint attribute for a sub-array of general constraints.
- Arguments:
attr – The attribute being queried.
genconstrs – A one-dimensional array of general constraints whose attribute values are being queried.
start – The index of the first general constraint of interest in the list.
len – The number of general constraints.
- Return value:
The current values of the requested attribute for each input general constraint.
- int[][] get(GRB.IntAttr attr, GRBGenConstr[][] genconstrs)#
Query an int-valued general constraint attribute for a two-dimensional array of general constraints.
- Arguments:
attr – The attribute being queried.
genconstrs – A two-dimensional array of general constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input general constraint.
- int[][][] get(GRB.IntAttr attr, GRBGenConstr[][][] genconstrs)#
Query an int-valued general constraint attribute for a three-dimensional array of general constraints.
- Arguments:
attr – The attribute being queried.
genconstrs – A three-dimensional array of general constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input general constraint.
- String get(GRB.StringAttr attr)#
Query the value of a string-valued model attribute.
- Arguments:
attr – The attribute being queried.
- Return value:
The current value of the requested attribute.
- String[] get(GRB.StringAttr attr, GRBVar[] vars)#
Query a String-valued variable attribute for an array of variables.
- Arguments:
attr – The attribute being queried.
vars – The variables whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input variable.
- String[] get(GRB.StringAttr attr, GRBVar[] vars, int start, int len)#
Query a String-valued variable attribute for a sub-array of variables.
- Arguments:
attr – The attribute being queried.
vars – A one-dimensional array of variables whose attribute values are being queried.
start – The index of the first variable of interest in the list.
len – The number of variables.
- Return value:
The current values of the requested attribute for each input variable.
- String[][] get(GRB.StringAttr attr, GRBVar[][] vars)#
Query a String-valued variable attribute for a two-dimensional array of variables.
- Arguments:
attr – The attribute being queried.
vars – A two-dimensional array of variables whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input variable.
- String[][][] get(GRB.StringAttr attr, GRBVar[][][] vars)#
Query a String-valued variable attribute for a three-dimensional array of variables.
- Arguments:
attr – The attribute being queried.
vars – A three-dimensional array of variables whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input variable.
- String[] get(GRB.StringAttr attr, GRBConstr[] constrs)#
Query a String-valued constraint attribute for an array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – The constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input constraint.
- String[] get(GRB.StringAttr attr, GRBConstr[] constrs, int start, int len)#
Query a String-valued constraint attribute for a sub-array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – A one-dimensional array of constraints whose attribute values are being queried.
start – The index of the first constraint of interest in the list.
len – The number of constraints.
- Return value:
The current values of the requested attribute for each input constraint.
- String[][] get(GRB.StringAttr attr, GRBConstr[][] constrs)#
Query a String-valued constraint attribute for a two-dimensional array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – A two-dimensional array of constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input constraint.
- String[][][] get(GRB.StringAttr attr, GRBConstr[][][] constrs)#
Query a String-valued constraint attribute for a three-dimensional array of constraints.
- Arguments:
attr – The attribute being queried.
constrs – A three-dimensional array of constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input constraint.
- String[] get(GRB.StringAttr attr, GRBQConstr[] qconstrs)#
Query a String-valued quadratic constraint attribute for an array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – The quadratic constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- String[] get(GRB.StringAttr attr, GRBQConstr[] qconstrs, int start, int len)#
Query a String-valued quadratic constraint attribute for a sub-array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – A one-dimensional array of quadratic constraints whose attribute values are being queried.
start – The index of the first quadratic constraint of interest in the list.
len – The number of quadratic constraints.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- String[][] get(GRB.StringAttr attr, GRBQConstr[][] qconstrs)#
Query a String-valued quadratic constraint attribute for a two-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – A two-dimensional array of quadratic constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- String[][][] get(GRB.StringAttr attr, GRBQConstr[][][] qconstrs)#
Query a String-valued quadratic constraint attribute for a three-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being queried.
qconstrs – A three-dimensional array of quadratic constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input quadratic constraint.
- String[] get(GRB.StringAttr attr, GRBGenConstr[] genconstrs)#
Query a String-valued general constraint attribute for an array of general constraints.
- Arguments:
attr – The attribute being queried.
genconstrs – The general constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input general constraint.
- String[] get(GRB.StringAttr attr, GRBGenConstr[] genconstrs, int start, int len)#
Query a String-valued general constraint attribute for a sub-array of constraints.
- Arguments:
attr – The attribute being queried.
genconstrs – A one-dimensional array of general constraints whose attribute values are being queried.
start – The index of the first general constraint of interest in the list.
len – The number of general constraints.
- Return value:
The current values of the requested attribute for each input general constraint.
- String[][] get(GRB.StringAttr attr, GRBGenConstr[][] genconstrs)#
Query a String-valued constraint attribute for a two-dimensional array of general constraints.
- Arguments:
attr – The attribute being queried.
genconstrs – A two-dimensional array of general constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input general constraint.
- String[][][] get(GRB.StringAttr attr, GRBGenConstr[][][] genconstrs)#
Query a String-valued constraint attribute for a three-dimensional array of general constraints.
- Arguments:
attr – The attribute being queried.
genconstrs – A three-dimensional array of general constraints whose attribute values are being queried.
- Return value:
The current values of the requested attribute for each input general constraint.
- double getCoeff(GRBConstr constr, GRBVar var)#
Query the coefficient of variable
var
in linear constraintconstr
(note that the result can be zero).- Arguments:
constr – The requested constraint.
var – The requested variable.
- Return value:
The current value of the requested coefficient.
- GRBColumn getCol(GRBVar var)#
Retrieve the list of constraints in which a variable participates, and the associated coefficients. The result is returned as a
GRBColumn
object.- Arguments:
var – The variable of interest.
- Return value:
A
GRBColumn
object that captures the set of constraints in which the variable participates.
- GRBEnv getConcurrentEnv(int num)#
Create/retrieve a concurrent environment for a model.
This method provides fine-grained control over the concurrent optimizer. By creating your own concurrent environments and setting appropriate parameters on these environments (e.g., the Method parameter), you can control exactly which strategies the concurrent optimizer employs. For example, if you create two concurrent environments, and set Method to primal simplex for one and dual simplex for the other, subsequent concurrent optimizer runs will use the two simplex algorithms rather than the default choices.
Note that you must create contiguously numbered concurrent environments, starting with
num=0
. For example, if you want three concurrent environments, they must be numbered 0, 1, and 2.Once you create concurrent environments, they will be used for every subsequent concurrent optimization on that model. Use
discardConcurrentEnvs
to revert back to default concurrent optimizer behavior.- Arguments:
num – The concurrent environment number.
- Return value:
The concurrent environment for the model.
- GRBConstr getConstrByName(String name)#
Retrieve a linear constraint from its name. If multiple linear constraints have the same name, this method chooses one arbitrarily. Returns null if no constraint has that name.
- Arguments:
name – The name of the desired linear constraint.
- Return value:
The requested linear constraint.
- GRBConstr[] getConstrs()#
Retrieve an array of all linear constraints in the model.
- Return value:
All linear constraints in the model.
- void getGenConstrMax(GRBGenConstr genc, GRBVar[] resvar, GRBVar[] vars, int[] len, double[] constant)#
Retrieve the data associated with a general constraint of type MAX. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
Typical usage is to call this routine twice. In the first call, you specify the requested general constraint, with a
null
value for thevars
argument. The routine returns the total number of operand variables in the specified general constraint inlen
. That allows you to make certain that thevars
array is of sufficient size to hold the result of the second call.See also
addGenConstrMax
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
resvar – Store the resultant variable of the constraint at
resvar[0]
.vars – Array to store the operand variables of the constraint.
len – Store the number of operand variables of the constraint at
len[0]
.constant – Store the additional constant operand of the constraint at
constant[0]
.
- void getGenConstrMin(GRBGenConstr genc, GRBVar[] resvar, GRBVar[] vars, int[] len, double[] constant)#
Retrieve the data associated with a general constraint of type MIN. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
Typical usage is to call this routine twice. In the first call, you specify the requested general constraint, with a
null
value for thevars
argument. The routine returns the total number of operand variables in the specified general constraint inlen
. That allows you to make certain that thevars
array is of sufficient size to hold the result of the second call.See also
addGenConstrMin
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
resvar – Store the resultant variable of the constraint at
resvar[0]
.vars – Array to store the operand variables of the constraint.
len – Store the number of operand variables of the constraint at
len[0]
.constant – Store the additional constant operand of the constraint at
constant[0]
.
- void getGenConstrAbs(GRBGenConstr genc, GRBVar[] resvar, GRBVar[] argvar)#
Retrieve the data associated with a general constraint of type ABS. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
See also
addGenConstrAbs
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
resvar – Store the resultant variable of the constraint at
resvar[0]
.argvar – Store the argument variable of the constraint at
resvar[0]
.
- void getGenConstrAnd(GRBGenConstr genc, GRBVar[] resvar, GRBVar[] vars, int[] len)#
Retrieve the data associated with a general constraint of type AND. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
Typical usage is to call this routine twice. In the first call, you specify the requested general constraint, with a
null
value for thevars
argument. The routine returns the total number of operand variables in the specified general constraint inlen
. That allows you to make certain that thevars
array is of sufficient size to hold the result of the second call.See also
addGenConstrAnd
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
resvar – Store the resultant variable of the constraint at
resvar[0]
.vars – Array to store the operand variables of the constraint.
len – Store the number of operand variables of the constraint at
len[0]
.
- void getGenConstrOr(GRBGenConstr genc, GRBVar[] resvar, GRBVar[] vars, int[] len)#
Retrieve the data associated with a general constraint of type OR. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
Typical usage is to call this routine twice. In the first call, you specify the requested general constraint, with a
null
value for thevars
argument. The routine returns the total number of operand variables in the specified general constraint inlen
. That allows you to make certain that thevars
array is of sufficient size to hold the result of the second call.See also
addGenConstrOr
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
resvar – Store the resultant variable of the constraint at
resvar[0]
.vars – Array to store the operand variables of the constraint.
len – Store the number of operand variables of the constraint at
len[0]
.
- void getGenConstrNorm(GRBGenConstr genc, GRBVar[] resvar, GRBVar[] vars, int[] len, double[] which)#
Retrieve the data associated with a general constraint of type NORM. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
Typical usage is to call this routine twice. In the first call, you specify the requested general constraint, with a
null
value for thevars
argument. The routine returns the total number of operand variables in the specified general constraint inlen
. That allows you to make certain that thevars
array is of sufficient size to hold the result of the second call.See also
addGenConstrNorm
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
resvar – Store the resultant variable of the constraint at
resvar[0]
.vars – Array to store the operand variables of the constraint.
len – Store the number of operand variables of the constraint at
len[0]
.which – Store the norm type (possible values are 0, 1, 2, or GRB.INFINITY).
- void getGenConstrIndicator(GRBGenConstr genc, GRBVar[] binvar, int[] binval, GRBLinExpr[] expr, char[] sense, double[] rhs)#
Retrieve the data associated with a general constraint of type INDICATOR. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
See also
addGenConstrIndicator
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
binvar – Store the binary indicator variable of the constraint at
binvar[0]
.binval – Store the value that the indicator variable has to take in order to trigger the linear constraint at
binval[0]
.expr – Create a
GRBLinExpr
object to store the left-hand side expression of the linear constraint that is triggered by the indicator atexpr[0]
.sense – Store the sense for the linear constraint at
sense[0]
. Options areGRB.LESS_EQUAL
,GRB.EQUAL
, orGRB.GREATER_EQUAL
.rhs – Store the right-hand side value for the linear constraint at
rhs[0]
.
- void getGenConstrPWL(GRBGenConstr genc, GRBVar[] xvar, GRBVar[] yvar, int[] npts, double[] xpts, double[] ypts)#
Retrieve the data associated with a general constraint of type PWL. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
Typical usage is to call this routine twice. In the first call, you specify the requested general constraint, with a
null
value for thexpts
andypts
arguments. The routine returns the length for thexpts
andypts
arrays innpts
. That allows you to make certain that thexpts
andypts
arrays are of sufficient size to hold the result of the second call.See also
addGenConstrPWL
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
xvar – Store the \(x\) variable.
yvar – Store the \(y\) variable.
npts – Store the number of points that define the piecewise-linear function.
xpts – The \(x\) values for the points that define the piecewise-linear function.
ypts – The \(y\) values for the points that define the piecewise-linear function.
- void getGenConstrPoly(GRBGenConstr genc, GRBVar[] xvar, GRBVar[] yvar, int[] plen, double[] p)#
Retrieve the data associated with a general constraint of type POLY. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
Typical usage is to call this routine twice. In the first call, you specify the requested general constraint, with a
null
value for thep
argument. The routine returns the length of thep
array inplen
. That allows you to make certain that thep
array is of sufficient size to hold the result of the second call.See also
addGenConstrPoly
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
xvar – Store the \(x\) variable.
yvar – Store the \(y\) variable.
plen – Store the array length for p. If \(x^d\) is the highest power term, then \(d+1\) will be returned.
p – The coefficients for polynomial function.
- void getGenConstrExp(GRBGenConstr genc, GRBVar[] xvar, GRBVar[] yvar)#
Retrieve the data associated with a general constraint of type EXP. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
See also
addGenConstrExp
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
xvar – Store the \(x\) variable.
yvar – Store the \(y\) variable.
- void getGenConstrExpA(GRBGenConstr genc, GRBVar[] xvar, GRBVar[] yvar, double[] a)#
Retrieve the data associated with a general constraint of type EXPA. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
See also
addGenConstrExpA
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
xvar – Store the \(x\) variable.
yvar – Store the \(y\) variable.
a – Store the base of the function.
- void getGenConstrLog(GRBGenConstr genc, GRBVar[] xvar, GRBVar[] yvar)#
Retrieve the data associated with a general constraint of type LOG. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
See also
addGenConstrLog
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
xvar – Store the \(x\) variable.
yvar – Store the \(y\) variable.
- void getGenConstrLogA(GRBGenConstr genc, GRBVar[] xvar, GRBVar[] yvar, double[] a)#
Retrieve the data associated with a general constraint of type LOGA. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
See also
addGenConstrLogA
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
xvar – Store the \(x\) variable.
yvar – Store the \(y\) variable.
a – Store the base of the function.
- void getGenConstrLogistic(GRBGenConstr genc, GRBVar[] xvar, GRBVar[] yvar)#
Retrieve the data associated with a general constraint of type LOGISTIC. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
See also
addGenConstrLogistic
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
xvar – Store the \(x\) variable.
yvar – Store the \(y\) variable.
- void getGenConstrPow(GRBGenConstr genc, GRBVar[] xvar, GRBVar[] yvar, double[] a)#
Retrieve the data associated with a general constraint of type POW. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
See also
addGenConstrPow
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
xvar – Store the \(x\) variable.
yvar – Store the \(y\) variable.
a – Store the exponent of the function.
- void getGenConstrSin(GRBGenConstr genc, GRBVar[] xvar, GRBVar[] yvar)#
Retrieve the data associated with a general constraint of type SIN. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
See also
addGenConstrSin
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
xvar – Store the \(x\) variable.
yvar – Store the \(y\) variable.
- void getGenConstrCos(GRBGenConstr genc, GRBVar[] xvar, GRBVar[] yvar)#
Retrieve the data associated with a general constraint of type COS. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
See also
addGenConstrCos
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
xvar – Store the \(x\) variable.
yvar – Store the \(y\) variable.
- void getGenConstrTan(GRBGenConstr genc, GRBVar[] xvar, GRBVar[] yvar)#
Retrieve the data associated with a general constraint of type TAN. Calling this method for a general constraint of a different type leads to an exception. You can query the GenConstrType attribute to determine the type of the general constraint.
See also
addGenConstrTan
for a description of the semantics of this general constraint type.Any of the following arguments can be
null
.- Arguments:
genc – The general constraint object.
xvar – Store the \(x\) variable.
yvar – Store the \(y\) variable.
- GRBGenConstr[] getGenConstrs()#
Retrieve an array of all general constraints in the model.
- Return value:
All general constraints in the model.
- String getJSONSolution()#
After a call to
optimize
, this method returns the resulting solution and related model attributes as a JSON string. Please refer to the JSON solution format section for details.- Return value:
A JSON string.
- GRBEnv getMultiobjEnv(int index)#
Create/retrieve a multi-objective environment for the optimization pass with the given index. This environment enables fine-grained control over the multi-objective optimization process. Specifically, by changing parameters on this environment, you modify the behavior of the optimization that occurs during the corresponding pass of the multi-objective optimization.
Each multi-objective environment starts with a copy of the current model environment.
Please refer to the discussion of Multiple Objectives for information on how to specify multiple objective functions and control the trade-off between them.
Please refer to the discussion on Combining Blended and Hierarchical Objectives for information on the optimization passes to solve multi-objective models.
Use
discardMultiobjEnvs
to discard multi-objective environments and return to standard behavior.- Arguments:
index – The optimization pass index, starting from 0.
- Return value:
The multi-objective environment for that optimization pass when solving the model.
- GRBExpr getObjective()#
Retrieve the optimization objective.
Note that the constant and linear portions of the objective can also be retrieved using the ObjCon and Obj attributes.
- Return value:
The model objective.
- GRBLinExpr getObjective(int index)#
Retrieve an alternative optimization objective. Alternative objectives will always be linear. You can also use this routine to retrieve the primary objective (using
index
= 0), but you will get an exception if the primary objective contains quadratic terms.Please refer to the discussion of Multiple Objectives for more information on the use of alternative objectives.
Note that alternative objectives can also be retrieved using the ObjNCon and ObjN attributes.
- Arguments:
index – The index for the requested alternative objective.
- Return value:
The requested alternative objective.
- int getPWLObj(GRBVar var, double[] x, double[] y)#
Retrieve the piecewise-linear objective function for a variable. The return value gives the number of points that define the function, and the \(x\) and \(y\) arguments give the coordinates of the points, respectively. The \(x\) and \(y\) arguments must be large enough to hold the result. Call this method with
null
values for \(x\) and \(y\) if you just want the number of points.Refer to this discussion for additional information on what the values in \(x\) and \(y\) mean.
- Arguments:
var – The variable whose objective function is being retrieved.
x – The \(x\) values for the points that define the piecewise-linear function. These will always be in non-decreasing order.
y – The \(y\) values for the points that define the piecewise-linear function.
- Return value:
The number of points that define the piecewise-linear objective function.
- GRBQuadExpr getQCRow(GRBQConstr qc)#
Retrieve the left-hand side expression from a quadratic constraint. The result is returned as a
GRBQuadExpr
object.- Arguments:
qc – The quadratic constraint of interest.
- Return value:
A
GRBQuadExpr
object that captures the left-hand side of the quadratic constraint.
- GRBQConstr[] getQConstrs()#
Retrieve an array of all quadratic constraints in the model.
- Return value:
All quadratic constraints in the model.
- GRBLinExpr getRow(GRBConstr constr)#
Retrieve a list of variables that participate in a constraint, and the associated coefficients. The result is returned as a
GRBLinExpr
object.- Arguments:
constr – The constraint of interest. A
GRBConstr
object, typically obtained fromaddConstr
orgetConstrs
.- Return value:
A
GRBLinExpr
object that captures the set of variables that participate in the constraint.
- int getSOS(GRBSOS sos, GRBVar[] vars, double[] weights, int[] type)#
Retrieve the list of variables that participate in an SOS constraint, and the associated coefficients. The return value is the length of this list. Note that the argument arrays must be long enough to accommodate the result. Call the method with
null
array arguments to determine the appropriate array lengths.- Arguments:
sos – The SOS set of interest.
vars – A list of variables that participate in
sos
. Can benull
.weights – The SOS weights for each participating variable. Can be
null
.type – The type of the SOS set (either
GRB.SOS_TYPE1
orGRB.SOS_TYPE2
) is returned intype[0]
.
- Return value:
The number of entries placed in the output arrays. Note that you should consult the return value to determine the length of the result; the arrays sizes won’t necessarily match the result size.
- GRBSOS[] getSOSs()#
Retrieve an array of all SOS constraints in the model.
- Return value:
All SOS constraints in the model.
- void getTuneResult(int i)#
Use this method to retrieve the results of a previous
tune
call. Calling this method with argumentn
causes tuned parameter setn
to be copied into the model. Parameter sets are stored in order of decreasing quality, with parameter set 0 being the best. The number of available sets is stored in attribute TuneResultCount.Once you have retrieved a tuning result, you can call
optimize
to use these parameter settings to optimize the model, orwrite
to write the changed parameters to a.prm
file.Please refer to the Parameter Tuning section in the Reference Manual for details on the tuning tool.
- Arguments:
i – The index of the tuning result to retrieve. The best result is available as index 0. The number of stored results is available in attribute TuneResultCount.
- GRBVar getVarByName(String name)#
Retrieve a variable from its name. If multiple variables have the same name, this method chooses one arbitrarily. Returns null if no variable has that name.
- Arguments:
name – The name of the desired variable.
- Return value:
The requested variable.
- GRBVar[] getVars()#
Retrieve an array of all variables in the model.
- Return value:
All variables in the model.
- void optimize()#
Optimize the model. The algorithm used for the optimization depends on the model type (simplex or barrier for a continuous model; branch-and-cut for a MIP model). Upon successful completion, this method will populate the solution related attributes of the model. See the Attributes section in the Reference Manual for more information on attributes.
Please consult this section in the Reference Manual for a discussion of some of the practical issues associated with solving a precisely defined mathematical model using finite-precision floating-point arithmetic.
Note that this method will process all pending model modifications.
- void optimizeasync()#
Optimize a model asynchronously. This routine returns immediately. Your program can perform other computations while optimization proceeds in the background. To check the state of the asynchronous optimization, query the Status attribute for the model. A value of
IN_PROGRESS
indicates that the optimization has not yet completed. When you are done with your foreground tasks, you must callsync
to sync your foreground program with the asynchronous optimization task.Note that the set of Gurobi calls that you are allowed to make while optimization is running in the background is severely limited. Specifically, you can only perform attribute queries, and only for a few attributes (listed below). Any other calls on the running model, or on any other models that were built within the same Gurobi environment, will fail with error code OPTIMIZATION_IN_PROGRESS.
Note that there are no such restrictions on models built in other environments. Thus, for example, you could create multiple environments, and then have a single foreground program launch multiple simultaneous asynchronous optimizations, each in its own environment.
As already noted, you are allowed to query the value of the Status attribute while an asynchronous optimization is in progress. The other attributes that can be queried are: ObjVal, ObjBound, IterCount, NodeCount, and BarIterCount. In each case, the returned value reflects progress in the optimization to that point. Any attempt to query the value of an attribute not on this list will return an OPTIMIZATION_IN_PROGRESS error.
- String optimizeBatch()#
Submit a new batch request to the Cluster Manager. Returns the BatchID (a string), which uniquely identifies the job in the Cluster Manager and can be used to query the status of this request (from this program or from any other). Once the request has completed, the BatchID can also be used to retrieve the associated solution. To submit a batch request, you must tag at least one element of the model by setting one of the VTag, CTag or QCTag attributes. For more details on batch optimization, please refer to the Batch Optimization section.
Note that this routine will process all pending model modifications.
- Return value:
A unique string identifier for the batch request.
- GRBModel presolve()#
Perform presolve on a model.
Please note that the presolved model computed by this function may be different from the presolved model computed when optimizing the model.
- Return value:
Presolved version of original model.
- void read(String filename)#
This method is the general entry point for importing data from a file into a model. It can be used to read basis files for continuous models, start vectors for MIP models, variable hints for MIP models, branching priorities for MIP models, or parameter settings. The type of data read is determined by the file suffix. File formats are described in the File Format section.
Note that reading a file does not process all pending model modifications. These modifications can be processed by calling
GRBModel.update
.Note also that this is not the method to use if you want to read a new model from a file. For that, use the
GRBModel constructor
. One variant of the constructor takes the name of the file that contains the new model as its argument.- Arguments:
filename – Name of the file to read. The suffix on the file must be either
.bas
(for an LP basis),.mst
or.sol
(for a MIP start),.hnt
(for MIP hints),.ord
(for a priority order),.attr
(for a collection of attribute settings), or.prm
(for a parameter file). The suffix may optionally be followed by.zip
,.gz
,.bz2
, or.7z
.
- void remove(GRBConstr constr)#
Remove a linear constraint from the model. Note that, due to our lazy update approach, the change won’t actually take effect until you update the model (using
GRBModel.update
), optimize the model (usingGRBModel.optimize
), or write the model to disk (usingGRBModel.write
).- Arguments:
constr – The linear constraint to remove.
- void remove(GRBGenConstr genconstr)#
Remove a general constraint from the model. Note that, due to our lazy update approach, the change won’t actually take effect until you update the model (using
GRBModel.update
), optimize the model (usingGRBModel.optimize
), or write the model to disk (usingGRBModel.write
).- Arguments:
genconstr – The general constraint to remove.
- void remove(GRBQConstr qconstr)#
Remove a quadratic constraint from the model. Note that, due to our lazy update approach, the change won’t actually take effect until you update the model (using
GRBModel.update
), optimize the model (usingGRBModel.optimize
), or write the model to disk (usingGRBModel.write
).- Arguments:
qconstr – The quadratic constraint to remove.
- void remove(GRBSOS sos)#
Remove an SOS constraint from the model. Note that, due to our lazy update approach, the change won’t actually take effect until you update the model (using
GRBModel.update
), optimize the model (usingGRBModel.optimize
), or write the model to disk (usingGRBModel.write
).- Arguments:
sos – The SOS constraint to remove.
- void remove(GRBVar var)#
Remove a variable from the model. Note that, due to our lazy update approach, the change won’t actually take effect until you update the model (using
GRBModel.update
), optimize the model (usingGRBModel.optimize
), or write the model to disk (usingGRBModel.write
).- Arguments:
var – The variable to remove.
- void reset()#
Reset the model to an unsolved state, discarding any previously computed solution information.
- void reset(int clearall)#
Reset the model to an unsolved state, discarding any previously computed solution information.
- Arguments:
clearall – A value of 1 discards additional information that affects the solution process but not the actual model (currently MIP starts, variable hints, branching priorities, lazy flags, and partition information). Pass 0 to just discard the solution.
- void setCallback(GRBCallback cb)#
Set the callback object for a model. The
callback()
method on this object will be called periodically from the Gurobi solver. You will have the opportunity to obtain more detailed information about the state of the optimization from this callback. See the documentation forGRBCallback
for additional information.Note that a model can only have a single callback method, so this call will replace an existing callback.
- Arguments:
cb – New callback object. To disable a previously set callback, call this method with a
null
argument.
- void set(GRB.DoubleParam param, double newval)#
Set the value of a double-valued parameter.
The difference between setting a parameter on a model and setting it on an environment (i.e., through
GRBEnv.set
) is that the former modifies the parameter for a single model, while the latter modifies the parameter for every model that is subsequently built using that environment (and leaves the parameter unchanged for models that were previously built using that environment).- Arguments:
param – The parameter being modified.
newval – The desired new value for the parameter.
- void set(GRB.IntParam param, int newval)#
Set the value of an int-valued parameter.
The difference between setting a parameter on a model and setting it on an environment (i.e., through
GRBEnv.set
) is that the former modifies the parameter for a single model, while the latter modifies the parameter for every model that is subsequently built using that environment (and leaves the parameter unchanged for models that were previously built using that environment).- Arguments:
param – The parameter being modified.
newval – The desired new value for the parameter.
- void set(GRB.StringParam param, String newval)#
Set the value of a string-valued parameter.
The difference between setting a parameter on a model and setting it on an environment (i.e., through
GRBEnv.set
) is that the former modifies the parameter for a single model, while the latter modifies the parameter for every model that is subsequently built using that environment (and leaves the parameter unchanged for models that were previously built using that environment).- Arguments:
param – The parameter being modified.
newval – The desired new value for the parameter.
- void set(String param, String newval)#
Set the value of any parameter using strings alone.
The difference between setting a parameter on a model and setting it on an environment (i.e., through
GRBEnv.set
) is that the former modifies the parameter for a single model, while the latter modifies the parameter for every model that is subsequently built using that environment (and leaves the parameter unchanged for models that were previously built using that environment).- Arguments:
param – The name of the parameter being modified.
newval – The desired new value for the parameter.
- void set(GRB.CharAttr attr, GRBVar[] vars, char[] newvals)#
Set a char-valued variable attribute for an array of variables.
- Arguments:
attr – The attribute being modified.
vars – The variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
- void set(GRB.CharAttr attr, GRBVar[] vars, char[] newvals, int start, int len)#
Set a char-valued variable attribute for a sub-array of variables.
- Arguments:
attr – The attribute being modified.
vars – A one-dimensional array of variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
start – The index of the first variable of interest in the list.
len – The number of variables.
- void set(GRB.CharAttr attr, GRBVar[][] vars, char[][] newvals)#
Set a char-valued variable attribute for a two-dimensional array of variables.
- Arguments:
attr – The attribute being modified.
vars – A two-dimensional array of variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
- void set(GRB.CharAttr attr, GRBVar[][][] vars, char[][][] newvals)#
Set a char-valued variable attribute for a three-dimensional array of variables.
- Arguments:
attr – The attribute being modified.
vars – A three-dimensional array of variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
- void set(GRB.CharAttr attr, GRBConstr[] constrs, char[] newvals)#
Set a char-valued constraint attribute for an array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – The constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
- void set(GRB.CharAttr attr, GRBConstr[] constrs, char[] newvals, int start, int len)#
Set a char-valued constraint attribute for a sub-array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – A one-dimensional array of constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
start – The index of the first constraint of interest in the list.
len – The number of constraints.
- void set(GRB.CharAttr attr, GRBConstr[][] constrs, char[][] newvals)#
Set a char-valued constraint attribute for a two-dimensional array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – A two-dimensional array of constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
- void set(GRB.CharAttr attr, GRBConstr[][][] constrs, char[][][] newvals)#
Set a char-valued constraint attribute for a three-dimensional array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – A three-dimensional array of constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
- void set(GRB.CharAttr attr, GRBQConstr[] qconstrs, char[] newvals)#
Set a char-valued quadratic constraint attribute for an array of quadratic constraints.
- Arguments:
attr – The attribute being modified.
qconstrs – The quadratic constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input quadratic constraint.
- void set(GRB.CharAttr attr, GRBQConstr[] qconstrs, char[] newvals, int start, int len)#
Set a char-valued quadratic constraint attribute for a sub-array of quadratic constraints.
- Arguments:
attr – The attribute being modified.
qconstrs – A one-dimensional array of quadratic constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input quadratic constraint.
start – The index of the first quadratic constraint of interest in the list.
len – The number of quadratic constraints.
- void set(GRB.CharAttr attr, GRBQConstr[][] qconstrs, char[][] newvals)#
Set a char-valued quadratic constraint attribute for a two-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being modified.
qconstrs – A two-dimensional array of quadratic constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input quadratic constraint.
- void set(GRB.CharAttr attr, GRBQConstr[][][] qconstrs, char[][][] newvals)#
Set a char-valued quadratic constraint attribute for a three-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being modified.
qconstrs – A three-dimensional array of quadratic constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input quadratic constraint.
- void set(GRB.DoubleAttr attr, double newval)#
Set the value of a double-valued model attribute.
- Arguments:
attr – The attribute being modified.
newval – The desired new value for the attribute.
- void set(GRB.DoubleAttr attr, GRBVar[] vars, double[] newvals)#
Set a double-valued variable attribute for an array of variables.
- Arguments:
attr – The attribute being modified.
vars – The variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
- void set(GRB.DoubleAttr attr, GRBVar[] vars, double[] newvals, int start, int len)#
Set a double-valued variable attribute for a sub-array of variables.
- Arguments:
attr – The attribute being modified.
vars – A one-dimensional array of variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
start – The index of the first variable of interest in the list.
len – The number of variables.
- void set(GRB.DoubleAttr attr, GRBVar[][] vars, double[][] newvals)#
Set a double-valued variable attribute for a two-dimensional array of variables.
- Arguments:
attr – The attribute being modified.
vars – A two-dimensional array of variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
- void set(GRB.DoubleAttr attr, GRBVar[][][] vars, double[][][] newvals)#
Set a double-valued variable attribute for a three-dimensional array of variables.
- Arguments:
attr – The attribute being modified.
vars – A three-dimensional array of variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
- void set(GRB.DoubleAttr attr, GRBConstr[] constrs, double[] newvals)#
Set a double-valued constraint attribute for an array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – The constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
- void set(GRB.DoubleAttr attr, GRBConstr[] constrs, double[] newvals, int start, int len)#
Set a double-valued constraint attribute for a sub-array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – A one-dimensional array of constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
start – The first constraint of interest in the list.
len – The number of constraints.
- void set(GRB.DoubleAttr attr, GRBConstr[][] constrs, double[][] newvals)#
Set a double-valued constraint attribute for a two-dimensional array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – A two-dimensional array of constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
- void set(GRB.DoubleAttr attr, GRBConstr[][][] constrs, double[][][] newvals)#
Set a double-valued constraint attribute for a three-dimensional array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – A three-dimensional array of constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
- void set(GRB.DoubleAttr attr, GRBQConstr[] qconstrs, double[] newvals)#
Set a double-valued quadratic constraint attribute for an array of quadratic constraints.
- Arguments:
attr – The attribute being modified.
qconstrs – The quadratic constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input quadratic constraint.
- void set(GRB.DoubleAttr attr, GRBQConstr[] qconstrs, double[] newvals, int start, int len)#
Set a double-valued quadratic constraint attribute for a sub-array of quadratic constraints.
- Arguments:
attr – The attribute being modified.
qconstrs – A one-dimensional array of quadratic constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input quadratic constraint.
start – The first quadratic constraint of interest in the list.
len – The number of quadratic constraints.
- void set(GRB.DoubleAttr attr, GRBQConstr[][] qconstrs, double[][] newvals)#
Set a double-valued quadratic constraint attribute for a two-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being modified.
qconstrs – A two-dimensional array of quadratic constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input quadratic constraint.
- void set(GRB.DoubleAttr attr, GRBQConstr[][][] qconstrs, double[][][] newvals)#
Set a double-valued quadratic constraint attribute for a three-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being modified.
qconstrs – A three-dimensional array of quadratic constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input quadratic constraint.
- void set(GRB.IntAttr attr, int newval)#
Set the value of an int-valued model attribute.
- Arguments:
attr – The attribute being modified.
newval – The desired new value for the attribute.
- void set(GRB.IntAttr attr, GRBVar[] vars, int[] newvals)#
Set an int-valued variable attribute for an array of variables.
- Arguments:
attr – The attribute being modified.
vars – The variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
- void set(GRB.IntAttr attr, GRBVar[] vars, int[] newvals, int start, int len)#
Set an int-valued variable attribute for a sub-array of variables.
- Arguments:
attr – The attribute being modified.
vars – A one-dimensional array of variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
start – The index of the first variable of interest in the list.
len – The number of variables.
- void set(GRB.IntAttr attr, GRBVar[][] vars, int[][] newvals)#
Set an int-valued variable attribute for a two-dimensional array of variables.
- Arguments:
attr – The attribute being modified.
vars – A two-dimensional array of variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
- void set(GRB.IntAttr attr, GRBVar[][][] vars, int[][][] newvals)#
Set an int-valued variable attribute for a three-dimensional array of variables.
- Arguments:
attr – The attribute being modified.
vars – A three-dimensional array of variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
- void set(GRB.IntAttr attr, GRBConstr[] constrs, int[] newvals)#
Set an int-valued constraint attribute for an array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – The constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
- void set(GRB.IntAttr attr, GRBConstr[] constrs, int[] newvals, int start, int len)#
Set an int-valued constraint attribute for a sub-array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – A one-dimensional array of constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
start – The index of the first constraint of interest in the list.
len – The number of constraints.
- void set(GRB.IntAttr attr, GRBConstr[][] constrs, int[][] newvals)#
Set an int-valued constraint attribute for a two-dimensional array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – A two-dimensional array of constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
- void set(GRB.IntAttr attr, GRBConstr[][][] constrs, int[][][] newvals)#
Set an int-valued constraint attribute for a three-dimensional array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – A three-dimensional array of constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
- void set(GRB.StringAttr attr, String newval)#
Set the value of a String-valued model attribute.
- Arguments:
attr – The attribute being modified.
newval – The desired new value for the attribute.
- void set(GRB.StringAttr attr, GRBVar[] vars, String[] newvals)#
Set a String-valued variable attribute for an array of variables.
- Arguments:
attr – The attribute being modified.
vars – The variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
- void set(GRB.StringAttr attr, GRBVar[] vars, String[] newvals, int start, int len)#
Set a String-valued variable attribute for a sub-array of variables.
- Arguments:
attr – The attribute being modified.
vars – A one-dimensional array of variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
start – The index of the first variable of interest in the list.
len – The number of variables.
- void set(GRB.StringAttr attr, GRBVar[][] vars, String[][] newvals)#
Set a String-valued variable attribute for a two-dimensional array of variables.
- Arguments:
attr – The attribute being modified.
vars – A two-dimensional array of variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
- void set(GRB.StringAttr attr, GRBVar[][][] vars, String[][][] newvals)#
Set a String-valued variable attribute for a three-dimensional array of variables.
- Arguments:
attr – The attribute being modified.
vars – A three-dimensional array of variables whose attribute values are being modified.
newvals – The desired new values for the attribute for each input variable.
- void set(GRB.StringAttr attr, GRBConstr[] constrs, String[] newvals)#
Set a String-valued constraint attribute for an array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – The constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
- void set(GRB.StringAttr attr, GRBConstr[] constrs, String[] newvals, int start, int len)#
Set a String-valued constraint attribute for a sub-array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – A one-dimensional array of constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
start – The index of the first constraint of interest in the list.
len – The number of constraints.
- void set(GRB.StringAttr attr, GRBConstr[][] constrs, String[][] newvals)#
Set a String-valued constraint attribute for a two-dimensional array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – A two-dimensional array of constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
- void set(GRB.StringAttr attr, GRBConstr[][][] constrs, String[][][] newvals)#
Set a String-valued constraint attribute for a three-dimensional array of constraints.
- Arguments:
attr – The attribute being modified.
constrs – A three-dimensional array of constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input constraint.
- void set(GRB.StringAttr attr, GRBQConstr[] qconstrs, String[] newvals)#
Set a String-valued quadratic constraint attribute for an array of quadratic constraints.
- Arguments:
attr – The attribute being modified.
qconstrs – The quadratic constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input quadratic constraint.
- void set(GRB.StringAttr attr, GRBQConstr[] qconstrs, String[] newvals, int start, int len)#
Set a String-valued quadratic constraint attribute for a sub-array of quadratic constraints.
- Arguments:
attr – The attribute being modified.
qconstrs – A one-dimensional array of quadratic constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input quadratic constraint.
start – The index of the first quadratic constraint of interest in the list.
len – The number of quadratic constraints.
- void set(GRB.StringAttr attr, GRBQConstr[][] qconstrs, String[][] newvals)#
Set a String-valued quadratic constraint attribute for a two-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being modified.
qconstrs – A two-dimensional array of quadratic constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input quadratic constraint.
- void set(GRB.StringAttr attr, GRBQConstr[][][] qconstrs, String[][][] newvals)#
Set a String-valued quadratic constraint attribute for a three-dimensional array of quadratic constraints.
- Arguments:
attr – The attribute being modified.
qconstrs – A three-dimensional array of quadratic constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input quadratic constraint.
- void set(GRB.StringAttr attr, GRBGenConstr[] genconstrs, String[] newvals)#
Set a String-valued general constraint attribute for an array of general constraints.
- Arguments:
attr – The attribute being modified.
genconstrs – The general constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input general constraint.
- void set(GRB.StringAttr attr, GRBGenConstr[] genconstrs, String[] newvals, int start, int len)#
Set a String-valued general constraint attribute for a sub-array of general constraints.
- Arguments:
attr – The attribute being modified.
genconstrs – A one-dimensional array of general constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input general constraint.
start – The index of the first general constraint of interest in the list.
len – The number of general constraints.
- void set(GRB.StringAttr attr, GRBGenConstr[][] genconstrs, String[][] newvals)#
Set a String-valued general constraint attribute for a two-dimensional array of general constraints.
- Arguments:
attr – The attribute being modified.
genconstrs – A two-dimensional array of general constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input general constraint.
- void set(GRB.StringAttr attr, GRBGenConstr[][][] genconstrs, String[][][] newvals)#
Set a String-valued general constraint attribute for a three-dimensional array of general constraints.
- Arguments:
attr – The attribute being modified.
genconstrs – A three-dimensional array of general constraints whose attribute values are being modified.
newvals – The desired new values for the attribute for each input general constraint.
- void setLogCallback(java.util.function.Consumer<String> logCallback)#
Sets a logging callback function to query all output posted by the model object. Can be set after a model was created.
- Arguments:
logCallback – The logging callback function.
- void setObjective(GRBExpr expr, int sense)#
Set the model objective equal to a linear expression (for multi-objective optimization, see
setObjectiveN
).Note that you can also modify the linear portion of a model objective using the Obj variable attribute. If you wish to mix and match these two approaches, please note that this method replaces the entire existing objective, while the Obj attribute can be used to modify individual linear terms.
- Arguments:
expr – New model objective.
sense – New optimization sense (
GRB.MINIMIZE
for minimization,GRB.MAXIMIZE
for maximization).
- void setObjective(GRBExpr expr)#
Set the model objective equal to quadratic expression (for multi-objective optimization, see
setObjectiveN
). The sense of the objective is determined by the value of the ModelSense attribute.Note that this method replaces the entire existing objective, while the Obj attribute can be used to modify individual linear terms.
- Arguments:
expr – New model objective.
- void setObjectiveN(GRBLinExpr expr, int index, int priority, double weight, double abstol, double reltol, String name)#
Set an alternative optimization objective equal to a linear expression.
Please refer to the discussion of Multiple Objectives for more information on the use of alternative objectives.
Note that you can also modify an alternative objective using the ObjN variable attribute. If you wish to mix and match these two approaches, please note that this method replaces the entire existing objective, while the ObjN attribute can be used to modify individual terms.
- Arguments:
expr – New alternative objective.
index – Index for new objective. If you use an index of 0, this routine will change the primary optimization objective.
priority – Priority for the alternative objective. This initializes the ObjNPriority attribute for this objective.
weight – Weight for the alternative objective. This initializes the ObjNWeight attribute for this objective.
abstol – Absolute tolerance for the alternative objective. This initializes the ObjNAbsTol attribute for this objective.
reltol – Relative tolerance for the alternative objective. This initializes the ObjNRelTol attribute for this objective.
name – Name of the alternative objective. This initializes the ObjNName attribute for this objective.
- void setPWLObj(GRBVar var, double[] x, double[] y)#
Set a piecewise-linear objective function for a variable.
The arguments to this method specify a list of points that define a piecewise-linear objective function for a single variable. Specifically, the \(x\) and \(y\) arguments give coordinates for the vertices of the function.
For additional details on piecewise-linear objective functions, refer to this discussion.
Set the piecewise-linear objective function for a variable.
- Arguments:
var – The variable whose objective function is being set.
x – The \(x\) values for the points that define the piecewise-linear function. Must be in non-decreasing order.
y – The \(y\) values for the points that define the piecewise-linear function.
- GRBModel singleScenarioModel()#
Capture a single scenario from a multi-scenario model. Use the ScenarioNumber parameter to indicate which scenario to capture.
The model on which this method is invoked must be a multi-scenario model, and the result will be a single-scenario model.
- Return value:
Model for a single scenario.
- void sync()#
Wait for a previous asynchronous optimization call to complete.
Calling
optimizeasync
returns control to the calling routine immediately. The caller can perform other computations while optimization proceeds, and can check on the progress of the optimization by querying various model attributes. Thesync
call forces the calling program to wait until the asynchronous optimization call completes. You must callsync
before the corresponding model object is deleted.The
sync
call throws an exception if the optimization itself ran into any problems. In other words, exceptions thrown by this method are those thatoptimize
itself would have thrown, had the original method not been asynchronous.Note that you need to call
sync
even if you know that the asynchronous optimization has already completed.
- void terminate()#
Generate a request to terminate the current optimization. This method can be called at any time during an optimization (from a callback, from another thread, from an interrupt handler, etc.). Note that, in general, the request won’t be acted upon immediately.
When the optimization stops, the Status attribute will be equal to
GRB_INTERRUPTED
.
- void tune()#
Perform an automated search for parameter settings that improve performance. Upon completion, this method stores the best parameter sets it found. The number of stored parameter sets can be determined by querying the value of the TuneResultCount attribute. The actual settings can be retrieved using
getTuneResult
.Please refer to the Parameter Tuning section in the Reference Manual for details on the tuning tool.
- void update()#
Process any pending model modifications.
- void write(String filename)#
This method is the general entry point for writing optimization data to a file. It can be used to write optimization models, solutions vectors, basis vectors, start vectors, or parameter settings. The type of data written is determined by the file suffix. File formats are described in the File Format section.
Note that writing a model to a file will process all pending model modifications. This is also true when writing other model information such as solutions, bases, etc.
Note also that when you write a Gurobi parameter file (PRM), both integer or double parameters not at their default value will be saved, but no string parameter will be saved into the file.
- Arguments:
filename – The name of the file to be written. The file type is encoded in the file name suffix. Valid suffixes are
.mps
,.rew
,.lp
, or.rlp
for writing the model itself,.dua
or.dlp
for writing the dualized model (only pure LP),.ilp
for writing just the IIS associated with an infeasible model (seeGRBModel.computeIIS
for further information),.sol
for writing the solution selected by the SolutionNumber parameter,.mst
for writing a start vector,.hnt
for writing a hint file,.bas
for writing an LP basis,.prm
for writing modified parameter settings,.attr
for writing model attributes, or.json
for writing solution information in JSON format. If your system has compression utilities installed (e.g.,7z
orzip
for Windows, andgzip
,bzip2
, orunzip
for Linux or macOS), then the files can be compressed, so additional suffixes of.gz
,.bz2
, or.7z
are accepted.