GRBSOS#

GRBSOS#

Gurobi SOS constraint object. SOS constraints are always associated with a particular model. You create an SOS object by adding an SOS constraint to a model (using GRBModel.addSOS), rather than by using a GRBSOS constructor. Similarly, SOS constraints are removed using the GRBModel.remove method.

An SOS constraint can be of type 1 or 2 (GRB.SOS_TYPE1 or GRB.SOS_TYPE2). A type 1 SOS constraint is a set of variables where at most one variable in the set may take a value other than zero. A type 2 SOS constraint is an ordered set of variables where at most two variables in the set may take non-zero values. If two take non-zero values, they must be contiguous in the ordered set.

SOS constraint objects have one attribute, IISSOS, which can be queried with the GRBSOS.get method.

Example:
// Create variables
GRBVar x = model.addVar(0.0, GRB.INFINITY, 0.0, GRB.CONTINUOUS, "x");
GRBVar y = model.addVar(0.0, GRB.INFINITY, 0.0, GRB.CONTINUOUS, "y");
// Create helper arrays
GRBVar[] vars = {x, y};
double[] weights = {1.0, 2.0};
// Add SOS1 constraint over x and y
GRBSOS constr = model.addSOS(vars, weights, GRB.SOS_TYPE1);
int get(GRB.IntAttr attr)#

Query the value of an SOS attribute.

Arguments:

attr – The attribute being queried.

Return value:

The current value of the requested attribute.

Example:
// Get information whether constraint participates in a
// previously computed IIS
int iissos = constr.get(GRB.IntAttr.IISSOS);
void set(GRB.IntAttr attr, int newval)#

Set the value of an SOS attribute.

Arguments:
  • attr – The attribute being modified.

  • newval – The desired new value of the attribute.

Example:
// Force constraint into IIS
constr.set(GRB.IntAttr.IISSOSForce, 1);