An algorithm that is for Constraint Solving.

Builds candidates to a solution, then abandons a canditate if it determines the candidate is not a valid solution