[Gecode] Distributors, batch recomputation

Guido Tack tack at ps.uni-sb.de
Wed Jul 14 11:45:07 CEST 2004


Am Mittwoch, 14. Juli 2004 11:18 schrieb Christian Schulte:
> I follow your conclusions but I do not follow your concerns. In which way
> does branching creation depend on the state of the space? Could you please
> elaborate.

Maybe I haven't really understood the way distributors are created 
dynamically, but this is what I have in mind:

The Int::Combinators::Select propagator waits for an int variable to be 
assigned and then e.g. creates a new distributor. Assume the following setup:

intvar a,b
select(create new distributor 1, b)
select(create new distributor 2, a)
distribute naive [a,b]

Now without recomputation, you would probably create the new distributors in 
the order 2,1, because a gets determined by distribution before b. In batch 
recomputation, however, you do both distribution steps, determining a and b, 
before propagation. Now I guess that the selection propagator waiting for b 
will be invoked first (or at least I don't see why it shouldn't be ;-), so 
the order in which the new distributors are created is 1,2. This will mess up 
the later steps in batch recomputation, because we will try to commit to 
descriptions in the original order.

Guido

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



More information about the gecode-users mailing list