Open
Description
If a potentially eliminated variable has bounds, we can ignore them if the bounds are dominated by bounds on the variables used to eliminate it. A rough sketch of a procedure to do this during the variable elimination procedure is:
- If a potentially eliminated variable has bounds,
- Temporarily remove these bounds.
- For each candidate constraint for elimination,
- Perform FBBT using the constraint. This propagates the bounds on the "defining" variables to the "candidate variable" via the equality constraint
- If the original bounds are dominated by (or equivalent to) the propagated bounds, then the original bounds are unnecessary and do not need to be converted into inequality constraints
A couple notes:
- This works best if all variables have bounds, e.g. FBBT has already been performed on the model as a whole
- This can be applied while selecting variables for elimination. In this case, we only check whether the "immediately defining" variables (e.g.
b
andc
fora == b + c
) have bounds that dominate the bounds of the candidate variable (e.g.a
). - This can also be applied while performing elimination in-place. In this case, we check whether bounds on variables in the eliminated-space expression are dominating (e.g.
b
,d
, ande
fora == b + c
andc == d + e
). Neither of these necessarily produce tighter bounds, as bounds on eitherc
ord + e
could be dominating. It may also be possible to somehow look up the bounds on thed + e
expression (which are now inequalities), but this may be some work to integrate into FBBT.
Metadata
Metadata
Assignees
Labels
No labels