[gecode-users] Can a propagator hide domain wipe-out of a variable?

Sebastian Albert albert at math.uni-goettingen.de
Fri Apr 13 19:47:50 CEST 2018


Dear list

I consider using "conditional variables", i.e., similar to "conditional
constraints" (a.k.a. reified constraints), I want to have a set (array)
of variables among which only (exactly) one will be actually "active" in
any solution, selected by another variable (call it the "selection"
variable), and only the active/selected one has to fulfill its
constraints. Now I would implement propagators that are aware of this,
and when their propagation finds out that one of the candidates from the
conditional variables has no possible values left in its domain (via
pruning its view completely, resulting in a "failed" modification
event), then, instead of failing the current space, the propagator
should "hide" this failure and instead prune this candidate from the
domain of the selection variable.

Is this a possible way to go in Gecode? If I understand MPG, page 310,
correctly, this should be possible, since it's the propagator's
obligation to report any failure. However, in chapter 25, reification is
not implemented by checking for some ME_FAIL, but rather by inspecting
the domain individually (which is easy in bounds propagation, but seems
unnecessarily intricate in case of domain propagation).
Furthermore, is there an existing name for this concept (like there is
"reification" on constraints)? Maybe it really is just reification in
disguise.

Regards
Sebastian



More information about the users mailing list