Constraint Satisfaction Techniques For Combinatorial Problems