research

Reasoning from Last Conflict(s) in Constraint Programming

Abstract

International audienceConstraint programming is a popular paradigm to deal with combinatorial problems in arti cial intelligence. Backtracking algorithms, applied to constraint networks, are commonly used but su er from thrashing, i.e. the fact of repeatedly exploring similar subtrees during search. An extensive literature has been devoted to prevent thrashing, often classi ed into look-ahead (constraint propagation and search heuristics) and look-back (intelligent backtracking and learning) approaches. In this paper, we present an original look-ahead approach that allows to guide backtrack search toward sources of conicts and, as a side e ect, to obtain a behavior similar to a backjumping technique. The principle is the following: after each conict, the last assigned variable is selected in priority, so long as the constraint network cannot be made consistent. This allows us to find, following the current partial instantiation from the leaf to the root of the search tree, the culprit decision that prevents the last variable from being assigned. This way of reasoning can easily be grafted to many variations of backtracking algorithms and represents an original mechanism to reduce thrashing. Moreover, we show that this approach can be generalized so as to collect a (small) set of incompatible variables that are together responsible for the last conict. Experiments over a wide range of benchmarks demonstrate the e ectiveness of this approach in both constraint satisfaction and automated arti cial intelligence planning

    Similar works