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 +Is *M $Ds}

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 *S $D2}

D2 reifies the presence of D1 in the set S.

reified.equal

{FS.reified.equal *S1 *S2 $D}

D reifies the equality of S1 and S2.

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, Tobias Müller, Christian Schulte and Peter Van Roy
Version 1.1.0 (20000207)