Stay organized with collections
Save and categorize content based on your preferences.
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.
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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-08-06 UTC."],[],["The `ImpliedBoundsProcessor` class processes upper-bounded linear relations by replacing integer variables with tighter lower bounds. Key actions include: adding variables (`AddLpVariable`), processing and updating constraints (`ProcessUpperBoundedConstraint`, `ProcessUpperBoundedConstraintWithSlackCreation`), and checking for violations of implied bounds (`RecomputeCacheAndSeparateSomeImpliedBoundCuts`). It uses cached information about implied bounds (`GetCachedImpliedBoundInfo`) and stores violated cuts in a pool (`IbCutPool`). Debugging is supported with `DebugSlack`. The processor is initialized with the `lp_vars`, `integer_trail`, and `implied_bounds` in the constructor.\n"]]