7.6 Reified Propagators

reified.isIn

{FS.reified.isIn +*M $D}

\codeinline{oz}{D} \in \{0,1\} \wedge ((\codeinline{oz}{I} \in \codeinline{oz}{M}) \leftrightarrow
\codeinline{oz}{D} = 1)

reified.areIn

{FS.reified.areIn +Spec *M $Ds}

Spec describes a list of individual elements Is. Is and Ds are lists of the same length such that every element {\tt
D}_i of Ds reifies the presence of the corresponding element {\tt I}_i of Is in the set M.

reified.include

{FS.reified.include +D1 *M $D2}

D2 reifies the presence of D1 in the set M. This propagator detects in contrast to FS.reified.isIn earlier if D1 is or is not constained in M.

reified.equal

{FS.reified.equal *M1 *M2 $D}

D reifies the equality of M1 and M2.

reified.partition

{FS.reified.partition +MVs +Is +MV $Ds}

The propagator partitions the set value MV by selecting elements from the list of set values MVs. The positive integers in Is denote the cost resp. benefit of the corresponding set value in MVs if it is selected for the partition. Each element of Ds is either 0 or the corresponding integer value in Is depending on whether the corresponding set value in MVs is part of the partition or not. Excluding a set value from the partition is done by constraining the corresponding element of Ds to 0. An element in Ds not equal to 0 includes the corresponding set value in MVs in the partition. The propagator ensures a valid partition according to the values of Ds.


Denys Duchier, Leif Kornstaedt, Martin Homik, Tobias Müller, Christian Schulte and Peter Van Roy
Version 1.4.0 (20080702)