2010/8/16 Gustavo Gutierrez <[email protected]> > 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/
_______________________________________________ Gecode users mailing list [email protected] https://www.gecode.org/mailman/listinfo/gecode-users
