Skip to content

Fix 2446 - #2457

Merged
jajhall merged 11 commits into
ERGO-Code:latestfrom
fwesselm:fix-2446
Aug 7, 2025
Merged

Fix 2446#2457
jajhall merged 11 commits into
ERGO-Code:latestfrom
fwesselm:fix-2446

Conversation

@fwesselm

@fwesselm fwesselm commented Jul 7, 2025

Copy link
Copy Markdown
Collaborator

Fix #2446

  • HPresolve::rowPresolve implements "simple probing on a single equation" (see section 3.6, Achterberg et al., Presolve Reductions in Mixed Integer Programming, INFORMS Journal on Computing 32(2):473-506).
  • The current code uses bounds on constraint activities sumLower and sumUpper that were obtained using implied column bounds (vectors implColLower and implColUpper), but then uses the standard bounds (vectors col_lower_ and col_upper_) to perform substitutions. I think this is inconsistent.
  • I think there are two potential ways to resolve this: (a) use vectors sumLowerOrig and sumUpperOrig that were computed using only the standard bound vectors, or (b) keep using sumLower and sumUpper, but correct the bounds used in the substitutions. I implemented the latter in this PR.
  • A test has been added.
  • I think this should be qualified on a large set of MIPs and, unfortunately, I am not able to do this currently.
  • Once I have the test results, I will report back.

@codecov

codecov Bot commented Jul 7, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.64865% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 79.46%. Comparing base (ebd83e1) to head (39c52a2).
⚠️ Report is 56 commits behind head on latest.

Files with missing lines Patch % Lines
highs/presolve/HPresolve.cpp 98.48% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           latest    #2457      +/-   ##
==========================================
- Coverage   79.55%   79.46%   -0.10%     
==========================================
  Files         346      346              
  Lines       85401    85401              
==========================================
- Hits        67942    67862      -80     
- Misses      17459    17539      +80     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread highs/presolve/HPresolve.cpp
Comment thread highs/presolve/HPresolve.cpp
Comment thread highs/presolve/HPresolve.cpp

@Opt-Mucca Opt-Mucca left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look good!

@fwesselm

fwesselm commented Aug 7, 2025

Copy link
Copy Markdown
Collaborator Author

The results look OK. The node counts on three problems are affected by this bug fix (blp-ic97, neos-1593097, p80x400b).

@jajhall
jajhall merged commit 2e93732 into ERGO-Code:latest Aug 7, 2025
194 of 195 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants