Constraint satisfaction problem
A constraint satisfaction problem consists of variables, possible values for each variable, and constraints that specify which combinations of values are allowed. A solution assigns a value to every variable without violating any constraint.