Concepts
Features
Reference
Gurobi SOS constraint object. SOS constraints are always associated witha particular model. You create an SOS object by adding an SOS constraintto a model (usingGRBModel.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 whereat most one variable in the set may take a value other than zero. A type2 SOS constraint is an ordered set of variables where at most twovariables in the set may take non-zero values. If two take non-zerovalues, they must be contiguous in the ordered set.
// Create variablesGRBVarx=model.addVar(0.0,GRB.INFINITY,0.0,GRB.CONTINUOUS,"x");GRBVary=model.addVar(0.0,GRB.INFINITY,0.0,GRB.CONTINUOUS,"y");// Create helper arraysGRBVar[]vars={x,y};double[]weights={1.0,2.0};// Add SOS1 constraint over x and yGRBSOSconstr=model.addSOS(vars,weights,GRB.SOS_TYPE1);
SOS constraint objects have a number of attributes,e.g.,IISSOS, which can bequeried with theGRBSOS.get method.
The full list of attributescan be found in theAttributes section of thisdocument. Examples of how to query and set attributes can also be foundinthis section.
Query the value of an SOS attribute.
attr – The attribute being queried.
The current value of the requested attribute.
// Get information whether constraint participates in a// previously computed IISintiissos=constr.get(GRB.IntAttr.IISSOS);
Set the value of an SOS attribute.
attr – The attribute being modified.
newval – The desired new value of the attribute.
// Force constraint into IISconstr.set(GRB.IntAttr.IISSOSForce,1);
Help and Feedback