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 aGRBSOS
constructor. Similarly, SOS constraints are removed using theGRBModel.Remove
method.An SOS constraint can be of type 1 or 2 (
GRB.SOS_TYPE1
orGRB.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.- 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);
' Create variables Dim x As GRBVar = model.AddVar(0.0, GRB.INFINITY, 0.0, GRB.CONTINUOUS, "x") Dim y As GRBVar = model.AddVar(0.0, GRB.INFINITY, 0.0, GRB.CONTINUOUS, "y") ' Create helper arrays Dim vars As GRBVar() = New GRBVar() {x, y} Dim weights As Double() = New Double() {1.0, 2.0} ' Add SOS1 constraint over x and y Dim constr As GRBSOS = model.AddSOS(vars, weights, GRB.SOS_TYPE1)
SOS constraint objects have a number of attributes, e.g., IISSOS, which can be queried with the
GRBSOS.Get
method. For example, checking whether an SOS constraint is part of an IIS can be queried by callingGet
(GRB.IntAttr.IISSOS
). It can also be queried more directly usingsos.IISSOS
wheresos
is aGRBSOS
object.The full list of attributes can be found in the Attributes section of this document. Examples of how to query and set attributes can also be found in this section.
- int Get(GRB.IntAttr attr)#
Query the value of an SOS attribute.
- Parameters:
attr – The attribute being queried.
- Returns:
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);
' Get information whether constraint participates in a ' previously computed IIS Dim iissos As Integer = constr.Get(GRB.IntAttr.IISSOS)
- void Set(GRB.IntAttr attr, int newvalue)#
Set the value of an SOS attribute.
- Parameters:
attr – The attribute being modified.
newvalue – The desired new value of the attribute.
- Example:
// Force constraint into IIS constr.Set(GRB.IntAttr.IISSOSForce, 1);
' Force constraint into IIS constr.Set(GRB.IntAttr.IISSOSForce, 1)