| OCR Text |
Show 15 single object. Intermediate objects created within the body of a function are not added to the model's dependency graph. 2.2 Sketchpad. Sketchpad [7] is the ancestor of graphical constraint systems. tt was a drawing system (similar to engineering drafting) capable of applying constraints to parts of the drawing. The user sketched the drawing, selected an appropriate constraint from a library of existing constraint types and applied an Instance of the constraint onto some part of the drawing. Sketchpad had two methods for solving constraint networ1<s. The first method used a planning phase to determine a topological ordering of the constraints followed by constraint propagation according to the plan. If propagation failed, Sketchpad invoked numerical relaxation as its method of last resort. Sketchpad's planning is based on removing free variables from the constraint networ1< and re-evaluating them to satisfy the networ1<. A free variable is a data object which can be re-evaluated to satisfy all of its constraints. A scalar object (like a number) can have at most one constraint and still be a free variable. Sketchpad removes all free variables and their attached constraints from further consideration since those constraints may be easily satisfied by evaluating the free variables. Removing a constraint from consideration may free some of the other variables it is attached to. Sketchpad iterates until there are no more free variables. If no variables are left, then an ordering of the constraints has been found. If any variables remain then there is a cycle in the networ1< and relaxation must be used to satisfy the remainder of the networ1<. The propagation phase is simple: re-evaluate variables in order of the most recently eliminated variables. This ordering of variables is a topological sort of the network. The time complexity of Sketchpad Is both a strength and a weakness. Sketchpad runs in linear time with respect to the size of the network. Even if a change to the network Is local in extent, Sketchpad still performs the global planning and propagation. Ideally, the time complexity should be proportional to the size of the affected part of the networ1<. |