Andrés Felipe Barco Santa wrote :
Hi,

I have been working with finite set variables and using the reified propagators of the FS module. Now I have a question about a propagator, its propagation function and its documentation. In fact there are two propagators, FS.reified.bounds and FS.reified.boundsN. These propagators are not documented in the section *"7.6 Reified Propgators"* of *System Modules*, but they have an Oz implementation and
a C++ one (mozart/share/lib/cp and mozart/platform/emulator/
libfset/reified.*).

Now the questions are:
- What do these propagators do?
If my understanding of the code is correct, FS.reified.bounds takes as parameters:
an FS value,
an FS constraint variable,
an integer,
an FD variable,
an Bool variable (FD with a 0#1 domain).

and is equivalent to:

proc{Bounds FSVal FSVar IntVal FDVar BoolVar}
  NotBoolVar in
  FDVar =<: IntVar
  {FS.subset FSVar FSVal}
  BoolVar={FS.reified.equal FSVar FSVal}
  BoolVar={FD.reified.int IntVal FDVar}
  {FD.nega BoolVar NotBoolVar}
  NotBoolVar={FS.reified.equal FSVar FS.value.empty}
  NotBoolVar={FD.reified.int 0 FDVar}
end

Which is not really a reified constraint since when the boolean variable is equal to zero, it constraints the other variables much more than needed.

FS.reified.boundsN is just taking vectors of the same types and apply the constraint element by element.
- Why there is no documentation for them?
Because this propagator isn't useful?
Actually, I don't really see why this constraint exist. It might be some leftover from debugging or something similar. It look like it might be used by contrib/reflect (which is unmaintained), maybe as a workaround for FS.card (which implies that the set is different from FS.value.universal)

Sorry for the bad english and thanks for any help.


--
Andrés Felipe Barco Santa
Estudiante
Escuela de Ingeniería de Sistemas y Computación
Universidad del Valle
América del Sur
GeOz Developer
Yves
_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to