5 research outputs found
Using Restarts in Constraint Programming over Finite Domains - An Experimental Evaluation
The use of restart techniques in complete Satisfiability (SAT) algorithms has made
solving hard real world instances possible. Without restarts such algorithms could not
solve those instances, in practice. State of the art algorithms for SAT use restart
techniques, conflict clause recording (nogoods), heuristics based on activity variable in
conflict clauses, among others. Algorithms for SAT and Constraint problems share many
techniques; however, the use of restart techniques in constraint programming with finite
domains (CP(FD)) is not widely used as it is in SAT. We believe that the use of restarts in
CP(FD) algorithms could also be the key to efficiently solve hard combinatorial
problems.
In this PhD thesis we study restarts and associated techniques in CP(FD) solvers. In
particular, we propose to including in a CP(FD) solver restarts, nogoods and heuristics
based in nogoods as this should improve search algorithms, and, consequently, efficiently
solve hard combinatorial problems.
We thus intend to: a) implement restart techniques (successfully used in SAT) to
solve constraint problems with finite domains; b) implement nogoods (learning) and
heuristics based on nogoods, already in use in SAT and associated with restarts; and c)
evaluate the use of restarts and the interplay with the other implemented techniques.
We have conducted the study in the context of domain splitting backtrack search
algorithms with restarts. We have defined domain splitting nogoods that are extracted
from the last branch of the search algorithm before the restart. And, inspired by SAT
solvers, we were able to use information within those nogoods to successfully help the
variable selection heuristics. A frequent restart strategy is also necessary, since our
approach learns from restarts
Conflict Ordering Search for Scheduling Problems
We introduce a new generic scheme to guide backtrack search, called Conflict Ordering Search (COS), that reorders variables on the basis of conflicts that happen during search. Similarly to generalized Last Conflict (LC), our approach remembers the last variables on which search decisions failed. Importantly, the initial ordering behind COS is given by a specified variable ordering heuristic, but contrary to LC, once consumed, this first ordering is forgotten, which makes COS conflict-driven. Our preliminary experiments show that COS – although simple to implement and parameter-free – is competitive with specialized searches on scheduling problems. We also show that our approach fits well within a restart framework, and can be enhanced with a value ordering heuristic that selects in priority the last assigned values