[gecode-users] help! propagators stop being called after one cloning.
Grégoire Dooms
dooms at info.ucl.ac.be
Wed Mar 22 15:59:10 CET 2006
Hello guys,
I have come back to the implementation of a variabe type for graph
variables.
But I'm stuck on the following bug which I have some troubles hunting down.
I have a csp with one graph variable and two propagators subscribed on
it (cpgraph-path.cc in contribs/graph/examples).
Their propagation condition is PC_GRAPH_ANY.
What happens is those two propagators are runned on the first invocation
of Space::status in the DFS code.
But from then on the propagators are copied and deleted but propagate is
then never called again. So the search engine just enumerates all
subraphs of the initial upper bound.
I have been tracing the execution through the different Space methods
but I don't have a clear idea of where to look for the cause of this bug.
I think it should have something to do with my VarTypeProcessor (never
blame the kernel !) but comparing it to the set and int ones shows no
significant difference.
Do you have any hints on which values/attributes I should inspect to see
what happens ?
In particular what is the difference between the ActorLink and the
ActorDeleteLink ?
Should I trace in Processor::process called from Space::process ?
I known the propagators are still there as they keep getting copied but
I would like to know where the decision to reschedule them is /should be
taken. And then where they should be (I guess in the pool then popped
with pool_pop).
Any ideas ?
Cheers, Thanks,
--
Gregoire
More information about the gecode-users
mailing list