Avoid fixing zero-cost singleton columns to infinite bounds in HPresolve::dualFixing#3046
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## latest #3046 +/- ##
==========================================
- Coverage 72.94% 72.94% -0.01%
==========================================
Files 426 426
Lines 102185 102197 +12
Branches 16443 16452 +9
==========================================
+ Hits 74540 74544 +4
- Misses 27369 27377 +8
Partials 276 276 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@fwesselm It is a bit late and I'm quite tired, so may be missing something: Why do we want to do this? Aren't we now potentially missing some reductions that we were making before, e.g., an unbounded column with no locks on one-side that wouldn't appear as a singleton? |
|
@Opt-Mucca : I'm guessing that fixing zero-cost singletons in this way is a special case (when there are no up/down locks) of #2962 Correct? |
|
@jajhall My confusion comes from columns that have multiple down (or up) locks, but zero in the other direction, and now aren't fixed to |
@Opt-Mucca, yes, for a particular model (which I have to find again), dual fixing tries to fix a zero-cost column to an infinite bound. In this case, I agree that it may be possible to handle the case that a variable is fixed to |
I talked this through with @Opt-Mucca: no variable must ever be explicitly fixed to infinity. The presolve reduction is achieved by removing the column with whatever bounds it has. The bounds on the corresponding rows are modified, possibly making a finite bound infinite if one/both of the column bounds are infinite. Then, in postsolve, when the column is restored it is either
The only safeguard that I see having to be added is that all the coefficients in the column must be sufficiently large, as they may become pivots when replacing the 1 of the slack variable in the binding row. |
|
I need to test |
HPresolve::dualFixing.HPresolve::singletonColhandling zero-cost singletons.