Skip to Main content Skip to Navigation
Journal articles

Contractor Programming

Abstract : This paper describes a solver programming method, called "contractor programming", that copes with two issues related to constraint processing over the reals. First, continuous constraints involve an inevitable step of solver design. Existing softwares provide an insufficient answer by restricting users to choose among a list of fixed strategies. Our first contribution is to give more freedom in solver design by introducing programming concepts where only configuration parameters were previously available. Programming consists in applying operators (intersection, composition, etc.) on algorithms called "contractors" that are somehow similar to propagators. Second, many problems with real variables cannot be cast as the search for vectors simultaneously satisfying the set of constraints, but a large variety of different outputs may be demanded from a set of constraints (e.g., a paving with boxes inside and outside of the solution set). These outputs can actually be viewed as the result of different "contractors" working concurrently on the same search space, with a bisection procedure intervening in case of deadlock. Such algorithms (which are not strictly speaking solvers) will be made easy to build thanks to a new branch & prune system, called "paver". Thus, this paper gives a way to deal harmoniously with a larger set of problems while giving a fine control on the solving mechanisms. The contractor formalism and the paver system are the two contributions. The approach is motivated and justified through different cases of study. An implementation of this framework named Quimper is also presented.
Document type :
Journal articles
Complete list of metadata

Cited literature [41 references]  Display  Hide  Download
Contributor : Gilles Chabert Connect in order to contact the contributor
Submitted on : Friday, October 30, 2009 - 10:29:16 AM
Last modification on : Wednesday, April 27, 2022 - 3:42:28 AM
Long-term archiving on: : Thursday, June 17, 2010 - 6:45:39 PM


Files produced by the author(s)



Gilles Chabert, Luc Jaulin. Contractor Programming. Artificial Intelligence, Elsevier, 2009, 173, pp.1079-1100. ⟨10.1016/j.artint.2009.03.002⟩. ⟨hal-00428957⟩



Record views


Files downloads