- Up - | Next >> |
Let's now illustrate how to solve this problem in Oz. We define the following constraint which can be added directely to the constraint store:
[X Y Z] ::: 1#7
Here we make use of Oz-variables whose syntax is given by words with leading capital letters. The line above states that X, Y, Z
are so called finite domain variables, i.e. variables taking values in a finite set of integers (here, between 1 and 7). We define the following set of propagators involving these variables:
X + Y =: 3*Z
X - Y =: Z
Note the trailing colon in =:
. The trailing colon is characteristic of operators denoting finite domain constraints.
Next, we invoke a predefined distribution strategy to enumerate the assignments to X, Y, Z
consistent with our constraints.
{FD.distribute naive [X Y Z]}
We represent a solution as a record (called feature tree in computational linguistics):
solution(x:X y:Y z:Z)
This record has label solution
and three features x, y, z
(Oz atoms, i.e. words starting with a lowercase letter). x:X
indicates that the value of feature x
is given by variable X
.
- Up - | Next >> |