As Thorsten wrote, Mozart uses propagation, and each propagator
implements one of the three algorithms you mentioned.
The basic requirement for a propagator is to be able to check the
satisfaction of its constraint when all variables are determined. This
roughly correspond to the "backtracking" technique.
But in reality most propagators do "forward checking" or "look ahead" by
pruning the domains of non yet instanciated variables. What is done is
often between the two, because propagators are a compromise between
speed and amount of pruning. This is because maximal pruning is
sometimes too costly in terms of time complexity.
You can see this in the FD library, for instance. Both propagators
FD.distinct and FD.distinctD implement the same constraint. The former
only performs forward checking, while the latter performs look ahead.
Which one you use depends on the problem.
Cheers,
raph
David López wrote:
Which algorithm occupies mozart - oz, for the problems of type CSP?
Backtracking?
Look-Back?
Forward Checking?
_________________________________________________________________________________
mozart-users mailing list
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users