In mathematics, a constraint is a condition of an optimization problem that the solution must satisfy.
The set of candidate solutions that satisfy all constraints is called the feasible set.
[1] The following is a simple optimization problem: subject to and where
These two constraints are hard constraints, meaning that it is required that they be satisfied; they define the feasible set of candidate solutions.
But this solution does not satisfy the constraints.
The solution of the constrained optimization problem stated above is
Soft constraints arise in, for example, preference-based planning.
In a MAX-CSP problem, a number of constraints are allowed to be violated, and the quality of a solution is measured by the number of satisfied constraints.
Global constraints[2] are constraints representing a specific relation on a number of variables, taken altogether.
Some of them, such as the alldifferent constraint, can be rewritten as a conjunction of atomic constraints in a simpler language: the alldifferent constraint holds on n variables
, and is satisfied if the variables take values which are pairwise different.
It is semantically equivalent to the conjunction of inequalities
In this case, they usually capture a typical structure of combinatorial problems.
For instance, the regular constraint expresses that a sequence of variables is accepted by a deterministic finite automaton.
Global constraints are used[3] to simplify the modeling of constraint satisfaction problems, to extend the expressivity of constraint languages, and also to improve the constraint resolution: indeed, by considering the variables altogether, infeasible situations can be seen earlier in the solving process.
Many of the global constraints are referenced into an online catalog.