[Gecode] Discarding propagators

Gustavo Gutierrez ggutierrez at atlas.puj.edu.co
Fri Mar 18 23:00:04 CET 2005


Hi all,

Few weeks ago i posted a message with subject "design question". There, i
was trying to implement a propagator that uses other propagators to verify
some kind of consistency and then decide to prune or not domain values.
That is, the user-imposed propagator calls auxiliar propagators, and using
the outcome of such propagators, takes certain actions.

In order to do that without fall in space failures i use a copy of
variables and create a new propagator, then call the propagate method
directly. This new propagator needs to be disabled after the consistency
proof (i.e. it will not exist as long as ordinary propagators imposed by
user). In order to "simulate" propagator disabling i added a new method
that contains a flag. When the flag becomes true the propagate method
returns ES_SUBSUMMED. My hope is that the auxiliar propagator will be
removed (in a safe way) from the propagation queue at some time after
this.

I was able of implementing the "main" propagator following this approach.
My problem is that it works fine in some examples, but for others it
raises a segfault. Very likely, I have a misassumption regarding the role
and functioning of the propagation queue. I would apprecciate any comments
and/or suggestions on this issue.

Thanks in advance,

Gustavo Gutierrez



More information about the gecode-users mailing list