Skip to content

Fix traininstance6 bug - #3223

Open
Opt-Mucca wants to merge 6 commits into
latestfrom
fix-traininstance6-bug
Open

Fix traininstance6 bug#3223
Opt-Mucca wants to merge 6 commits into
latestfrom
fix-traininstance6-bug

Conversation

@Opt-Mucca

Copy link
Copy Markdown
Collaborator

Description

I occasionally get fails on traininstance6 and traininstance2 from MIPLIB, and I believe I finally tracked the issue down! In computeDualProof and storeDualInfProof, terms with a coefficient <= epsilon are zeroed out (not relaxed out), which can potentially strengthen the inequality past the point of feasibility. This specifically happens if (1) there's a lot of terms or (2) some of the columns have large bounds. I've then upgraded all the accumulating terms to HighsCDouble and added a new check for zero-ing out terms that val * max(abs(lb), abs(ub)) <= epsilon, i.e., no binaries have a behavioural change. (The isolated bug actually only required the HighsCDouble, but I followed the rabbit-hole for the larger terms first, and I believe the code's better with the change).

I also tried to fix Problem 4 from #2874 while doing this. The issue there is that a cut is potentially scaled by 1e-6 purely for the purpose of trying to extract domain changes. This scales any incorrectness in our cuts by too much, so I've increased the feasibility tolerance check whenever val < 1e-3.

Checklist

  • I have read the contributing guidelines
  • This PR targets the latest branch
  • Tests are passing
  • Documentation was updated where relevant
  • This PR is not primarily AI-generated (per the AI contributions policy in CONTRIBUTING.md)

Closes #2874

@Opt-Mucca
Opt-Mucca requested a review from fwesselm August 20, 2026 08:52
@codecov

codecov Bot commented Aug 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 73.04%. Comparing base (2b3c167) to head (36075c7).
⚠️ Report is 378 commits behind head on latest.

Additional details and impacted files
@@            Coverage Diff             @@
##           latest    #3223      +/-   ##
==========================================
- Coverage   73.18%   73.04%   -0.15%     
==========================================
  Files         432      445      +13     
  Lines      105505   107770    +2265     
  Branches    16991    17268     +277     
==========================================
+ Hits        77217    78718    +1501     
- Misses      28012    28776     +764     
  Partials      276      276              

☔ View full report in Codecov by Harness.
📢 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.

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.

1 participant