[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