Generating all maximal independent sets of bounded-degree hypergraphs
COLT '97 Proceedings of the tenth annual conference on Computational learning theory
Exploiting symmetries within constraint satisfaction search
Artificial Intelligence - Special issue on heuristic search in artificial intelligence
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
Why AC-3 is almost always better than AC-4 for establishing arc consistency in CSPs
IJCAI'93 Proceedings of the 13th international joint conference on Artifical intelligence - Volume 1
Tailoring solver-independent constraint models: a case study with ESSENCE' and MINION
SARA'07 Proceedings of the 7th International conference on Abstraction, reformulation, and approximation
Hi-index | 0.00 |
Many constraint satisfaction problems (csp's) are formulated with 0/1 variables. Sometimes this is a natural encoding, sometimes it is as a result of a reformulation of the problem, other times 0/1 variables make up only a part of the problem. Frequently we have constraints that restrict the sum of the values of variables. This can be encoded as a simple summation of the variables. However, since variables can only take 0/1 values we can also use an occurrence constraint, e.g. the number of occurrences of 1 must be k. Would this make a difference? Similarly, problems may use channelling constraints and encode these as a biconditional such as P ↔ Q (i.e. P if and only if Q). This can also be encoded in a number of ways. Might this make a difference as well? We attempt to answer these questions, using a variety of problems and two constraint programming toolkits. We show that even minor changes to the formulation of a constraint can have a profound effect on the run time of a constraint program and that these effects are not consistent across constraint programming toolkits. This leads us to a cautionary note for constraint programmers: take note of how you encode constraints, and don't assume computational behaviour is toolkit independent.