When is it worthwhile to propagate a constraint? A probabilistic analysis of AllDifferent
Résumé
This article presents new work on analyzing the behaviour of a constraint solver, with a view towards optimization. In Constraint Programming, the propagation mechanism is one of the key tools for solving hard combinatorial problems. It is based on specific algorithms: propagators, that are called a large number of times during the resolution process. But in practice, these algorithms may often do nothing: their output is equal to their input. It is thus highly desirable to be able to recognize such situations, so as to avoid useless calls. We propose to quantify this phenomenon in the particular case of the AllDifferent constraint (bound consistency propagator). Our first contribution is the definition of a probabilistic model for the constraint and the variables it is working on. This model then allows us to compute the probability that a call to the propagation algorithm for AllDifferent does modify its input. We give an asymptotic approximation of this probability, depending on some macroscopic quantities related to the variables and the domains, that can be computed in constant time. This reveals two very different behaviors depending of the sharpness of the constraint. First experiments show that the approximation allows us to improve constraint propagation behaviour.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...