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 _______________________________________________ Gecode users mailing list users@gecode.org https://www.gecode.org/mailman/listinfo/gecode-users