Background: Constraint Satisfaction Problem
a set of variables x1, x2, กฤ, xn, which take their values from finite, discrete domains D1, D2, กฤ, Dn
a set of constraints, a constraint is represented as a allowed combination of variable values
to find the value assignment of the variables that satisfies all constraints