Skip to content

v2.16.0

Choose a tag to compare

@rcrida rcrida released this 02 Jun 14:33
· 80 commits to main since this release

What's new

SumConstraint bounds propagation

For each variable in a sumConstraint, tightens its domain to the values that could still participate in a satisfying sum given the current bounds of the other variables. Supports EQ, LEQ, and GEQ operators. Applied in both the preprocessing fixpoint and the MAC inference during backtracking.

MagicSquare: 3.9 s / 29 781 nodes → 0.16 s / 10 nodes (24× faster)

Propagation fixpoint extended

PropagationFixpoint now includes SumConstraint bounds propagation alongside AC3 and AllDiff GAC. All three propagators run in a combined loop until none makes further progress.

Refactoring: Propagatable interface + ConsistencyFixpoint utility

The identical fixpoint loop shared by AllDiffConsistency, SumConsistency, and CumulativeConsistency has been extracted into a ConsistencyFixpoint utility class. Each constraint type now implements the Propagatable interface and owns its own propagation algorithm. The three consistency classes are reduced to a filter + one-line delegate.