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 and c for a == 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, and e for a == b + c and c == d + e). Neither of these necessarily produce tighter bounds, as bounds on either c or d + e could be dominating. It may also be possible to somehow look up the bounds on the d + e expression (which are now inequalities), but this may be some work to integrate into FBBT.
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:
A couple notes:
bandcfora == b + c) have bounds that dominate the bounds of the candidate variable (e.g.a).b,d, andefora == b + candc == d + e). Neither of these necessarily produce tighter bounds, as bounds on eithercord + ecould be dominating. It may also be possible to somehow look up the bounds on thed + eexpression (which are now inequalities), but this may be some work to integrate into FBBT.