🤖 AI Summary
This work addresses the inefficiency of traditional finite-domain propagation methods that handle difference constraints $x - y \leq d$ individually. It presents the first global propagator for difference constraints equipped with an explanation mechanism, unifying all such constraints into a single model and enforcing bounds consistency via shortest-path algorithms. The propagator is seamlessly integrated into a lazy clause generation (LCG) solving framework, overcoming the limitations of constraint-by-constraint propagation. For the first time in constraint programming, this approach enables synergistic global reasoning over difference constraints and conflict explanation. Experimental results demonstrate that the proposed method significantly outperforms standard propagation strategies in terms of solving efficiency.
📝 Abstract
Difference constraints of the form $x - y \leq d$ are well studied, with efficient algorithms for satisfaction and implication, because of their connection to shortest paths. Finite domain propagation algorithms, however, typically do not make use of these algorithms, and treat each difference constraint as a separate propagator. Propagation does guarantee completeness of solving, but can be needlessly slow. In this paper we describe how to build a (bounds consistent) global propagator for difference constraints that treats them all simultaneously. SAT modulo theory solvers have included theory solvers for difference constraints for some time. While a theory solver for difference constraints gives the basis of a global difference constraint propagator, we show how the requirements on the propagator are quite different. Crucially, we show how to explain propagations by a global difference constraint propagator, in order to use it within a lazy clause generation solver. We give experiments showing that treating difference constraints globally can substantially improve on the standard propagation approach.