FD.distribute never returns and manual constraining fails?

Torsten Anders torstenanders at gmx.de
Sat Apr 21 18:28:02 CEST 2007


Dear Joshua,

On 20.04.2007, at 19:35, Joshua ben Jore wrote:
> I observed that the domain was getting partially solved already.

Constraint propagation reduces the variable domains even outside a 
script. Propagation quasi performs some logical deduction, but never 
conducts any decision which is potentially wrong. So, it reduces the 
variable domains, but usually does not arrive at a solution where all 
variables are determined.

Propagation is complemented by search, which is expressed by both the 
distribution strategy (FD.distribute in your case) and the search 
engine (e.g. Search.base.one). Propagation and distribution take turns 
during the search process: whenever no more propagation can happen, the 
distributor makes a decision. Therefore, it waits until all propagators 
are finished. This is the waiting behaviour you observed. This is also 
the reason why the distributor should be at the end of a script.

A particular advantage of the Oz constraint model is that both the 
distribution strategy and the search engine are programmable by the 
user. The distribution strategy defines quasi the shape of the search 
tree and the search engine defines how this search tree is traversed 
for finding a solution.

Best,
Torsten

--
Torsten Anders
Sonic Arts Research Centre • Queen's University Belfast
Frankstr. 49 • D-50996 Köln
Tel: +49-221-3980750
http://strasheela.sourceforge.net
http://www.torsten-anders.de



More information about the mozart-users mailing list