[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