Add bounded knapsack-augmented cumulative overload checking - #246
Merged
Merged
Conversation
Extract the advanced Int cumulative propagation from feature/model without its Model or scheduling dependencies. Retain mandatory-subset handling, two-word reachability, transient scratch, and propagation costs. Cover scalar recurrence agreement, residual bit boundaries, variable-capacity cloning, and optional arrays with more than 64 tasks. Document activation limits and include the header in Autotools installs.
zayenz
marked this pull request as ready for review
October 4, 2026 11:48
zayenz
commented
Oct 4, 2026
Member
Author
There was a problem hiding this comment.
- The knapsack check rejected feasible fixed-end tasks with variable processing times. It now requires fixed duration before applying the energy check. Endpoint differences are computed in a wide type to avoid overflow. Added a regression with a feasible duration-one schedule.
- Renamed the subset-demand helper to
max_reachableand documented the compulsory profile, prefix state, and energy backlog. - Documented the task, demand, and capacity limits, including which optional tasks participate.
zayenz
commented
Oct 5, 2026
zayenz
left a comment
Member
Author
There was a problem hiding this comment.
No actionable findings in the bounded knapsack overload checker. The fixed-duration guard and wide endpoint arithmetic are sound. All 14 CI checks pass at 7bd8aa8cb7; default CI includes cumulative semantic cases but omits the focused knapsack regression.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Advanced cumulative propagation can miss overloads when integral task demands cannot fill the apparent spare capacity. This adds the bounded knapsack-augmented overload check (KAOC) from Cloutier and Quimper, CP 2026.
The checker runs after ordinary overload checking and before edge finding under advanced propagation. It admits 4–64 currently mandatory supported tasks, capacities 2–127, and positive demands with at least one non-unit demand. Reachability uses two machine words and transient Region scratch. Optional propagators apply the task-count gate and cost classification to their mandatory subset. KAOC detects conflicts without pruning bounds.