| OCR Text |
Show CHAPTER3 CONSTRAINTS AND DEPENDENCIES, CONSTRAINT KERNELS. In section 1.8, I stated the goals of this thesis. They are to develop algorithms which allow both constraint and dependency based model maintenance within the same modeling system. The algorithms to be developed will allow the modeler to explore all of the possible solutions to the constraints with firstSolution, nextSolution, previousSolution and undoSolution. There will be provision for reusable satisfaction plans. Constraint Kernels is my name for the merging of constraint networks with a dependency graph. The constraint networks may be viewed as general undirected graphs while the dependency graph is a directed, acyclic graph. While the method of Constraint Kernels is applicable to many methods of constraint satisfaction, this thesis will use a depth first con- . straint satisfaction plan search since it is straightforward to use the method to find all of the solutions to a constraint network. The dependency propagation methods will be loosely based on section 1 .4. This chapter will describe the basic problem of mixing constraints and dependencies in a single system, provide an insight into solving the problem, examine any limitations on the constraints and dependencies implied by the solution, and show the basic outline of an implementation of the solution. Subsequent chapters will present the algorithms in detail. 3.1 Mixing Constraints and Dependencies. A constraint graph is an undirected graph where the nodes represent constraints and the edges represent data objects. An edge may represent a variable, a constant or an intermediate result. An object is constrained by a particular constraint only if an-edge representing the object is attached to the constraint. If an object is changed, all the attached constraints are considered potentially unsatisfied. Conversely, a constraint is normally allowed to modify any attached objects except constants. |