Algorithms for Constraint-Satisfaction Problems: A Survey