Skip to content

Introduces presolve "light" - #3167

Open
jajhall wants to merge 65 commits into
latestfrom
fix-3040
Open

Introduces presolve "light"#3167
jajhall wants to merge 65 commits into
latestfrom
fix-3040

Conversation

@jajhall

@jajhall jajhall commented Jul 25, 2026

Copy link
Copy Markdown
Member

Presolve "light" performs an initial sweep removing empty and fixed columns, and empty, singleton and redundant rows. For some practical problems, this removes significant numbers of rows and columns, and avoids the overhead of forming the general presolve data structure for the whole original model.

After the initial sweep, presolve light avoids applying the following expensive presolve rules

  • DependentEquations
  • DependentFreeCols
  • Aggregator
  • ParallelRowsAndCols
  • Sparsify
  • Probing
  • Enumeration
  • DualFixing
  • ColStuffing

Julian Hall and others added 30 commits March 25, 2026 12:17
jajhall and others added 23 commits May 23, 2026 22:11
…lve rule logging now correct for initial sweep
@jajhall
jajhall requested a review from fwesselm July 25, 2026 13:17
@jajhall jajhall self-assigned this Jul 25, 2026
@jajhall jajhall added Enhancement New feature or request Presolve labels Jul 25, 2026
@jajhall

jajhall commented Jul 25, 2026

Copy link
Copy Markdown
Member Author

This closes #3040

@codecov

codecov Bot commented Jul 25, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 78.97072% with 237 lines in your changes missing coverage. Please review.
✅ Project coverage is 73.20%. Comparing base (d2b07df) to head (658582d).
⚠️ Report is 180 commits behind head on latest.

Files with missing lines Patch % Lines
highs/presolve/PresolveTimer.h 0.00% 94 Missing ⚠️
highs/presolve/HPresolve.cpp 90.88% 63 Missing ⚠️
highs/presolve/HighsPostsolveStack.h 44.92% 38 Missing ⚠️
highs/presolve/HPresolveAnalysis.cpp 53.57% 13 Missing ⚠️
highs/lp_data/HighsInterface.cpp 30.76% 9 Missing ⚠️
highs/util/HFactor.cpp 92.06% 5 Missing ⚠️
highs/lp_data/HighsModelUtils.cpp 0.00% 3 Missing ⚠️
highs/mip/HighsImplications.cpp 25.00% 3 Missing ⚠️
highs/simplex/HighsSimplexAnalysis.cpp 0.00% 3 Missing ⚠️
highs/io/FilereaderLp.cpp 0.00% 2 Missing ⚠️
... and 3 more
Additional details and impacted files
@@            Coverage Diff             @@
##           latest    #3167      +/-   ##
==========================================
+ Coverage   73.16%   73.20%   +0.04%     
==========================================
  Files         430      434       +4     
  Lines      103967   106288    +2321     
  Branches    16718    17101     +383     
==========================================
+ Hits        76069    77812    +1743     
- Misses      27622    28200     +578     
  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

Enhancement New feature or request Presolve

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant