compute_bounds

Provides functions to compute and enforce disjunctive variable bounds.

These are tighter variable bounds that are valid within the scope of a certain disjunct. That is, these are bounds on variables that hold true when an associated disjunct is active (indicator_var value is 1). The bounds are enforced using a ConstraintList on every Disjunct, enforcing the relevant variable bounds. This may lead to duplication of constraints, so the constraints to variable bounds preprocessing transformation is recommended for NLP problems processed with this transformation.

Classes

ComputeDisjunctiveVarBounds(**kwds)

Compute disjunctive bounds in a given model.

Functions

disjunctive_fbbt(model)

Applies FBBT to a model

disjunctive_obbt(model, solver)

Provides Optimality-based bounds tightening to a model using a solver.

fbbt_disjunct(disj, parent_bounds)

obbt_disjunct(orig_model, idx, solver)

solve_bounding_problem(model, solver)