[gecode-users] propagator - gist problem
Guido Tack
tack at ps.uni-sb.de
Wed Nov 19 17:45:50 CET 2008
Alberto Delgado wrote:
> I tried ES_NOFIXED and it didn't work either but i'd like to be sure
> that what i understand about each ExecStatus of a propagator is
> correct:
>
> ES_SUBSUMED = The propagator can be entailed from the store so it is
> not necessary any more.
> ES_FAILED = The propagator failed. A variable has an empty domain
> or some specific condition is fulfilled and according to me it is
> not possible to reach a feasible solution from here and i want the
> space to fail.
> ES_FIX = The propagator can't prune any more values from the
> domains (has reached a fix point) but it is not entailed yet.
> ES_NOFIX = The propagator hasn't reached a fix point yet so I want
> it to be enqueued and run again before the space reaches a fix point.
> ES_OK = No clue.
ES_OK is used when we just want to distinguish between FAILED and not
FAILED, for example in branchings. You can ignore it for propagators.
> The problem i have with Gist occurs when the propagator fails, it
> seems like i return fail but the space somehow doesn't fail at all.
I'm not sure that is what happens. I rather suspect a problem with
recomputation: when recomputing a node, Gist expects that node not to
be failed, because it wasn't failed when it was visited previously.
If you have nonmonotonic propagators, or wrongly report FIX when you
are not at a fixed point, this invariant does not hold any longer.
The non-gui search engines have been adapted to be able to cope with
non-monotonic propagators, Gist apparently isn't fully compatible
yet. If your propagator is nonmonotonic, you should think about
whether this is by design or by accident - in most cases, nonmonotonic
propagation is a bug.
Cheers,
Guido
More information about the gecode-users
mailing list