[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