Skip to content

Keep implications between restarts - #3209

Open
Opt-Mucca wants to merge 3 commits into
latestfrom
keep-implications-between-restarts
Open

Keep implications between restarts#3209
Opt-Mucca wants to merge 3 commits into
latestfrom
keep-implications-between-restarts

Conversation

@Opt-Mucca

Copy link
Copy Markdown
Collaborator

This PR changes the data structure holding implication information to a HighsHashTree (similar to vbs). It now transfers implication information between restarts, shrink-problem calls, and sub-mips. This has been a long-standing TODO in the code, but with low priority because it's not going to be too performance changing.

Pros:

  • We now save implications from a cut or conflict that were not copied over between restarts. We also save implications from columns that may not have been re-probed on.
  • Implications are now valid throughout the entire presolve code and can be used in more complicated reductions down the line.
  • Can now add implications from multiple places without corrupting the data structure

Cons:

  • There's some overhead to all the new data structures (probably minor, but still).

Testing locally I'm getting a 0.5% slowdown but solving two more instances. I'd say this is mostly noise and I'd wait for @fwesselm to try it on a larger test set.

@Opt-Mucca
Opt-Mucca requested a review from fwesselm August 10, 2026 09:01
@codecov

codecov Bot commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.15254% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 72.78%. Comparing base (2b3c167) to head (3736bd2).
⚠️ Report is 326 commits behind head on latest.

Files with missing lines Patch % Lines
highs/mip/HighsImplications.cpp 99.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           latest    #3209      +/-   ##
==========================================
- Coverage   73.18%   72.78%   -0.41%     
==========================================
  Files         432      444      +12     
  Lines      105505   107458    +1953     
  Branches    16991    17294     +303     
==========================================
+ Hits        77217    78212     +995     
- Misses      28012    28969     +957     
- Partials      276      277       +1     

☔ 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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants