In artificial intelligence and operations research, constraint satisfaction is the process of finding a solution to a set of Constraint (mathematics)|constraints that impose conditions that the Variable (mathematics)|variables must satisfiability|satisfy. A solution is therefore a vector of variables that satisfies all constraints.
The techniques used in constraint satisfaction depend on the kind of constraints being considered. Often used are constraints on a finite domain, to the point that constraint satisfaction problems are typically identified with problems based on constraints on a finite domain. Such problems are usually solved via Search algorithm|search, in particular a form of backtracking or local search (constraint satisfaction)|local search. Constraint propagation are other methods used on such problems; most of them are incomplete in general, that is, they may solve the problem or prove it unsatisfiable, but not always. Constraint propagation methods are also used in conjunction with search to make a given problem simpler to solve. Other considered kinds of constraints are on real or rational numbers; solving problems on these constraints is done via variable elimination or the simplex algorithm.
Constraint satisfaction originated in the field of artificial intelligence in the 1970s (see for example ). During the 1980s and 1990s, embedding of constraints into a programming language were developed. Languages often used for constraint programming are Prolog and C++.
In artificial intelligence and operations research, constraint satisfaction is the process of finding a solution to a set of Constraint (mathematics)|constraints that impose conditions that the Variable (mathematics)|variables must satisfiability|satisfy. A solution is therefore a vector of variables that satisfies all constraints.
The techniques used in constraint satisfaction depend on the kind of constraints being considered. Often used are constraints on a finite domain, to the point that constraint satisfaction problems are typically identified with problems based on constraints on a finite domain. Such problems are usually solved via Search algorithm|search, in particular a form of backtracking or local search (constraint satisfaction)|local search. Constraint propagation are other methods used on such problems; most of them are incomplete in general, that is, they may solve the problem or prove it unsatisfiable, but not always. Constraint propagation methods are also used in...