[gecode-users] Advisor return values

Gustavo Gutierrez gutierrez.gustavo at uclouvain.be
Mon Aug 16 11:41:05 CEST 2010


Dear all,

I have a question (probably very naive!) about the use of advisor return
values. From MPG, an advisor could: schedule the associated propagator
(ES_NOFIX), avoid its execution (ES_FIX) or fail the propagator in advance
(ES_FAILURE). My question comes out when using multiple advisors in the same
propagator. Let suppose the propagator is posted on a variable and an array
of variables (in my case both are sets). Now let us suppose that one of the
advisors (say a_i) on the array is executed (i.e. the advise method of the
propagator is called with it as argument). I would like to have clear what
will happen to the other advisors executed after it depending on it return
value.


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?

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?

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!).

Regards,
-- 
Gustavo Gutierrez
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20100816/b086597f/attachment.htm>


More information about the users mailing list