##
###
The Complexity of Constraint Languages
[chapter]

David Cohen, Peter Jeavons

2006
*
Foundations of Artificial Intelligence
*

One of the most fundamental challenges in constraint programming is to understand the computational complexity of problems involving constraints. It has been shown that the class of all constraint satisfaction problem instances is NP-hard [71] , so it is unlikely that efficient general-purpose algorithms exist for solving all forms of constraint problem. However, in many practical applications the instances that arise have special forms that enable them to be solved more efficiently [11, 25,
## more »

... 82] . One way in which this occurs is that there is some special structure in the way that the constraints overlap and intersect each other. The natural theory for discussing the structure of such interaction between constraints is the mathematical theory of hypergraphs. Much work has been done in this area, and many tractable classes of constraint problems have been identified based on structural properties (see Chapter 5). There are strong parallels between this work and similar investigations into the structure of so-called conjunctive queries in relational databases [41, 58] . Another way in which constraint problems can be defined which are easier to solve than in the general case is when the types of constraints are limited. The natural theory for discussing the properties of constraint types is the mathematical theory of relations and their associated algebras. Again considerable progress has been made in this investigation over the past few years. For example, a complete characterisation of tractable constraint types is now known for both 2-element domains [85] and 3-element domains [14] . In addition, a number of novel efficient algorithms have been developed for solving particular types of constraint problems over both finite and infinite domains [3, 8, 16, 25, 26, 28, 63] . In this chapter we will focus on the second approach. That is, we will investigate how the complexity of solving constraint problems varies with the types of constraints which are allowed. One fundamental open research problem in this area is to characterise exactly which types of constraints give rise to constraint problems which can be solved 6. Example 4. Let D be any field (that is, a set on which the operations of addition, subtraction, multiplication and division are defined, such as the rational numbers). Let Γ LIN be the constraint language consisting of all those relations over D which consist of all the solutions to some system of linear equations over D. Any relation from Γ LIN , and therefore any instance of CSP(Γ LIN ), can be represented by a system of linear equations 1 over D, and so can be solved in polynomial time (e.g., by Gaussian elimination). Hence Γ LIN is a tractable constraint language. Example 5. A constraint language over a two-element set D = {d 0 , d 1 } is known as a Boolean constraint language. Using such languages we can express the standard propositional SATISFIABILITY problem [38, 77] as a constraint satisfaction problem, by identifying the 2 elements of D with the logical values TRUE and FALSE. It was established by Schaefer in 1978 [85] that a Boolean constraint language, Γ, is tractable if (at least) one of the following six conditions holds:

doi:10.1016/s1574-6526(06)80012-x
fatcat:ddy7y6xwknhjvbsnblkonm6iku