C++ Reference: class ImpliedBoundsProcessor
Note: This documentation is automatically generated.
Given an upper-bounded linear relation (sum terms <= ub), this algorithm inspects the integer variable appearing in the sum and try to replace each of them by a tight lower bound (>= coeff * binary + lb) using the implied bound repository. By tight, we mean that it will take the same value under the current LP solution.
We use a class to reuse memory of the tmp terms.
Method | |
---|---|
AddLpVariable | Return type: Arguments: Add a new variable that could be used in the new cuts. Note that the cache must be computed to take this into account. |
DebugSlack | Return type: Arguments: Only used for debugging. Substituting back the slack created by the function above should give exactly the same cut as the original one. |
GetCachedImpliedBoundInfo | Return type: Arguments: |
IbCutPool | Return type: As we compute the best implied bounds for each variable, we add violated cuts here. |
ImpliedBoundsProcessor | Arguments: We will only replace IntegerVariable appearing in lp_vars_. |
ProcessUpperBoundedConstraint | Return type: Arguments: Processes and updates the given cut. |
ProcessUpperBoundedConstraintWithSlackCreation | Return type: Arguments: |
RecomputeCacheAndSeparateSomeImpliedBoundCuts | Return type: Arguments: See if some of the implied bounds equation are violated and add them to the IB cut pool if it is the case. Important: This must be called before we process any constraints with a different lp_values or level zero bounds. |