If you combine these two models, you get a new model
*M*_{3} = (
*X*_{3}, *D*_{3}, *C*_{3}), where *X*_{3} =
*X*_{1} *X*_{2},
*D*_{3} =
*D*_{1} *D*_{2}
and *C*_{3} =
*C*_{1} *C*_{2} *C*_{c}. *C*_{c} is a set of
channeling constraints.

You should always choose constraints that are of low arity, i.e. that assignments in one viewpoint can be propagated in the other when only a few variables have been assigned. The combination of viewpoints is useless if propagation via channeling constraints can only occur when a complete assignment has been made. It can also be an advantage to do a combined model without constraints that are hard to express in one viewpoint, provided that the constraints of the other viewpoint together with the channeling constraints take on their work.

Hence, the advantage of a combined model is the strenghtened
propagation caused by these channeling constraints. If in one
model, say *M*_{1} = (
*X*_{1}, *D*_{1}, *C*_{1}), the values from the variables
in *X*_{1} are reduced by the constraints in *C*_{1}, their removal
is propagated by the channeling constraints to the variables of the
other model *M*_{2} = (
*X*_{2}, *D*_{2}, *C*_{2}). So, the propagated removals
from the first viewpoint together with the constraints in *C*_{2} may
remove more values from the domains of *X*_{2}'s variables than the
constraints in *C*_{2} alone.

Andreas Rossberg 2006-08-28