Gurobi constraint object. Constraints are always associated with a
particular model. You create a constraint object by adding a
constraint to a model (using
than by using a
Constraint objects have a number of attributes. The full list can be found in the Attributes section of this document. Some constraint attributes can only be queried, while others can also be set. Recall that the Gurobi optimizer employs a lazy update approach, so changes to attributes don't take effect until the next call to Model.update or Model.optimize on the associated model.
We should point out a few things about constraint attributes.
rhs attribute. Its value can be queried using
constr.rhs. The Gurobi library ignores letter case in
attribute names, so it can also be queried as
can be set using a standard assignment statement (e.g.,
constr.rhs = 0). However, as mentioned earlier, attribute
modification is done in a lazy fashion, so you won't see the effect of
the change immediately. And some attributes can not be set (e.g., the
Pi attribute), so attempts to assign new values to them will
raise an exception.
You can also use
Constr.setAttr to access
attributes. The attribute name can be passed to these routines as a
string, or you can use the constants defined in the
GRB.Attr class (e.g.,