Skip to content

v2.21.0

Choose a tag to compare

@rcrida rcrida released this 19 Jun 20:48
· 17 commits to main since this release

What's new

IntervalDomain propagation extended to comparator and offset constraints

Three constraint types now propagate over IntervalDomain (continuous [min, max]) variables in addition to SumConstraint and LinearConstraint:

  • UnaryComparatorConstraint — clips a single interval variable's bounds (x >= 3.0 raises the floor, x <= 7.0 lowers the ceiling)
  • BinaryComparatorConstraint — clips both variables' bounds relative to each other (x <= y reduces x.max and raises y.min); also handles mixed discrete/interval pairs
  • BinaryOffsetConstraint — clips bounds accounting for the offset (x + 3.0 == y propagates in both directions)

NumericBounds promoted to constraints package

NumericBounds (shared min/max extraction and narrowing utility) moved from constraints.nary to constraints so it can be reused across binary and n-ary constraint implementations.

getNeighbours(Variable) on ConstraintSatisfactionProblem

Convenience overload returns the neighbour set for a single variable, replacing the previous TODO in TreeDecomposerImpl.