Constraint satisfaction problems (CSPs) are mathematical questions defined as a set of objects whose
state
State most commonly refers to:
* State (polity), a centralized political organization that regulates law and society within a territory
**Sovereign state, a sovereign polity in international law, commonly referred to as a country
**Nation state, a ...
must satisfy a number of
constraints or
limitations. CSPs represent the entities in a problem as a homogeneous collection of finite constraints over
variables, which is solved by
constraint satisfaction methods. CSPs are the subject of research in both
artificial intelligence
Artificial intelligence (AI) is the capability of computer, computational systems to perform tasks typically associated with human intelligence, such as learning, reasoning, problem-solving, perception, and decision-making. It is a field of re ...
and
operations research
Operations research () (U.S. Air Force Specialty Code: Operations Analysis), often shortened to the initialism OR, is a branch of applied mathematics that deals with the development and application of analytical methods to improve management and ...
, since the regularity in their formulation provides a common basis to analyze and solve problems of many seemingly unrelated families.
CSPs often exhibit high complexity, requiring a combination of
heuristics
A heuristic or heuristic technique (''problem solving'', '' mental shortcut'', ''rule of thumb'') is any approach to problem solving that employs a pragmatic method that is not fully optimized, perfected, or rationalized, but is nevertheless ...
and
combinatorial search methods to be solved in a reasonable time.
Constraint programming
Constraint programming (CP) is a paradigm for solving combinatorial problems that draws on a wide range of techniques from artificial intelligence, computer science, and operations research. In constraint programming, users declaratively state t ...
(CP) is the field of research that specifically focuses on tackling these kinds of problems. Additionally, the
Boolean satisfiability problem
In logic and computer science, the Boolean satisfiability problem (sometimes called propositional satisfiability problem and abbreviated SATISFIABILITY, SAT or B-SAT) asks whether there exists an Interpretation (logic), interpretation that Satisf ...
(SAT),
satisfiability modulo theories
In computer science and mathematical logic, satisfiability modulo theories (SMT) is the problem of determining whether a mathematical formula is satisfiable. It generalizes the Boolean satisfiability problem (SAT) to more complex formulas involv ...
(SMT),
mixed integer programming (MIP) and
answer set programming (ASP) are all fields of research focusing on the resolution of particular forms of the constraint satisfaction problem.
Examples of problems that can be modeled as a constraint satisfaction problem include:
*
Type inference
Type inference, sometimes called type reconstruction, refers to the automatic detection of the type of an expression in a formal language. These include programming languages and mathematical type systems, but also natural languages in some bran ...
*
Eight queens puzzle
The eight queens puzzle is the problem of placing eight chess queens on an 8×8 chessboard so that no two queens threaten each other; thus, a solution requires that no two queens share the same row, column, or diagonal. There are 92 solutions. ...
*
Map coloring problem
*
Maximum cut problem
*
Sudoku
Sudoku (; ; originally called Number Place) is a logic puzzle, logic-based, combinatorics, combinatorial number-placement puzzle. In classic Sudoku, the objective is to fill a 9 × 9 grid with digits so that each column, each row, and ...
,
crossword
A crossword (or crossword puzzle) is a word game consisting of a grid of black and white squares, into which solvers enter words or phrases ("entries") crossing each other horizontally ("across") and vertically ("down") according to a set of cl ...
s,
futoshiki
, or More or Less, is a logic puzzle game from Japan. Its name means "inequality (mathematics), inequality". It is also spelled hutosiki (using Kunrei-shiki romanization). Futoshiki was developed by Tamaki Seto in 2001.
The puzzle is played on ...
,
Kakuro (Cross Sums),
Numbrix/
Hidato,
Zebra Puzzle, and many other
logic puzzle
A logic puzzle is a puzzle deriving from the mathematics, mathematical field of deductive reasoning, deduction.
History
The logic puzzle was first produced by Charles Lutwidge Dodgson, who is better known under his pen name Lewis Carroll, the a ...
s
These are often provided with tutorials of
CP, ASP, Boolean SAT and SMT solvers. In the general case, constraint problems can be much harder, and may not be expressible in some of these simpler systems. "Real life" examples include
automated planning
Automated planning and scheduling, sometimes denoted as simply AI planning, is a branch of artificial intelligence that concerns the realization of strategy, strategies or action sequences, typically for execution by intelligent agents, autonomou ...
,
lexical disambiguation,
musicology
Musicology is the academic, research-based study of music, as opposed to musical composition or performance. Musicology research combines and intersects with many fields, including psychology, sociology, acoustics, neurology, natural sciences, ...
,
product configuration Knowledge-based configuration, also referred to as product configuration or product customization, is an activity of Personalization, customising a product to meet the needs of a particular customer. The product in question may consist of mechanical ...
and
resource allocation
In economics, resource allocation is the assignment of available resources to various uses. In the context of an entire economy, resources can be allocated by various means, such as markets, or planning.
In project management, resource allocatio ...
.
The existence of a solution to a CSP can be viewed as a
decision problem
In computability theory and computational complexity theory, a decision problem is a computational problem that can be posed as a yes–no question on a set of input values. An example of a decision problem is deciding whether a given natura ...
. This can be decided by finding a solution, or failing to find a solution after exhaustive search (
stochastic algorithms typically never reach an exhaustive conclusion, while directed searches often do, on sufficiently small problems). In some cases the CSP might be known to have solutions beforehand, through some other mathematical inference process.
Formal definition
Formally, a constraint satisfaction problem is defined as a triple
, where
*
is a set of variables,
*
is a set of their respective domains of values, and
*
is a set of constraints.
Each variable
can take on the values in the nonempty domain
.
Every constraint
is in turn a pair
, where
is a set of
indices and
is a
-ary
relation
Relation or relations may refer to:
General uses
* International relations, the study of interconnection of politics, economics, and law on a global level
* Interpersonal relationship, association or acquaintance between two or more people
* ...
on the corresponding product of domains
where the product is taken with indices in ascending order. An ''evaluation'' of the variables is a function from a subset of variables to a particular set of values in the corresponding subset of domains. An evaluation
satisfies a constraint
if the values assigned to the variables
satisfy the relation
.
An evaluation is ''consistent'' if it does not violate any of the constraints. An evaluation is ''complete'' if it includes all variables. An evaluation is a ''solution'' if it is consistent and complete; such an evaluation is said to ''solve'' the constraint satisfaction problem.
Solution
Constraint satisfaction problems on finite domains are typically solved using a form of
search
Searching may refer to:
Music
* "Searchin', Searchin", a 1957 song originally performed by The Coasters
* Searching (China Black song), "Searching" (China Black song), a 1991 song by China Black
* Searchin' (CeCe Peniston song), "Searchin" (C ...
. The most used techniques are variants of
backtracking
Backtracking is a class of algorithms for finding solutions to some computational problems, notably constraint satisfaction problems, that incrementally builds candidates to the solutions, and abandons a candidate ("backtracks") as soon as it de ...
,
constraint propagation, and
local search. These techniques are also often combined, as in the
VLNS method, and current research involves other technologies such as
linear programming
Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements and objective are represented by linear function#As a polynomia ...
.
Backtracking
Backtracking is a class of algorithms for finding solutions to some computational problems, notably constraint satisfaction problems, that incrementally builds candidates to the solutions, and abandons a candidate ("backtracks") as soon as it de ...
is a recursive algorithm. It maintains a partial assignment of the variables. Initially, all variables are unassigned. At each step, a variable is chosen, and all possible values are assigned to it in turn. For each value, the consistency of the partial assignment with the constraints is checked; in case of consistency, a
recursive
Recursion occurs when the definition of a concept or process depends on a simpler or previous version of itself. Recursion is used in a variety of disciplines ranging from linguistics to logic. The most common application of recursion is in m ...
call is performed. When all values have been tried, the algorithm backtracks. In this basic backtracking algorithm, consistency is defined as the satisfaction of all constraints whose variables are all assigned. Several variants of backtracking exist.
Backmarking improves the efficiency of checking consistency.
Backjumping
In constraint programming and SAT solving, backjumping (also known as non-chronological backtracking or intelligent backtracking) is an enhancement for backtracking algorithms which reduces the search space. While backtracking always goes up one ...
allows saving part of the search by backtracking "more than one variable" in some cases.
Constraint learning infers and saves new constraints that can be later used to avoid part of the search.
Look-ahead is also often used in backtracking to attempt to foresee the effects of choosing a variable or a value, thus sometimes determining in advance when a subproblem is satisfiable or unsatisfiable.
Constraint propagation techniques are methods used to modify a constraint satisfaction problem. More precisely, they are methods that enforce a form of
local consistency, which are conditions related to the consistency of a group of variables and/or constraints. Constraint propagation has various uses. First, it turns a problem into one that is equivalent but is usually simpler to solve. Second, it may prove satisfiability or unsatisfiability of problems. This is not guaranteed to happen in general; however, it always happens for some forms of constraint propagation and/or for certain kinds of problems. The most known and used forms of local consistency are
arc consistency,
hyper-arc consistency, and
path consistency. The most popular constraint propagation method is the
AC-3 algorithm, which enforces arc consistency.
Local search methods are incomplete satisfiability algorithms. They may find a solution of a problem, but they may fail even if the problem is satisfiable. They work by iteratively improving a complete assignment over the variables. At each step, a small number of variables are changed in value, with the overall aim of increasing the number of constraints satisfied by this assignment. The
min-conflicts algorithm is a local search algorithm specific for CSPs and is based on that principle. In practice, local search appears to work well when these changes are also affected by random choices. An integration of search with local search has been developed, leading to
hybrid algorithms.
Theoretical aspects
Computational Complexity
CSPs are also studied in
computational complexity theory
In theoretical computer science and mathematics, computational complexity theory focuses on classifying computational problems according to their resource usage, and explores the relationships between these classifications. A computational problem ...
,
finite model theory
Finite model theory is a subarea of model theory. Model theory is the branch of logic which deals with the relation between a formal language (syntax) and its interpretations (semantics). Finite model theory is a restriction of model theory to inte ...
and
universal algebra
Universal algebra (sometimes called general algebra) is the field of mathematics that studies algebraic structures in general, not specific types of algebraic structures.
For instance, rather than considering groups or rings as the object of stud ...
. It turned out that questions about the complexity of CSPs translate into important universal-algebraic questions about underlying algebras. This approach is known as the ''algebraic approach'' to CSPs.
Since every computational decision problem is
polynomial-time equivalent to a CSP with an infinite template, general CSPs can have arbitrary complexity. In particular, there are also CSPs within the class of
NP-intermediate problems, whose existence was demonstrated by
Ladner, under the assumption that
P ≠ NP.
However, a large class of CSPs arising from natural applications satisfy a complexity dichotomy, meaning that every CSP within that class is either in
P or
NP-complete
In computational complexity theory, NP-complete problems are the hardest of the problems to which ''solutions'' can be verified ''quickly''.
Somewhat more precisely, a problem is NP-complete when:
# It is a decision problem, meaning that for any ...
. These CSPs thus provide one of the largest known subsets of
NP which avoids
NP-intermediate problems. A complexity dichotomy was first proven by
Schaefer for Boolean CSPs, i.e. CSPs over a 2-element domain and where all the available relations are
Boolean operators. This result has been generalized for various classes of CSPs, most notably for all CSPs over finite domains. This ''finite-domain dichotomy conjecture'' was first formulated by Tomás Feder and Moshe Vardi, and finally proven independently by Andrei Bulatov and Dmitriy Zhuk in 2017.
Other classes for which a complexity dichotomy has been confirmed are
* all
first-order reducts of
,
* all first-order reducts of the
countable random graph,
* all first-order reducts of the
model companion of the class of all C-relations,
* all first-order reducts of the universal homogenous
poset
In mathematics, especially order theory, a partial order on a Set (mathematics), set is an arrangement such that, for certain pairs of elements, one precedes the other. The word ''partial'' is used to indicate that not every pair of elements need ...
,
* all first-order reducts of homogenous undirected graphs,
* all first-order reducts of all unary structures,
* all CSPs in the complexity class MMSNP.
Most classes of CSPs that are known to be tractable are those where the
hypergraph
In mathematics, a hypergraph is a generalization of a Graph (discrete mathematics), graph in which an graph theory, edge can join any number of vertex (graph theory), vertices. In contrast, in an ordinary graph, an edge connects exactly two vert ...
of constraints has bounded
treewidth
In graph theory, the treewidth of an undirected graph is an integer number which specifies, informally, how far the graph is from being a tree. The smallest treewidth is 1; the graphs with treewidth 1 are exactly the trees and the forests
...
, or where the constraints have arbitrary form but there exist equationally non-trivial polymorphisms of the set of constraint relations.
An ''infinite-domain dichotomy conjecture'' has been formulated for all CSPs of reducts of finitely bounded homogenous structures, stating that the CSP of such a structure is in P if and only if its
polymorphism clone is equationally non-trivial, and NP-hard otherwise.
The complexity of such infinite-domain CSPs as well as of other generalisations (Valued CSPs, Quantified CSPs, Promise CSPs) is still an area of active researc
https://www.tuwien.at/tu-wien/aktuelles/news/erc-synergy-grant-die-komplexitaet-von-berechnungen]
Every CSP can also be considered as a
conjunctive query In database theory, a conjunctive query is a restricted form of first-order queries using the logical conjunction operator. Many first-order queries can be written as conjunctive queries. In particular, a large part of queries issued on relational ...
containment problem.
Function problems
A similar situation exists between the functional classes
FP and
#P. By a generalization of
Ladner's theorem, there are also problems in neither FP nor
#P-complete as long as FP ≠ #P. As in the decision case, a problem in the #CSP is defined by a set of relations. Each problem takes a
Boolean formula as input and the task is to compute the number of satisfying assignments. This can be further generalized by using larger domain sizes and attaching a weight to each satisfying assignment and computing the sum of these weights. It is known that any complex weighted #CSP problem is either in FP or #P-hard.
Variants
The classic model of Constraint Satisfaction Problem defines a model of static, inflexible constraints. This rigid model is a shortcoming that makes it difficult to represent problems easily. Several modifications of the basic CSP definition have been proposed to adapt the model to a wide variety of problems.
Dynamic CSPs
Dynamic CSPs (''DCSP''s) are useful when the original formulation of a problem is altered in some way, typically because the set of constraints to consider evolves because of the environment.
Solution reuse in dynamic constraint satisfaction problems
Thomas Schiex DCSPs are viewed as a sequence of static CSPs, each one a transformation of the previous one in which variables and constraints can be added (restriction) or removed (relaxation). Information found in the initial formulations of the problem can be used to refine the next ones. The solving method can be classified according to the way in which information is transferred:
* Oracles: the solution found to previous CSPs in the sequence are used as heuristics to guide the resolution of the current CSP from scratch.
* Local repair: each CSP is calculated starting from the partial solution of the previous one and repairing the inconsistent constraints with local search.
* Constraint recording: new constraints are defined in each stage of the search to represent the learning of inconsistent group of decisions. Those constraints are carried over to the new CSP problems.
Flexible CSPs
Classic CSPs treat constraints as hard, meaning that they are ''imperative'' (each solution must satisfy all of them) and ''inflexible'' (in the sense that they must be completely satisfied or else they are completely violated). Flexible CSPs relax those assumptions, partially ''relaxing'' the constraints and allowing the solution to not comply with all of them. This is similar to preferences in preference-based planning
In artificial intelligence, preference-based planning is a form of automated planning and scheduling which focuses on producing plans that additionally satisfy as many user-specified preferences as possible. In many problem domains, a task can be a ...
. Some types of flexible CSPs include:
* MAX-CSP, where a number of constraints are allowed to be violated, and the quality of a solution is measured by the number of satisfied constraints.
* Weighted CSP, a MAX-CSP in which each violation of a constraint is weighted according to a predefined preference. Thus satisfying constraint with more weight is preferred.
* Fuzzy CSP model constraints as fuzzy relations in which the satisfaction of a constraint is a continuous function of its variables' values, going from fully satisfied to fully violated.
Decentralized CSPs
In DCSPs[
] each constraint variable is thought of as having a separate geographic location. Strong constraints are placed on information exchange between variables, requiring the use of fully distributed algorithms to solve the constraint satisfaction problem.
See also
* Constraint composite graph
* Constraint programming
Constraint programming (CP) is a paradigm for solving combinatorial problems that draws on a wide range of techniques from artificial intelligence, computer science, and operations research. In constraint programming, users declaratively state t ...
* Declarative programming
In computer science, declarative programming is a programming paradigm—a style of building the structure and elements of computer programs—that expresses the logic of a computation without describing its control flow.
Many languages that ap ...
*Constrained optimization
In mathematical optimization, constrained optimization (in some contexts called constraint optimization) is the process of optimizing an objective function with respect to some variables in the presence of constraints on those variables. The obj ...
(COP)
* Distributed constraint optimization Distributed constraint optimization (DCOP or DisCOP) is the distributed analogue to constraint optimization. A DCOP is a problem in which a group of agents must distributedly choose values for a set of variables such that the cost of a set of con ...
* Graph homomorphism
* Unique games conjecture
In computational complexity theory, the unique games conjecture (often referred to as UGC) is a conjecture made by Subhash Khot in 2002. The conjecture postulates that the problem of determining the approximate ''value'' of a certain type of g ...
* Weighted constraint satisfaction problem (WCSP)
References
Further reading
A quick introduction to constraint satisfaction on YouTube
*Manuel Bodirsky (2021). ''Complexity of Infinite-Domain Constraint Satisfaction''. Cambridge University Press. https://doi.org/10.1017/9781107337534
*
*
*
*
*
*
*Tomás Feder
''Constraint satisfaction: a personal perspective''
manuscript.
Constraints archive
XCSP3 – An XML-based format designed to represent CSP instances
– Dissertation by Guido Tack giving a good survey of theory and implementation issues
{{DEFAULTSORT:Constraint Satisfaction Problem
Constraint programming
NP-complete problems