Skip to content

L Shaped Standard Optimality Cuts and L1 Feasibility Cuts - #835

Open
domyang wants to merge 7 commits into
Pyomo:mainfrom
domyang:benders-L1
Open

L Shaped Standard Optimality Cuts and L1 Feasibility Cuts#835
domyang wants to merge 7 commits into
Pyomo:mainfrom
domyang:benders-L1

Conversation

@domyang

@domyang domyang commented Aug 14, 2026

Copy link
Copy Markdown

This pull request implements a standalone class which generates Benders cuts StandardLPL1CutGenerator. It is distinguished from the current implementation in that it uses traditional Benders optimality cuts as opposed to the blended feasibility/optimality cuts currently used in LShapedCutGeneratorData. It also implements feasibility cuts using L1 Normalization as described in "Implementing Automatic Benders Decomposition in a Modern MIP Solver" (Bonami et al. 2020). This is similar to the current implementation but it excludes the additional constraint derived from the objective.

@codecov

codecov Bot commented Aug 15, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 12.60870% with 201 lines in your changes missing coverage. Please review.
✅ Project coverage is 77.14%. Comparing base (29671ec) to head (35d14de).

Files with missing lines Patch % Lines
mpisppy/utils/lshaped_cuts.py 11.21% 198 Missing ⚠️
mpisppy/opt/lshaped.py 57.14% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #835      +/-   ##
==========================================
- Coverage   77.77%   77.14%   -0.63%     
==========================================
  Files         177      177              
  Lines       23764    23992     +228     
==========================================
+ Hits        18482    18509      +27     
- Misses       5282     5483     +201     

☔ 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