Process of finding a solution to a set of constraints that impose conditions that the variables must satisfy