Implied bounds used in presolve module #1383
Unanswered
wang123zhao551451
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Thanks for your awesome solver HiGHS, where i have read your code for many concise and efficient implementations. This issue only concerns about the lp presolve part now, which is the first step for overall presolve module.
In the presolve module in Hpresolve.cpp, I noticed that the use of "sum of original bounds" and "sum of implied bounds" is a little confusing, i.e. in the rowPresolve() function, HiGHS use implied sum bounds (by a call impliedRowBounds.getSumUpper(row), at around HPresolve.cpp:2893 line in master branch at 2023.8.13) to infeasible, redudant rows and remove doubleton equations. But for forcing constrains detection, HiGHS use original sum bounds (by a call impliedRowBounds.getSumUpperOrig(row), at around HPresolve.cpp:3545 line). Why implied bounds are not used in focing row fixing?
Also noted in colPresolve(), no sum of original bounds are used excpet for weakly dominated column (which also confuses me, but leave it out now) . Similarly I have no idea why this switch happens and why rowPresolve and colPresolve performs in different logic.
Beta Was this translation helpful? Give feedback.
All reactions