[gecode-users] Advisor return values

Mikael Zayenz Lagerkvist zayenz at gmail.com
Mon Aug 16 11:59:40 CEST 2010


2010/8/16 Gustavo Gutierrez <gutierrez.gustavo at uclouvain.be>

> 1) a_i returns ES_FAILURE. My guess is that the propagator wont be run, as
> the entire space will become failed. Am I right?
>

When an advisor returns ES_FAILURE, the current tell will report failure.
The propagator that made the tell will then see that and report failure back
to the kernel, and propagation will be aborted.


2) a_i returns ES_NOFIX. My guess here is that the propagator will  be
> scheduled, how ever what happen if after this advisor, the advisor a_i+1
> returns ES_FIX?. IMO the right thing to schedule the propagator, but is this
> done by gecode automatically?
>

If a propagator has been scheduled for execution, it will be executed when
the propagation queue reaches it. Returning ES_FIX will not affect the
scheduled status of the advisors propagator in any way.


In general, my question is how gecode handles incremental information got
> from the execution of advisors?. I am asking that because I have some
> changes in the search tree between using advised vs. nod-advised propagation
> and favoring unadvised propagation. This is a bit strange to me since in the
> past I have been used advisors and they greatly outperform non advised
> propagation. Of course it can be a bug in my problem (the most probable
> case!).
>

One issue that could lead to different search-spaces is non-monotonic
propagation. If your propagator is monotonic, and both versions are supposed
to perform the same amount of propagation, then it sounds like a bug. What
kind of propagator is it, and how do you use advisors?

Cheers,
Mikael

-- 
Mikael Zayenz Lagerkvist, http://www.ict.kth.se/~zayenz/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20100816/067306a3/attachment.htm>


More information about the users mailing list