[Gecode] Distributors, batch recomputation

Guido Tack tack at ps.uni-sb.de
Tue Jul 13 16:49:08 CEST 2004


Hi!

We've been thinking a bit about how distributors and batch recomputation, and 
it seems to be not clear at all. So this is the invariant for batch 
recomputation that Christian and I agreed on:

* committing with branch descriptions has to be done in the same order in 
which the descriptions were obtained from the space
* if there's more than one distributor, before committing with a description 
for distributor no. i+1, enough descriptions have to be committed to make 
distributor no. i disappear (completeness)

In the current implementation, after all descriptions for a certain 
distributor have been comitted, a fixed point is computed to allow 
propagators to dynamically create new distributors. This seems to be 
incorrect: The creation of new distributors propably depends on the dynamic 
state of the space, so it may make a big difference which commits are done 
before and after the propagation! Arbitrarily propagating after one 
distributor is finished is just as good or bad as only propagating when there 
are no more active distributors. It seems that dynamically created 
distributors just screw up batch recomputation, which is a shame. The way I'd 
suggest to get around this problem is to mark certain branch descriptions 
such that we know that before committing to them, we have to compute a fixed 
point. The mark would have to be set when a new distributor is created by a 
propagator, although I don't see at the moment where to check that.

Guido

-- 
Guido Tack
Programming Systems Lab
http://www.ps.uni-sb.de/~tack



More information about the gecode-users mailing list