Hi, no you can't do that. If a variable operation returns failure, the propagator _must_ report failure as well. This has to do with the fact that the variable domain in most cases has been modified in a way that violates certain invariants. The only thing you can do with a variable like that is inspect it.
Cheers Christian -- Christian Schulte, https://chschulte.github.io/ Professor of Computer Science, KTH, cschu...@kth.se Expert Researcher, RISE SICS, christian.schu...@ri.se -----Original Message----- From: users-boun...@gecode.org <users-boun...@gecode.org> On Behalf Of Sebastian Albert Sent: 13 April 2018 19:48 To: email@example.com Subject: [gecode-users] Can a propagator hide domain wipe-out of a variable? 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 firstname.lastname@example.org https://www.gecode.org/mailman/listinfo/gecode-users _______________________________________________ Gecode users mailing list email@example.com https://www.gecode.org/mailman/listinfo/gecode-users