Skip to content

Add heuristic plugin example - #1253

Open
Joao-Dionisio wants to merge 2 commits into
masterfrom
example-heur-lpt
Open

Joao-Dionisio wants to merge 2 commits into
masterfrom
example-heur-lpt

Conversation

@Joao-Dionisio

@Joao-Dionisio Joao-Dionisio commented Sep 8, 2026 •

Copy link
Copy Markdown
Member

Adds two examples of parallel machine scheduling with release dates (Pm|r_j|C_max):

  • heur_lpt.py: a big-M formulation warm-started by a Heur plugin that builds an LPT list schedule. The heuristic runs once before the root node and builds its solution with createOrigSol(), because presolving fixes some variables and setting conflicting values on a transformed solution fails. The heuristics tutorial now points to it.
  • scheduling_logical.py: the same problem modelled with and/or/indicator, disjunction and cardinality constraints. On SCIP 10.1.0 and earlier the disjunction model reports a wrong optimum because of The strange behavior of the disjunction constraint #1240; a comment in the example says so and names the workaround. The fix is in SCIP's fix-conssetlocal-validdepth branch.

This supersedes #1245 by @abb-omidi, whose scripts these are based on. @abb-omidi, would you mind taking a look, please?

@codecov

codecov Bot commented Sep 8, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 58.12%. Comparing base (4e8eaf8) to head (fca83a4).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1253   +/-   ##
=======================================
  Coverage   58.12%   58.12%           
=======================================
  Files          27       27           
  Lines        5999     5999           
=======================================
  Hits         3487     3487           
  Misses       2512     2512           

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

@Joao-Dionisio

Copy link
Copy Markdown
Member Author

The disjunction example suffers from the bug mentioned in #1240, so an eventual fix would need to be merged first.

This branch has not been deployed

No deployments
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