Skip to content

Enhance clique extraction - #3286

Open
fwesselm wants to merge 37 commits into
ERGO-Code:latestfrom
fwesselm:fix-neos-631710-2
Open

fwesselm wants to merge 37 commits into
ERGO-Code:latestfrom
fwesselm:fix-neos-631710-2

Conversation

@fwesselm

@fwesselm fwesselm commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Description

  1. HPresolve::normaliseCliqueRows scales all-binary rows to +-1 coefficients and <= form for clique extraction if possible.
  2. On neos-631710 the normalisation enables clique merging to detect and remove 166500 binary-binary implication (clique) rows, reducing the presolved model to 3076 rows.
  3. Added unit tests.

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)

@fwesselm
fwesselm requested a review from Opt-Mucca September 14, 2026 19:29
@codecov

codecov Bot commented Sep 14, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.81421% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 73.71%. Comparing base (eb79992) to head (74dfec0).
⚠️ Report is 1 commits behind head on latest.

Files with missing lines Patch % Lines
check/TestPresolveRules.cpp 97.60% 6 Missing ⚠️
highs/presolve/HPresolve.cpp 97.36% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           latest    #3286      +/-   ##
==========================================
+ Coverage   73.56%   73.71%   +0.14%     
==========================================
  Files         446      446              
  Lines      109514   109846     +332     
  Branches    17543    17564      +21     
==========================================
+ Hits        80569    80977     +408     
+ Misses      28668    28592      -76     
  Partials      277      277              

☔ 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.

@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.

This is a great change! It's surely going to be a nice performance bump.

Comment thread highs/presolve/HPresolve.cpp
@jajhall jajhall assigned Opt-Mucca and fwesselm and unassigned Opt-Mucca Sep 15, 2026
@jajhall jajhall added the MIP label Sep 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants