Repository navigation
Add staged inter-distance propagation with variable separation - #247
Merged
Merged
Conversation
zayenz
marked this pull request as ready for review
October 4, 2026 11:48
zayenz
commented
Oct 4, 2026
zayenz
force-pushed
the
feature/inter-distance
branch
2 times, most recently
from
October 9, 2026 13:51
6f15b91 to
b83ab14
Compare
zayenz
added this pull request to stack #254
October 10, 2026 18:20
zayenz
force-pushed
the
feature/inter-distance
branch
from
October 12, 2026 16:22
a0c39e8 to
aa53003
Compare
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.
Add inter-distance constraints enforcing
|x[i] - x[j]| >= pfor a constant or variable separation.IPL_BASICuses an O(n log n), linear-space feasibility algorithm and tightens a variable separation's upper bound. Other propagation levels add staged quadratic bounds(Z) filtering. Separation one uses the existing bounds-consistent distinct propagator; domains with holes use interval supports.The implementation follows Garey et al., Quimper et al., and the variable-distance extension.
Use the standard Gecode integer test harness for assignment, search, cloning, and consistency checks. Larger tests alternate arbitrary assignments with valid separated values constructed in sorted order with bounded total slack, then shuffled. Small hole, residue, and limit examples exhaustively enumerate their individual domains. Posting exception checks use the existing test space; no custom model remains.
Based on main after #249 merged. #253 remains stacked on this PR.
Validation: Release build passed; all 74 inter-distance tests passed with five iterations. The updated #253 stack also passed the combined selection of these tests and 12 fixed-base power tests. Whitespace checks passed.