Hi.
I've searched for a definition of value-consistency, but I don't
really
find it.
Unlike bounds-consistency or domain-consistency, it's not standard
terminology, I think.
What I've understood is that using the value-consistency is no more
than
a constraint checking. So, there's no propagation in this case.
Saying that a constraint is value-consistent should then mean that it
exists a value for each involved variable such that the constraint is
satisfied.
Examples :
X in {1, 2, 3}
Y in {3, 4, 5}
the constraint X = Y is value-consistent.
X in {1, 2, 3}
Y in {4, 5, 6}
the constraint X = Y isn't value-consistent.
Am I right ?
No, it's even weaker. We haven't defined it formally, but our
intuition for the ICL_VAL consistency level is that the constraint
will only propagate if at least one of its variables is assigned to a
single value. A formal definition would be something like "for all
variables with singleton domains, there exist values in the domains
of the other variables that are consistent with the constraint".
We can slightly modify your example:
For X in {1}, Y in {1,2,3}, X=Y is value consistent
For X in {1}, Y in {2,3}, X=Y is not value consistent
But:
For X in {1,2}, Y in {3,4}, X=Y is value consistent!
For the implementation, it usually means that the propagator
subscribes with the PC_INT_VAL propagation condition (for int
variables), so that it is only woken up when a variable gets
assigned. In fact, the propagator might be even weaker, only deciding
whether the constraint holds if /all/ its variables are assigned.
This is actually the minimal thing a propagator has to do.
Cheers,
Guido
--
Guido Tack
Programming Systems Lab, Saarland University, Germany
http://www.ps.uni-sb.de/~tack
_______________________________________________
Gecode users mailing list
[EMAIL PROTECTED]
https://www.gecode.org/mailman/listinfo/gecode-users