| OCR Text |
Show 33 s1raint premise propagation to Indicate that dependencies are propagated only to constraint network premises. H no premises of C1 depend on d, then constraint premise propagation does no work and we know that nothing to the right of C1 (the part of the graph dependent on d only through C1) needs to be satisfied. We finish by propagating dependencies from 01 to 02. This cleanup phase is called post satisfaction propagation. There are no objects left to recompute which are premises of a constraint network so we just propagate dependencies. (Note that if there are no constraint network premises, then there are no more constraint graphs left to satisfy.} If however, d were a premise of C1, then constraint premise satisfaction would propagate objects to premises of C1. This may leave part of 01 unpropagated but using a modified topological sorting and evaluation algorithm we can remember the nodes which were ready to be recalculated but were not. The unpropagated nodes will be recalculated during post satisfaction propagation. Once all of the premises of C1 have been computed, we satisfy C1 using the constraint satisfaction algorithms. In satisfying C1 we may modify objects in 02 and 03. The modifications in 03 may or may not be premises of C2. So again we perform constraint premise satisfaction. If there were premises of C2 in 03 then we satisfy C2. Before getting bogged down in prose conditionals, here is the basic loop driving the Constraint Kernels satisfaction. Modify an object while (ConstraintPremiseProp()) do Satisfy the next constraint network. PostSatiafactionProp() We determine the first constraint network by topologically sorting the constraint networks. Performing this sort requires the ability to: 1. Group constraints Into disjoint connected COf11)0nents. Each connected component can be treated as a single constraint network. 2. Determine the ordering between the networks (determine if a given network depends on another networi<}. Grouping constraints into disjoint components and embedding the ordering of constraint networks is described in chapter 6. |