XTo solve the problem, we start with a space whose store constrains the variables X, Y, and Z to the given domains. We also create three propagators imposing the constraints X7 Z
2 X - Z = 3 . Y
mathend000#
![]()
mathend000#
The propagators for the disequations immediately write all their information into the store and disappear. The store then knows the domains
where![]()
mathend000#
Now propagation has reached a fixpoint. Thus, we continue with a first branching step. We choose to branch with the constraint X = 4. Figure 3 shows the resulting search tree.![]()
mathend000#
The space obtained by adding a propagator for X = 4 can be solved by propagation and yields the solution
X = 4 Y = 1 Z = 1The space obtained by adding a propagator for Xmathend000#
This time we branch with respect to the constraint X = 5.![]()
mathend000#
The space obtained by adding a propagator for X = 5 fails
since
X - Z = 3 . Y
The space obtained by adding a propagator for X
The space obtained by adding a propagator for X = 6 can be
solved by propagation and yields the solution
5
Now we branch with respect to the constraint X = 6.
X = 6 Y = 1 Z = 3
Finally, the space obtained by adding a propagator for
X 6
X = 8 Y = 1 Z = 5
An alternative to the propagate and branch method
is a naive enumerate and test method,
which would enumerate all triples (X, Y, Z) admitted
by the initial domain constraints and test the
constraints
X 7, Z
2