docplex.mp.constr module¶
- class docplex.mp.constr.AbstractConstraint(model, name=None)[source]¶
Bases:
IndexableObject
,_AbstractBendersAnnotated
- class docplex.mp.constr.BinaryConstraint(model, left_expr, ctsense, right_expr, name=None)[source]¶
Bases:
AbstractConstraint
- get_left_expr()[source]¶
This property returns the left expression in the constraint.
Example
(X+Y <= Z+1) has left expression (X+Y).
- get_right_expr()[source]¶
This property returns the right expression in the constraint.
Example
(X+Y <= Z+1) has right expression (Z+1).
- iter_variables()[source]¶
Iterates over all variables mentioned in the constraint.
Note: This includes variables that are mentioned with a zero coefficient. For example, the iterator on the following constraint:
X <= X+Y + 1
will return X and Y, although X is mentioned with a zero coefficient.
- Returns:
An iterator object.
- to_string(use_space=False)[source]¶
Returns a string representation of the constraint.
The operators in this representation are the usual operators <=, ==, and >=.
Example
The constraint (X+Y <= Z+1) is represented as “X+Y <= Z+1”.
- Returns:
A string.
- property type¶
This property returns the type of the constraint; type is an enumerated value of type
ComparisonType
, with three possible values:LE for e1 <= e2 constraints
EQ for e1 == e2 constraints
GE for e1 >= e2 constraints
where e1 and e2 denote linear expressions.
- class docplex.mp.constr.EquivalenceConstraint(model, binary_var, linear_ct, truth_value=1, name=None)[source]¶
Bases:
LogicalConstraint
This class models equivalence constraints.
An equivalence constraint links (both ways) the value of a binary variable to the satisfaction of a linear constraint.
If the binary variable equals the truth value (default is 1), then the constraint is satisfied, conversely if the constraint is satisfied, the value of the variable is set to the truth value.
This class is not meant to be instantiated by the user.
- class docplex.mp.constr.IfThenConstraint(model, if_ct, then_ct, negate=False)[source]¶
Bases:
IndicatorConstraint
- class docplex.mp.constr.IndicatorConstraint(model, binary_var, linear_ct, active_value=1, name=None)[source]¶
Bases:
LogicalConstraint
This class models indicator constraints.
An indicator constraint links (one-way) the value of a binary variable to the satisfaction of a linear constraint. If the binary variable equals the active value, then the constraint is satisfied, but otherwise the constraint may or may not be satisfied.
This class is not meant to be instantiated by the user.
To create an indicator constraint, use the factory method
docplex.mp.model.Model.add_indicator()
defined ondocplex.mp.model.Model
.- invalidate()[source]¶
Sets the binary variable to the opposite of its active value. Typically used by indicator constraints with a trivial infeasible linear part. For example, z=1 -> 4 <= 3 sets z to 0 and z=0 -> 4 <= 3 sets z to 1. This is equivalent to if z=a => False, then z cannot be equal to a.
- class docplex.mp.constr.LinearConstraint(model, left_expr, ctsense, right_expr, name=None)[source]¶
Bases:
BinaryConstraint
,LinearOperand
The class that models all constraints of the form <expr1> <OP> <expr2>, where <expr1> and <expr2> are linear expressions.
- property basis_status¶
This property returns the basis status of the slack variable of the constraint, if any.
- Returns:
An enumerated value from the enumerated type docplex.constants.BasisStatus.
Note
for the model to hold basis information, the model must have been solved as a LP problem. In some cases, a model which failed to solve may still have a basis available. Use Model.has_basis() to check whether the model has basis information or not.
New in version 2.10
- property benders_annotation¶
This property is used to get or set the Benders annotation of a constraint. The value of the annotation must be a positive integer
- property dual_value¶
This property returns the dual value of the constraint.
Note
This method will raise an exception if the model has not been solved successfully. This method is OK with small numbers of constraints. For large numbers of constraints (>100), consider using Model.dual_values() with a sequence of constraints.
See also
func:docplex.mp.model.Model.dual_values()
- property left_expr¶
This property returns the left expression in the constraint.
Example
(X+Y <= Z+1) has left expression (X+Y).
- property lhs¶
This property returns the left expression in the constraint.
Example
(X+Y <= Z+1) has left expression (X+Y).
- property rhs¶
This property returns the right expression in the constraint.
Example
(X+Y <= Z+1) has right expression (Z+1).
- property right_expr¶
This property returns the right expression in the constraint.
Example
(X+Y <= Z+1) has right expression (Z+1).
- property sense¶
This property is used to get or set the sense of the constraint; sense is an enumerated value of type
ComparisonType
, with three possible values:LE for e1 <= e2 constraints
EQ for e1 == e2 constraints
GE for e1 >= e2 constraints
where e1 and e2 denote linear expressions.
- property slack_value¶
This property returns the slack value of the constraint.
Note
This method will raise an exception if the model has not been solved successfully.
This method is OK with small numbers of constraints. For large numbers of constraints (>100), consider using Model.slack_values() with a sequence of constraints.
See also
func:docplex.mp.model.Model.slack_values()
- to_string(use_space=False)[source]¶
Returns a string representation of the constraint.
The operators in this representation are the usual operators <=, ==, and >=.
Example
The constraint (X+Y <= Z+1) is represented as “X+Y <= Z+1”.
- Returns:
A string.
- property type¶
This property returns the type of the constraint; type is an enumerated value of type
ComparisonType
, with three possible values:LE for e1 <= e2 constraints
EQ for e1 == e2 constraints
GE for e1 >= e2 constraints
where e1 and e2 denote linear expressions.
- class docplex.mp.constr.LogicalConstraint(model, binary_var, linear_ct, active_value=1, name=None)[source]¶
Bases:
AbstractConstraint
This class models logical constraints.
An equivalence constraint links (both ways) the value of a binary variable to the satisfaction of a linear constraint.
If the binary variable equals the truth value (default is 1), then the constraint is satisfied, conversely if the constraint is satisfied, the value of the variable is set to the truth value.
This class is not meant to be instantiated by the user.
- property benders_annotation¶
This property is used to get or set the Benders annotation of a constraint. The value of the annotation must be a positive integer
- class docplex.mp.constr.NotEqualConstraint(model, negated_eqct, name=None)[source]¶
Bases:
LinearConstraint
- class docplex.mp.constr.PwlConstraint(model, pwl_expr, name=None)[source]¶
Bases:
AbstractConstraint
This class models piecewise linear constraints.
This class is not meant to be instantiated by the user. To create a piecewise constraint, use the factory method
docplex.mp.model.Model.piecewise()
defined ondocplex.mp.model.Model
.- property expr¶
This property returns the linear expression of the piecewise linear constraint.
- iter_variables()[source]¶
Iterates over all the variables of the piecewise linear constraint.
- Returns:
An iterator object.
- property pwl_func¶
This property returns the piecewise linear function of the piecewise linear constraint.
- property y¶
This property returns the output variable associated with the piecewise linear constraint.
- class docplex.mp.constr.QuadraticConstraint(model, left_expr, ctsense, right_expr, name=None)[source]¶
Bases:
BinaryConstraint
The class models quadratic constraints.
Quadratic constraints are of the form <qexpr1> <OP> <qexpr2>, where at least one of <qexpr1> or <qexpr2> is a quadratic expression.
- property benders_annotation¶
This property is used to get or set the Benders annotation of a constraint. The value of the annotation must be a positive integer
- property sense¶
This property is used to get or set the sense of the constraint; sense is an enumerated value of type
ComparisonType
, with three possible values:LE for e1 <= e2 constraints
EQ for e1 == e2 constraints
GE for e1 >= e2 constraints
where e1 and e2 denote quadratic expressions.
- property slack_value¶
This property returns the slack value of the constraint.
Note
This method will raise an exception if the model has not been solved successfully.
- property type¶
This property returns the type of the constraint; type is an enumerated value of type
ComparisonType
, with three possible values:LE for e1 <= e2 constraints
EQ for e1 == e2 constraints
GE for e1 >= e2 constraints
where e1 and e2 denote linear expressions.
- class docplex.mp.constr.RangeConstraint(model, expr, lb, ub, name=None)[source]¶
Bases:
AbstractConstraint
This class models range constraints.
A range constraint states that an expression must stay between two values, lb and ub.
This class is not meant to be instantiated by the user. To create a range constraint, use the factory method
docplex.mp.model.Model.add_range()
defined ondocplex.mp.model.Model
.- property basis_status¶
This property returns the basis status of the slack variable of the constraint, if any.
- Returns:
An enumerated value from the enumerated type docplex.constants.BasisStatus.
Note
for the model to hold basis information, the model must have been solved as a LP problem. In some cases, a model which failed to solve may still have a basis available. Use Model.has_basis() to check whether the model has basis information or not.
New in version 2.10
- property benders_annotation¶
This property is used to get or set the Benders annotation of a constraint. The value of the annotation must be a positive integer
- property bounds¶
This property is used to get or set the (lower, upper) bounds of a range constraint.
- property dual_value¶
This property returns the dual value of the constraint.
Note
This method will raise an exception if the model has not been solved successfully.
- property expr¶
This property returns the linear expression of the range constraint.
- iter_variables()[source]¶
Iterates over all the variables of the range constraint.
- Returns:
An iterator object.
- property lb¶
This property is used to get or set the lower bound of the range constraint.
- property slack_value¶
This property returns the slack value of the constraint.
Note
This method will raise an exception if the model has not been solved successfully.
- property ub¶
This property is used to get or set the upper bound of the range constraint.