[gecode-users] Why do we need to update variables for propagators

Zhu Zichen's cse zzhu at cse.cuhk.edu.hk
Mon Jul 13 05:39:57 CEST 2015


Dear all,

I have some confusion on the updating of variables in the copy function of
propagators. As we have updated variables in the Space when do copying, why
do we still need to update them in propagators again? I think we only need
to get the relation between the views that subscribed by the constraints
and the variables.

The reason why I propose this question is that I have implemented the
propagator of a global constraint. This global constraint would occur many
times during search and involves many variables. Thus the updating of
variables in the copy function of its propagator would incur a large
overhead. I did another version by putting all these set of same global
constraints into one constraint GLOBAL_ONE and propose another propagator.
This propagator works like an propagator engine but is not that efficient
than the one given by Gecode (of course). Now we only need to update the
entire variables once for GLOBAL_ONE. Utilizing this GLOBAL_ONE constraint
wins over one-propagator-for-each constraints since the overhead of
updating variables dominates the overhead of doing filtering.

If we cannot avoid to update variables in the propagators, I would like to
ask is it also necessary in other CSP solvers like eclipse and ILOG? If so,
it would be a good research topic to find the balance between the overhead
of coping and the power of filtering algorithm.

Thanks for your help.

Zoe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20150713/d8a4d507/attachment.html>


More information about the users mailing list