1. A computer-implemented method performed by a computerized device, comprising: obtaining a Constraint Satisfaction Problem (CSP) comprising a set of variables, a set of corresponding domains, and a set of constraints; solving the CSP by iteratively: limiting the domains to exclude values that cannot satisfy one or more constraints of the set of constraints; heuristically selecting a variable out of the set of variables, wherein said heuristically selecting is based on constraint semantics of a constraint of the set of constraints; and limiting a corresponding domain of the selected variable.