Constraint Retraction in CLP(FD): Formal Framework andPerformance Results

  • Authors:
  • Yan Georget;Philippe Codognet;Francesca Rossi

  • Affiliations:
  • -;INRIA-Rocquencourt, BP 105, 78153 Le Chesnay, France;Università di Pisa, Dipartimento di Informatica, Corso Italia 40, 56125 Pisa, Italy

  • Venue:
  • Constraints
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

Constraint retractioncan be described, in general, as the possibility of deletinga previously stated piece of information. This is obviously veryconvenient in many programming frameworks, especially in thosethat involve some level of interaction between the user and thesystem, or also in those concerning rescheduling or replanning.Nevertheless, constraint retraction is usually not provided incurrent constraint programming environments. This is mainly dueto its high complexity and also to its non-monotonic nature,which would make most of such systems much more complex to reasonwith. In this paper we avoid these problems by considering aspecific constraint programming framework, called clpFD,that is, constraint logic programming (CLP) over finite domain(FD) constraints. We propose an algorithm which deletes a constraintfrom a set of FD constraints, while maintaining partial arc-consistency,which is usual in this programming framework. What is crucialis that the retraction operation we propose is incremental, inthat it follows the chain of dependencies among variables whichare set by the nature of the FD constraints, and by doing soit updates only the part of the constraint set which is affectedby the deletion. We also detail how constraint retraction canbe incorporated in the FD constraint solver and we evaluate itsbehavior within the clpFD system. Experimental resultson usual benchmarks, on classes of problems of increasing connectivity,and also on a real-life problem show that in almost all casesthe use of our retraction algorithm provides great speed-up withrespect to standard methods while not slowing down the clpFDsystem when no retraction is performed. This provides the systemwith an efficient way of retracting constraints while not changingits performance when the user does not want to use this new feature.