IntegerSlackPreparation

IntegerSlackPreparation#

class IntegerSlackPreparation#

Integer-slack Preparation for active regular inequalities.

Preparation first attempts exact conversion to equality using max_integer_range and atol. slack_upper_bound=None requires the constraint to become an equality or be removed as trivially satisfied, so ExactIntegerSlackError is propagated. An integer value permits the constraint to remain an inequality: only that signal selects the inequality-preserving owner operation with this upper bound. The latter is not an approximation of the original feasible set. Every other owner error is propagated unchanged.

__eq__(other: object, /) → bool#
__new__(*, max_integer_range: int, atol: Optional[float] = None, slack_upper_bound: Optional[int] = None) → IntegerSlackPreparation#

Configure Integer-slack Preparation for active regular inequalities.

max_integer_range and atol are passed to convert_inequality_to_equality_with_integer_slack(). slack_upper_bound has the fallback semantics documented by this class. Inequalities are processed in ascending constraint-ID order; a failure on a later constraint does not roll back conversions already completed by this phase.

property atol: float#

Read-only property.

Absolute tolerance used to normalize bounds to integers.

property max_integer_range: int#

Read-only property.

Maximum finite range accepted for exact Integer slack.

property slack_upper_bound: Optional[int]#

Read-only property.

Optional upper bound for inequality-preserving Integer slack.

None requires equality. An integer permits the inequality-preserving owner operation only after ExactIntegerSlackError.