[gecode-users] Extra information during propagation
Vincent Barichard
Vincent.Barichard at univ-angers.fr
Sun Jan 25 19:16:03 CET 2009
Hi Christian,
Le samedi 24 janvier 2009 11:11:44 Christian Schulte, vous avez écrit :
> Nope, if the advisor returns ES_FIX the propagator is _not_ scheduled!
Sorry, I made a confusion because of the new propagation condition that I
created. So the propagators are scheduled because of this propagation
condition and not because of my advisor.
>
> Unscheduling a propagator is actually possible (check how it's done in
> status in core.cpp, you have to unlink it and put it back in the idle
> queue) but doing that is really risky: are you really really sure that the
> propagator does not have to be run? And then, why bother? Just let it do a
> noop.
>
OK.
> Advisors are designed to be minimal, so you are not allowed to propagate
> within them or kill off your propagator. What you do when you want to
> subsume a propagator: leave a mark in the propagator's state, schedule it
> (by returning ES_NOFIX in the advisor) and let the propagator then do the
> subsumption.
>
I'll do that.
Thank you very much for your help. I really appreciated your advises.
Cheers,
Vincent
More information about the gecode-users
mailing list