## 2.10 Models

A model of a problem is a representation of the problem as a finite domain problem (as defined in Section 2.1). A model specifies the variables and the constraints representing the problem.

Nontrivial problems will admit different models and different distribution strategies, coming with different computational properties and search trees of different size. The art of constraint programming consists in finding for a problem a model and a distribution strategy that yield a computationally feasible search tree.