Academia.eduAcademia.edu

A Brief on Constraint Solving

2005, Computer-Aided Design and Applications

We survey the current state of the art in geometric constraint solving. Both 2D and 3D constraint solving is considered, and different approaches are characterized.

A Brief on Constraint Solving Christoph M. Hoffmann Department of Computer Science Purdue University West Lafayette, IN 47907-1398, USA Robert Joan-Arinyo Escola Tècnica Superior d’Enginyeria Industrial Universitat Politècnica de Catalunya Av. Diagonal 647, 8a, E–08028 Barcelona, Spain April 7, 2005 Abstract We survey the current state of the art in geometric constraint solving. Both 2D and 3D constraint solving is considered, and different approaches are characterized. Keywords: Geometric constraints, constraint solving, parametric design. 1 Introduction and Scope 2D geometric constraint solving is arguably a core technology of computeraided design (CAD) and, by extension, of managing product design data. Since the introduction of parametric design by Pro/Engineer in the 1980s, every major CAD system has adopted geometric constraint solving into its design interface. Most prominently, 2D constraint solving has become an integral component of sketchers on which most systems base feature design. Beyond applications in CAD and, by extension, in manufacturing, geometric constraint solving is also applicable in virtual reality and is closely related in a technical sense to geometric theorem proving. For solution 1 techniques, geometric constraint solving also borrows heavily from symbolic algebraic computation and matroid theory. In this paper, we review basic techniques that are widely available for solving 2D and 3D geometric constraint problems. We focus primarily on the basics of 2D solving and touch lightly on spatial constraint solving and the various ways in which geometric constraint solvers can be extended with relations, external variables, and parameter value enclosures. These and other extensions and problem variants have been published in the literature. They are recommended to the interested reader as follow-on material for study. 2 Preliminaries A geometric constraint problem can be characterized by means of a tuple (E, O, X, C) where • E is the geometric space constituting a reference framework into which the problem is embedded. E is usually Euclidean. • O is the set of specific geometric objects which define the problem. They are chosen from a fixed repertoire including points, lines, circles and the like. • X is a, possibly empty, set of variables whose values must be determined. In general, variables represent quantities with geometric meaning: distances, angles and so on. When the quantities are without a geometric meaning, for example, when they quantify technological aspects and functional capabilities, those variables are called external. • C is the set of constraints. Constraints can be geometric or equational. Geometric constraints are relationships between geometric elements chosen from a predefined set, e.g., distance, angle, tangency, etc. The relationship (the distance, the angle, ...) is represented by a tag. If the tag represents a fixed value, known in advance, then the constraint is called valuated. If the tag represents a value to be computed as part of solving the constraint problem, then the constraint is called symbolic, [32]. Equational constraints are equations some of whose variables are tags of symbolic constraints. The set of equational constraints can be 2 empty. The geometric constraint solving problem can now be stated as follows: Given a geometric constraint problem (E, O, X, C), 1. Are the geometric elements in O placed with respect to each other in such a way that the constraints in C are satisfied? If the answer is positive, then 2. given an assignment of values to the valuated constraints and external variables, is there an actual construction that satisfies the constraints and equations? When dealing with geometric constraint solving, the first issue thatneeds to be settled is the dimension of the embedding space E. Spatial constraint solving, where E = R3 , includeproblems in fields like molecular modeling, robotics, and terrainmodeling. Here, both a good conceptualization and an effective solvingmethodology for thegeometric constraint problem has proved to be difficult. Pioneering work hasbeen reported by Hoffmann and Vermeer,[37, 38] and by Durand,[18]. 2.1 The General Problem Figure 1 depicts a general geometric constraint solving problem in R2 . Problem components are • The set of geometric elements, O = {A, B, C, D, LAB , LAC , LBC }. • The set of tags in the constraints, P = {d, h, α}. • The set of geometric variables, V1 = {x, y}. • The set of external variables, V2 = {v}. • The set of geometric constraints with fixed tags, C1 = {dpp(A, B) = d, dpl(C, LAB ) = h, ∠(LAB , LBC ) = α}. • The set of geometric constraints with variable tags, C2 = {dpp(A, C) = x, dpp(C, D) = y}. • The set of equational constraints, C3 = {y = x · v, v = 0.5 cos(α)}. 3 C y x D LBC LAC h A α LAB y = x·v B v = 0.5 cos(α) d Figure 1: The general geometric constraint solving problem. Example in R2 . with X = V1 ∪ V2 and C = C1 ∪ C2 ∪ C3 . Presented in this way, the geometric constraint solving problem includes in general issues concerning how to deal with external variables. Here we refer the interested reader to the work by Hoffmann and Joan-Arinyo, [32], and Joan-Arinyo and Soto, [45]. 2.2 The Basic Problem The basic constraint problem only considers geometric elements and constraints whose tags are assigned a value. It excludes external variables, constraints whose tags must be computed, and equational constraints. So the basic problem is stated in the following way. Given a set O with n geometric elements and a set C with m geometric constraints defined on them 1. Is there a placement of the n geometric elements such that the m constraints are fulfilled? If the answer is positive, 2. given an assignment of values to the m constraints tags, is there an actual construction of the n geometric elements satisfying the constraints? Figure 2 depicts a piston-crankshaft mechanism, [17], a basic geometric constraint solving problem. The left side shows the geometric problem, the right side shows the actual mechanism so abstracted. The mechanism 4 ✆✁✝✁✆ ✝✁✆ ✝✆ ✆✁ ✆ ✆✆ ✝✆✆ ✆✁✝✁ ✝✆✁✁✆✆ ✝✁ ✝✁✝ ✝✆✁✁✆ ✝✁✆✆ ✝✆✆ ✝✁✝✁✝ p1 d5 d1 p5 d4 p2 d2 ✂✁ ✂ ✁ ✂ ✂ l1 p4 p3 ✄ ☎✁ ✄ ☎✄ ☎✁ ✄✄ ☎✁ ✄✄ ☎✄✄ ☎✁ ☎✁ ☎✁ ✄ ☎☎✄ ☎✄✁ ✁ ☎ ✄ ☎✄ ☎✄✁☎✁ d3 Figure 2: Piston, crankshaft and connecting rod mechanism. transforms the translational motion of point p5 along the straight line l1 into a rotational motion of point p4 , on a circular path with center p3 and radius d3 . The piston-crankshaft mechanism can be abstracted as a geometric constraint solving problem comprising five points pi , 1 ≤ i ≤ 5, and a straight line l1 . The set of constraints is given in Figure 3 and includes point-point distances, dpp(), and coincidences, on(). In what follows we will focus on the basic geometric constraint solving problem. 2.3 Problem Categorization The CAD/CAM community focuses on the design and manufacture of rigid objects, that is, objects that are fully determined up to a global coordinate system. Similarly, we seek solutions to a constraint problem that are determined up to a global coordinate system, that is, where solutions are congruent under the rigid-body transformations of translation and rotation. We call a configuration of geometric objects in Euclidean space rigid when all objects are fixed with respect to each other up to translation and rotation. An intuitive way to introduce rigidity comes from considering the number of solutions that a geometric constraint problem has. There are three categories: A problem is structurally under constrained if there are infinitely many solutions that are not congruent under rigid transformation, struc5 1. 2. 3. 4. 5. dpp(p1 , dpp(p2 , dpp(p3 , dpp(p4 , dpp(p1 , p2 ) p3 ) p4 ) p5 ) p5 ) = = = = = d1 d2 d3 d4 d5 6. 7. 8. 9. on(p1 , on(p2 , on(p3 , on(p5 , l1 ) l1 ) l1 ) l1 ) Figure 3: A set of geometric constraints for the piston-crankshaft mechanism. turally well-constrained, if there are finitely many solutions modulo rigid transformation, and structurally over constrained if the deletion of one or more constraints results in a well-constrained problem. A constraint problem naturally corresponds to a set of (usually nonlinear) algebraic equations. Defined in this way, the concept of rigidity appears to be simple but it is not quite in accord with the intuition about rigidity. The categories so defined only refer to the problem’s structure and do not account for other issues such as inconsistencies that could originate from specific values assigned to the constraints. Clearly a problem that is structurally wellconstrained could actually be underconstrained for specific values of the constraints. For example, consider the structurally well constrained problem given in Figure 4, see Fudos and Hoffmann, [22]. Point P is properly placed whenever α + β 6= 90◦ and the problem is well-constrained. But if α + β = 90◦ , then the placement for point P is undetermined and, therefore, the problem is no longer well constrained. Different formal definitions of rigidity have been explored in the literature. See, for example, the work by Henneberg, [26], and Laman, [58], or the more recent works by Graver et al. [24], Fudos and Hoffmann, [22], Hoffmann et al., [33], and Whitley, [86, 87]. 3 General Properties of Solving Techniques The properties a geometric constraint solver should have include • Soundness: The solver always halts and, if a solution is found, it satisfies all stipulated constraints. 6 d1 d1 β β d2 d2 α α P P Figure 4: Left: General configuration. Right: Degenerate configuration for α + β = 90◦ . • Completeness: The solver solves all solvable problems and announces the unsolvability of all unsolvable problems. • Competence: Since the known, efficient methods are not complete, property that is more attractive in practice is that the solver solves all solvable problems in a subdomain of interest and, for unsolvable problems in the subdomain, announces unsolvability. Note that a characterization of the subdomain may be difficult. • Persistence: With the same set of (valuated) constraints the solver always finds the same solution. • Stability: Under small changes of assignments to the geometric constraint tags, the solution found is nearby. • Efficiency: Efficiency measures the computational cost, that is, whether solutions are found rapidly. • Robustness: A solver is robust if the solutions are not adversely affected by the finite precision of floating-point computations. Additional desirable properties that enhance a solver’s performance are • Intensionality: The solver finds solutions that the user is interested in. • Geometric sense: A solver has geometric sense whenever the solutions it finds can be expressed as a sequence of geometric construction steps. 7 • Dimension independence: The solver can be used for problems embedded in the space E = Rn , independently of n. • Generality: The solver can deal with the general geometric constraint solving problem including symbolic constraints and external variables. For 2D solvers, there are good compromises that achieve these solver characteristics to a reasonable degree. However, it is difficult to obtain solvers that exhibit persistence and stability fully, [53]. In general, solver competence is the antithesis of efficiency since constraint solving is of doubly exponential complexity. Intensional problems include root selection, orientation, and topological degeneracy for specific dimensional values. They may look simple but generally are associated with complex mathematical problems. 4 Major Approaches Geometric constraint solving methods can be roughly classified as graphbased, logic-based, or algebraic. For 2D solvers, the graph-based approach has become dominant in CAD. A problem closely related to geometric constraint solving is Automated Theorem Proving. 4.1 Graph-Based Approach In the graph-based approach, the constraint problem is translated into a graph (or hyper graph) whose vertices represent the geometric elements and whose edges the constraints upon them; see Section 9. The solver analyzes the graph and formulates a solution strategy whereby subproblems are isolated and their solutions suitably combined. A subsequent phase then solves all subproblems and combines them. The advantage of this type of solver is that the subproblems often are very small and fall into a few simple categories. The disadvantage is that the graph analysis of a fully competent solver is rather complicated. The graph-based approach can be further subdivided into constructive, degree of freedom analysis, and propagation. 8 4.1.1 Constructive Approach The constructive approach generates the solution to a geometric constraint problem as a symbolic sequence of basic construction steps. Each step is a rule taken form a predefined set of operations that position a subset of the geometric elements. For example, the operations may restrict to rulerand-compass constructions. Clearly, this approach preserves the geometric sense of each operation involved in the solution. Note that the sequence of construction steps allows to compactly represent a possibly exponential number of solution instances. However, the constructive approach cannot solve problems with symbolic constraints or external variables. Depending on the technique used to analyze the problem, two different categories of constructive approaches can be distinguished: top-down and bottom-up. The top-down technique recursively splits the problem until it has isolated simpler, basic problems whose solutions are known. In this category, Todd, [82], defines the r-tree concept and derives a geometric constraint solving algorithm. Owen, [70], describes a more general method based on the recursive decomposition of the constraints graph into triconnected components. Inspired by Owen’s work, Fudos reported a new decomposition method in [20, 22]. Efficient algorithms with a running time O(n2 ), where n is the number of geometric elements, are known for the methods of Owen, [70], and Fudos, [20, 22]. In the bottom-up approach, the solution is built by suitably combining recursively solutions to subproblems already computed, starting from the constraints in the given set, considering each constraint as a single element. Constraints may be represented implicitly as a collection of sets of geometric elements where the elements of each set are placed with respect to a local framework. Sets are merged; e.g., by application of rewriting rules until all the geometric elements are included in just one set. The advantage of this representation is that the sets of constraints capture the relationships between geometric elements compactly. Fudos et al., in the method described in [6, 20, 21, 22], use one type of sets of constraints, called cluster, and one generic rule that merges three clusters which pairwise share two elements. Lee et al., [61], describe a constructive method that associates with each vertex in the graph a status which can be defined, half defined or not defined. 9 Inference rules are used to modify the status of the vertices. Efficient algorithms with a running time O(n2 ), where n is the number of geometric elements, are known for the methods listed above. However, the constructive approach is not complete, therefore assessing the competence of solvers in this category is an important issue. Verroust, [84, 85], partially characterizes the set of relevant problems solved by the solver described. Joan-Arinyo et al., [46, 47], describe a formalization that unifies the methods reported by Fudos, [21, 22], and Owen, [70]. In [46, 48], Joan-Arinyo et al. show that the sets of problems solved by Fudos’ and Owen’s approaches are the same. In [32] Hoffmann and Joan-Arinyo describe a technique that extends constructive methods with the capability of managing functional relationships between geometric and externals variables. Essentially, the technique combines two methods: one is a constructive constraint solving method, and the other is a systems of equations analysis method. Joan-Arinyo and SotoRiera, [45], further improved the technique and formalized it as a rewriting system. Constructive methods work well in 2-space. Several attempts to extend them to 3-space have been reported. See, for example, Brüderlin [7], Verroust [84], and Hoffmann and Vermeer [37, 38]. 4.1.2 Degrees of Freedom Analysis Degrees of Freedom Analysis assigns degrees of freedom to the geometric elements by labeling the vertices of the graph of the problem. Each edge of the graph is labeled with the number of degrees of freedom canceled by the associated constraint. Then the method solves the problem by analyzing the resulting labeled graph. Kramer, [54, 55, 56], developed a method to solve specific problems from the kinematics of mechanisms. The method applies techniques borrowed from the process planning field to yield a symbolic solution. Since the set of rules used to generate the plan preserves geometric sense, the entire method also preserves it. Kramer, [54], proves that his method is correct by showing that the set of rules together with the labeled graph is a canonical rewriting system. The method runs in time O(nm), where n is the number of geometric elements and m the number of constraints in the problem. Since m is typically O(n), the method has the same complexity as the constructive ap- 10 proach. Bhansali et al., [3], describe a method that generates automatically segments of the symbolic solution in Kramer’s approach. Salomons et al., [72], represent objects and constraints as a graph and apply geometric and equational reasoning following the lines given by Kramer’s method. In [39, 40], Hsu reports a method with two phases. First, a symbolic solution is generated. Then, the actual construction is carried out. The method applies geometric reasoning and, if this fails, numerical computation. Latham et al., [60], decompose the labeled graph in minimal connected components called balanced sets. If a balanced set corresponds to one of the predefined specific geometric constructions, then it can be solved. Otherwise the underlying equations are solved numerically. The method also deals with symbolic constraints and identifies over- and under constrained problems. Assigning priorities to the constraints allows them to solve over constrained problems. A proof of correctness is also given. Hoffmann et al., [33, 34, 35, 36], have developed a flow-based method for decomposing graphs of geometric constraint problems. The method generically iterates to obtain a decomposition of the underlying algebraic system into small subsystems called minimal dense subgraphs. The method fully generalizes degree-of-freedom calculations, the approaches based on matching specific subgraphs patterns, as well as the prior flow-based approaches. However, the decomposition rendered does not necessarily have geometric sense since minimal dense subgraphs can be of arbitrary complexity far exceeding problems that yield to classical geometric construction. 4.1.3 Propagation Approach Propagation methods represent the set of algebraic equations with a symmetric graph whose vertices are variables and equations and whose edges are labeled with the occurrences of the variables in the equations. Propagation methods try to orient the edges in the graph in such a way that each equation vertex is a sink for all the edges incident on it except one. If the process succeeds, then there is a general incremental solution. That is, the system of equation can be transformed into a triangular system and solved using back substitution. Among the techniques to orient a graph we find in the literature degrees of freedom propagation and propagation of known values, [19, 73, 83]. Prop11 agation methods do not guarantee finding a solution whenever one exists. They fail when the orientation algorithm finds a loop. Propagation methods can combined with numerical methods for equation solving to ameliorate circularity, [5, 57, 77, 81]. Veltkamp and Arbab, [83], apply other techniques to break loops created while orienting the graph. Leler, [62], describes propagation methods in depth and proposes augmented rewriting terms, a tool which consists of a classical rewriting system along with an association of atomic-value and object-type. This tool has had success in solving certain systems of nonlinear equations. In [4], Borning et al., describe an local propagation algorithm that can deal with inequalities. 4.2 Logic-Based Approach In the logic-based approach, the problem is translated into a set of assertions and axioms characterizing the constraints and the geometric objects. By employing reasoning steps, the assertions are transformed in ways that expose solution steps in a stereotypical way and special solvers then compute coordinate assignments. Aldefeld, [1], Brüderlin, [8, 9, 10], Sohrt, [75, 76], Sohrt, et al.[75, 76], and Yamaguchi et al., [90], use first order logic to derive geometric information applying a set of axioms from Hilbert’s geometry. Essentially these methods yield geometric loci at which the elements must be. Sunde, [80], and Verroust, [84, 85], consider two different types of sets of constraints: sets of points placed with respect to a local framework, and sets of straight line segments whose directions are fixed with respect to a local framework. The reasoning is basically performed by means of a rewriting system on the sets of constraints. The problem is solved when all the geometric elements belong to a unique set. Joan-Arinyo and Soto-Riera, [43, 44], extended these sets of constraints with a third type consisting of sets containing one point and one straight line such that the perpendicular point-line distance is fixed. 4.3 Algebraic Methods In the algebraic approach, the constraint problem is translated directly into a set of nonlinear equations and is solved using any of the available methods 12 for solving nonlinear equations. The main advantages of algebraic solvers are their generality, dimension independence and the ability to deal with symbolic constraints naturally. In principle, an algebraic solver can be fully competent. However, algebraic solvers may have low efficiency or may have difficulty constructing solutions reliably. When used to pre-process and study specific constraint systems, however, algebraic techniques can be extremely useful and very practical. As a result of mapping the geometric domain problem into an equational one, the geometric sense of the solutions rendered is lost. Moreover, well constrained problems are mapped to under constrained systems of equations because constraints fix the placement for each geometric element with respect each other only modulo translation and rotation. Therefore a set of additional equations must be joined to cancel these remaining degrees of freedom. Algebraic methods can be further classified according to the specific technique used to solve the system of equations, namely into numerical, symbolic, and analysis of systems of equations. 4.3.1 Numerical Methods Numerical methods provide powerful tools to solve iteratively large systems of equations. In general, a good approximation of the intended solution should be supplied to guarantee convergence. This means that if, as it is customary, the starting point is taken from the sketch defined by the user, then the sketch should be close to the intended solution. The numerical methods may offer little control over the solution in which the user is interested. To achieve robustness, numerical iterative methods must be carefully designed and implemented. Borning, [5], Hillary and Braid, [28], and Sutherland, [81] use a relaxation method. This method is an alternative to the propagation method. Basically, the method perturbs the values assigned to the variables and minimizes some measure of the global error. In general, convergence to a solution is slow. The method most widely used is the well-known Newton-Raphson, [49] iteration. It is used in the solvers described in [27, 63, 64, 69]. NewtonRaphson is a local method and converges much faster than relaxation. The 13 method does not apply to consistently over constrained systems of equations unless special provisions are made such as combining it with least-squares techniques. Homotopy or continuation, [2], is a family of methods with a growing popularity. These methods are global and guarantee convergence. Moreover, they are exhaustive and allow to determine all solutions of a constraint problem. However, their efficiency is worse than that of Newton-Raphson. Lamure and Michelucci, [59], and Durand, [18], apply this method to geometric constraint solving. Other, less conventional methods have also been proposed. For example, in [25], Hel-Or et al., introduced the relaxed parametric design method where the constraints are soft, that is, they do not have to be met exactly, the problem is modeled as a static stochastic process, and the resulting system of probabilistic equations is solved using the Kalman filter familiar from control theory. The Kalman filter was developed to efficiently compute linear estimators and when applied to nonlinear systems, it does not necessarily finds a solution even if one exists. Kin et al., [50], reported on a numerical method based on extended Boltzmann machines which are a sort of neural network whose goal is to minimize a given polynomial that measures the energy of the system. 4.3.2 Symbolic Methods Symbolic algebraic methods compute a Gröbner basis for the given system of equations. Algorithms to compute these bases include those by Buchberger [12], and by Wu-Ritt [14, 89]. These methods, essentially, transform the system of polynomial equations into a triangular system whose solutions are those of the given system. In effect, triangularization reduces solving a simultaneous, nonlinear system to univariate root finding. Forward or a backward substitution must be used. Buchanan et al., [11], describe a solver built on top of the Buchberger’s algorithm. In [51], Kondo reports a symbolic algebraic method. In [52], Kondo improves that work by generating a polynomial that summarizes the changes undergone by the system of equations. 14 4.3.3 Analysis of Systems of Equations Methods based on the analysis of systems of equations determine whether a system is under-, well- or over-constrained from the system structure. These methods can be extended to decompose systems of equations into a set of minimal graphs which can be solved independently, [68, 79]. They can be used as a pre-processing phase for any other method, reducing the number of variables and equations that must be solved simultaneously. Serrano, [74], applies analysis of systems of equations to select from a set of candidate constraints a well constrained, solvable subsets of equations. 4.4 Theorem Proving Solving a geometric constraint problem can be seen as automatically proving a geometric theorem. However, automatic geometric theorem proving requires more general techniques and, therefore, methods which are much more complex than those required by geometric constraint solving. Wu Wen Tsün pioneered the Wu-Ritt method, an algebraic-based geometric constraint solving method. In [88, 89], he uses it to prove geometric theorems. The method automatically finds necessary conditions to obtain non-degenerated solutions. In [14], Chou applies Wu’s method to prove novel geometric theorems. Chou et al., in [15, 16], report on a work in automatic geometric theorem proving which allows to interpret, from a geometric point of view, the proof generated by computation. 5 The Constraint Graph As has been said in Section 4, in the graph-based approach, solvers initially translate the problem into a graph which is then analyzed. Next we detail the graph structure and the role it plays. 5.1 The graph In the constraint graph, the vertex set corresponds to the geometric elements of the problem. Each vertex is attributed with a weight that is its degree of 15 freedom, normally the number of independent coordinates needed to situate the geometric element represented. In the case of points and unconstrained lines in the plane this would be 2, in the case of circles (with no prescribed radius) it would be 3. If a line is constrained to be horizontal (or vertical), the weight would be 1. The geometric constraints are represented by graph edges. They include dimensional constraints (angle, distance, etc.), and logical constraints (incidence, concentricity, etc.). It is customary that the sketcher infers incidence (and sometimes additional) constraints. They are also represented in the graph. Furthermore, certain transformations may be applied that change the constraint problem internally. For example, a circle with prescribed radius may be replaced with its center point after suitably changing constraints on the circle to equivalent constraints on the center of the circle. Edges are annotated by the number of degrees of freedom they remove, usually the number of independent equations. For instance, a distance constraint between two points would remove 1 degree of freedom, but an incidence constraint between two points would remove 2. A global analysis of whether a problem is well-constrained can be done by summing the vertex weights and subtracting the sum of the edge weights. See Laman [58]. The resulting number has been called the deficiency of the problem. For coordinate-free problems (i.e., problems where the solution is not in fixed position with respect to a global coordinate system), a well constrained 2D problem should result in a deficiency of 3; e.g., [20]. When the problem is to be situated with respect to a fixed coordinate system, then a deficiency of zero would be required. An induced subgraph can be solved if it corresponds to a well-constrained subproblem. Finding a minimal subgraph gives us a minimally complicated problem to solve. We call such a problem a cluster core. Once a subproblem has been solved, we may enlarge the subproblem sequentially by geometric elements: If the element has weight k and is constrained with respect to geometric elements in the subproblem where the edge weights sum to k, then we may add the new element as a sequential extension of the cluster. By analyzing the constraint graph in this way, it can be decomposed into a set of clusters that can be solved separately. Several clusters can be combined when they overlap pairwise in a single geometric element. Here, we infer constraints between the shared elements, from the solved subproblems. The shared elements can be placed with respect to each other and form a skeleton on which to place the solved clusters. In 2-space solvers employing 16 triangle decomposition, so combining three clusters is a natural step; [6, 20]. Clusters can also be sometimes added individually in analogy to a sequential extension. Triangle decomposition employs only 2-element cluster cores and merges three clusters that pairwise share a geometric element. Such 2D solvers are very attractive because they are reasonably competent in CAD applications and are conceptually very simple. They also require no more than solving univariate quadratic equations. The theory of such solvers is fairly well understood with respect to intensionality; [21]. If the entire constraint graph is recursively decomposable into a single cluster, then the planning phase succeeds and a solution of the constraint problem is possible in principle. If the decomposition fails, then the solver will announce that no solution can be found. This means that there is no solution based on triangle decomposition, but it does not mean that there is no solution. Here we see the difference between a particular strategy and a fully general constraint solver. There is a known algorithm that will succeed in polynomial time decomposing any graph that corresponds to a solvable constraint problem, but it is more complex and the subsequent solver phase also is more demanding, because there cannot be an a-priori restriction on the size of minimal cluster cores; [33, 34]. 5.2 Order of Decomposition Typically the graph can be decomposed in several ways, raising the question whether a canonical decomposition order is required to find a solution if one exists. There are theorems which prove that if a constraint graph can be decomposed in one way, using triangle decomposition, then every sequence of triangle decompositions fully decomposes the constraint graph. The proof is based on the Church-Rosser property of graph reduction by fusing solvable subgraphs into single nodes; [21]. These theorems can be generalized, and the order of decomposition is not critical for determining solvability, [36, 35, 36]. 6 Solver Phase When the constraint graph has been analyzed and a solution plan formulated successfully, a second phase assigns coordinates and solves equations to do 17 so. The basic step here is to place a pair of constrained geometric elements into a standard position and then to add sequentially to this cluster core. Six basic cases can be distinguished when the universe of geometric elements is restricted to points and lines (and, by extension, to fixed-radius circles). One of these cases is indeterminate. The others may have up to four solutions. Based on heuristics, the solver selects one of these. Typically the selected solution has the same order type as the input sketch based on the hypothesis that the sketch captures the intent of the user. The input sketch data is communicated by giving the initial coordinates of each element as sketched by the user. This strategy of selecting the order type can fail when the user varies dimensional values. It may be that under different dimensional parameters a different order type is needed, and that the previous sketch no longer is a good guide of design intent. When merging three clusters, the solution can be reduced to the cluster core/sequential extension procedure by considering one cluster (A) the core and deriving, from the other two clusters (B) and (C), a measured constraint between the shared elements in (A) and the (third) element shared between (B) and (C). In this way placing the third element with respect to (A) is simply a sequential extension. Once placed, rigid transformations are computed that place all other elements of (B) and of (C) with respect to the cluster (A). If the graph analysis determines that the problem is solvable in principle, based on a successful graph decomposition, must the solver phase necessarily find a solution? The answer to that is clearly no. Consider stipulating the lengths of the three sides of a triangle to be, respectively, 1, 1, and 3. Since the triangle inequality is violated, there cannot be a solution, even though generically there could exist one, for different side lengths. 7 Root Selection Even sequential constraint problems have several solutions. Which one of the (perhaps exponentially) many solutions to select is the root-selection or chirality problem. The selection is usually made on basis of the user sketch, preserving where possible the order type of the solution. It is noteworthy that the strategy is invariant under decomposition order, in the case of triangle decomposition. It can be shown that the same triples are queried for order type when so constructing a solution, and that congruent solutions will be determined no matter what order of decomposition is followed [20, 21]. 18 On initial design it is reasonable to expect that the input sketch and the solution the user wants are of the same order type. However, as we suggested before, this is not necessarily the case when exploring variations of a sketch obtained by varying dimensional parameters and examples of this phenomenon are easy to construct. A systematic exploration of the solutions is possible using a tree in which each interior node represents a constructed solution and the descending children are obtained from the different roots of the system of equations solved at that point, [6]. This approach is not particularly user-friendly, but it is fully general. Automated techniques are not of promising generality. For example, consider stipulating that the constraint solution be a non self-intersecting polygon. We can show that this requirement leads to NP-hard steps in the solver, [20]. Other approaches that are based on user-interaction include dragging a single geometric element into a different position followed by a renewed run of the solver phase. This is the approach used by DCM, a commercial constraint solver. The effect is that some of the triples involving the dragged elements now have a different order type, so that a different solution would be found. This can confuse the user when several triples should be of different order type since the intermediate stages are not necessarily intuitive or suggestive of progress, or even constructible. Another variation, also requiring user interaction, is to present to the user each solution step visually with each alternative shown so that a selection can be made. This is in effect the tree exploration (on demand) with a graphical method of asking for the intended branch. Clearly, all such root selection modifications should be done on demand only, and they will require user sophistication and a conceptual understanding of the root selection problem. 8 Variable-Radius Circle When circular elements are used without a definite radius, we must extend the graph analysis to working with vertices of weight 3. These circles have been called variable-radius. One of the uses of variable-radius circles is to construct geometrically constraint definitions of the kind where two lengths should be equal. More complex polynomial relationships can also be constructed geometrically. Including variable-radius circles impacts both the basic construction 19 steps as well as cluster merging. The sequential construction steps are fairly simple and involve, on the solver side, classical geometry of conic sections; [71]. Cluster merging entails, as additional construction step, merging three clusters where one cluster is simply a variable-radius circle. The corresponding solver steps can be complicated. The arising algebraic equations can be simplified by spatial geometric constructions, in particular by cyclographic or Laguerre maps, [30, 31, 13] Typically, commercial solvers implement these constructions numerically, if at all. The geometry of solving variable-radius problems using Laguerre maps can be very elegant and leads in general to simpler algebraic systems because it is capable of differentiating among the possible solutions different orientations, thereby in effect factoring the system. It is not obvious whether an abstract algebraic equivalent can be formulated that factors the equations directly. Several papers have been published that address variable-radius circle configurations and enumerate the possible configurations. 9 SolBCN. A Constructive Logic-Based Solver To illustrate some of the concepts described so far, we briefly describe the main features of the constructive, logic-based solver SolBCN, [78]. The solver handles two-dimensional geometric configurations composed of points, segments, and fixed-radius arcs and circles. The constraints that can be defined on those objects include distance between two points, perpendicular distance between a point and a segment, angle between two segments, incidence, perpendicularity, parallelism, tangency and concentricity. The solver is variational, i.e., the solver processes the constraints without the need of arranging them in a predefined order. Furthermore, the solver can deal with problems with circular constraints. The basic method for solving geometric constraints is a constructive approach and exhibits properties of both rule- and graph-constructive approaches, Bouma et al., [6]. In a first phase, the solver uses rewrite rules to build a sequence of construction steps which, in a second phase, are carried out to generate a solution by placing the geometric objects according to the dimension values and constraints. We explain how the data is represented and which rules are available. 20 9.1 Data Representation All constraints mentioned can be represented by means of distance between two points, distance between a point and a straight line segment and angle between two straight line segments. We use a notation derived from Verroust, [85]. The distance constraints between points are represented by a CD set, the point-segment distance constraints are represented by a CH set, and the angle constraints between two segments are represented by a CA set. We define these sets more formally as follows. A CD set is a set of points with mutually constrained distances. A frame of reference is attached to each CD set and the points in the set are placed with respect to this frame. When a CD set contains just two points, we will refer to it as an elementary CD set. It is worth noting that a sketch is solved when all the points in the sketch belong to the same CD set. A CH set is a point and a segment constrained by the perpendicular distance from the point to the segment. A CA set is a pair of oriented segments which are mutually constrained by angle. In what follows, we will refer generically to the CD, CA and CH sets as constraint sets. 9.2 Rules We classify the rules into one of the following types: creation rules, merging rules or construction rules. Creation rules create elementary CD sets, CA sets and CH sets as an interpretation of the problem sketched by the user. The sign of the distances and angles are defined based on what the user has sketched. When a distance constraint between two points is given, a CD set is created. The position of the points in the associated frame of reference are (0, 0) and (d, 0). (Figure 5 left.) When an angle constraint between two directed segments is processed, a CA set is created where one of the straight segments defines the positive x axis. (Figure 5 middle.) Whenever a point, a segment and the perpendicular distance from the point to the segment are given, a CH set is created. (Figure 5 right). Merging rules include just one rule that computes the transitive closure of the angle constraint set. When a segment belongs to two different CA sets, ca1 and ca2 , a new CA set, ca3 , is created which constrains the angle of two segments, one in ca1 and the other in ca2 , both different from the 21 y p3 y p1 p (p3 , p2 ) α x h x (p4 , p1 ) p1 p2 Figure 5: From left to right: Creation of elementary CD, CA and CH sets. shared segment. See Figure 6. Construction rules merge CD sets, CH sets, and CA sets into larger CD sets. Merging is performed by building triangles and a few quadrilaterals. A complete description reported by Joan-Arinyo et al. can be found in [42]. 9.3 Implementation Figure 7 shows the architecture of SolBCN, [47]. The geometric constraint solving problem is split into three main components: analyzer, index selector and constructor. The analyzer symbolically determines whether the problem is or is not solvable. If it is solvable, the analyzer generates a sequence of construction steps. The selector solves the root selection problem by choosing a specific solution instance; see also Section 7. The selection techniques implemented are user-sketch-based, and genetic algorithms. See Luzón [65] and JoanArinyo et al., [41]. The constructor carries out the actual construction of the geometric object by applying the sequence of construction steps generated by the solver with the actual parameter values. There are several reasons for this architecture. First, the nature of the computations in each step is quite different. The analyzer requires symbolic computation while the constructor only performs numerical computations. Second, determining whether the problem can be symbolically solved or not is performed in the analysis step and it does not depend on the actual parameter values nor on the geometric computations. Next, when computing solutions of different parameter values using this decoupling, only the sec22 y ca1 γ b a c ca2 α y y ca3 δ a γ β x x b Figure 6: Merging two CA sets. Abstract problem ANALYZER SELECTOR Abstract plan Index Assignment Parameter assigment CONSTRUCT Geometry assignment Figure 7: SolBCN architecture. 23 c δ − (β − α) x ond step needs to be recomputed. The analysis step, computationally the most expensive part, can be skipped. Finally, given a symbolically solvable problem and a set of actual values for the parameters, the solution can be instantiated if there are no quantitative inconsistencies in the parameter values. The inconsistencies are detected while carrying out the geometric computations. The analyzer is an expert system programmed in Prolog. Prolog was chosen because of its support for the symbolic computation in the analysis phase and because it is a rapid prototyping language. The constructor is a virtual machine that just executes the sequence of construction steps generated by the analyzer. 10 Spatial Constraint Solving In 2D sketching applications, a major application area of constraint solving, graph-based solvers have become dominant. The underlying reason is that for the constructs common in 2D sketching a small set of subgraphs suffices, and that the associated algebraic solution problems are rather simple. In constrast, spatial constraint solving does not appear to have a simple and small core that suffices for most practical applications. When approached using graph decomposition, the problem of spatial constraint solving is that simple subgraphs of, even up to 6 vertices, are numerous and many of them correspond to associated algebraic problems that are rather difficult. Note that a subgraph with 6 vertices is the smallest simultaneous spatial constraint problem involving only points and planes. There is also the problem that no consensus has arisen of the characteristic spatial constraint problems of relevance to, say, CAD, so that there is little guidance on how to select a subset from the subgraph patterns to arrive at a compact solver that is widely applicable. In this section we review some of these issues in the context of a graph decomposition solver architecture. We begin with the problem of solving the equations associated with a selection of spatial constraint problems. 10.1 Sequential Construction Problems The simplest 3-space constraint problems require placing a single geometric element (point, plane or line) with respect to a set of geometric elements 24 whose position and orientation are known. We call such problems sequential, since the elements are placed one-by-one sequentially. Many, but not all, sequential problems are easy to solve. For example, placing a point with respect to three known points requires the intersection of three spheres. Elementary algebraic manipulation reduces this task to solving a univariate quadratic equation. On the other hand, a difficult sequential problem is placing a line such that it is at prescribed distance from four known points in 3-space. Geometrically, this is equivalent to finding common tangents to four given spheres. A lower bound on the number of tangents to four spheres was established by Macdonald et al., [66], who exhibited four unit spheres that have 12 distinct, common tangents. That this bound is sharp was proved by Hoffmann and Yuan in [29] by deriving a nonlinear system of equations whose solutions give all common tangents. It was shown that the geometric degree of the system is 12, thus establishing the missing upper bound. Note that solving this system is not trivial. 10.2 Algebraic and Geometric Solutions In the algebraic approach to solving specific constraint problems, one formulates a system of algebraic equations. The system is then simplified using algebraic manipulation and geometric reasoning, and if the resulting system is simple enough, its solutions can be computed with high reliability and accuracy. For spatial constraint problems, it is not necessarily easy to find such simple systems, and so computing solutions may require sophisticated algorithms, e.g., [18]. As we have seen, sequential problems may already require solving algebraic systems of degree 12. A geometric aspproach to finding the solutions of a nonlinear equation system is the locus method, [23]. Instead of relying only on root finding techniques, a geometric idea is introduced: Drop one constraint from the problem, say a dimensional constraint c, resulting in an underconstrained problem. Evaluate the underconstrained configuration and measure the actual value of the dimension. Different configurations lead to different values, resulting in a curve that can be traced. This curve is the locus of c. Intersect the locus of c with the nominal constraint value, usually a straight line. The resulting intersection configurations 25 Figure 8: Octahedral graph. are solutions to the original system. The method can be extended to computing the locus of more than one cut constraint, resulting in geometric manifolds of higher dimensions. Cutting two constraints we would obtain a surface that would be intersected with two planes, cutting three constraints a spatial manifold is obtained, and so on. We will illustrate the idea for octahedral problems. 10.3 Octahedral Problems Consider a constraint graph with six vertices and with edges arranged as shown in Figure 8. We call such a graph octahedral on account of the fact that the topology is that of the vertices and edges of a regular octahedron. The vertices represent points or planes in 3-space, and the edges therefore a distance between two points, a distance between a point and a plane, and/or an angle between two planes. There are seven major configurations according to the number of planes in the problem. Two of them, namely configurations with 5 or 6 planes, are structurally under determined. The other five configurations can be solved algebraically; [37]. An elegant approach to formulating the equation system is due to Michelucci, [67]1 who employs the Cayley-Menger determinant as follows. 1 The URL is no longer valid. 26 Figure 9: Octahedral graph. In red, dependent distances. The determinant expresses the ¯ ¯ 0 1 1 ¯ ¯ 1 0 d 12 ¯ ¯ ¯ 1 d12 0 ¯ ¯ 1 d 13 d23 ¯ ¯ ¯ 1 d14 d24 ¯ ¯ 1 d 15 d25 distances between the five points: ¯ 1 1 1 ¯ ¯ d13 d14 d15 ¯¯ ¯ d23 d24 d25 ¯ ¯=0 0 d34 d35 ¯¯ ¯ d34 0 d45 ¯¯ d35 d45 0 ¯ where the dik = kpi − pk k2 is the squared distance between the points pi and pk . Choosing two sets of five points in the configuration, we can express the squared distances indicated in red in Figure 9 as function of the given distances. This results in two bivariate equations of degree 4 each in the two unknown distances, indicating at most 16 distinct solutions. That the bound of 16 solutions is sharp was shown earlier by Hoffmann and Vermeer in [37]. Suitable extensions of the Cayley-Menger determinant can be used for the remaining cases comprising both points and planes. A solution of the two quartic equations can be obtained by the locus method, for example. Each quartic equation taken separately yields a plane curve. Tracing these curves can then give initial values for an iterative numerical method that isolates the up to 16 roots of the system. The locus method can also be used to plot directly the value of a cut constraint, and we explain the approach assuming only points in the configuration. Consider Figure 10. Select the three blue vertices and cut the red constraint. The three blue vertices can be positioned using the blue 27 B G G B B G Figure 10: Octahedral problem. The locus method. constraints only, in the xy-plane for example. Each of the green vertices, together with the adjacent blue vertices, can be thought of as a rigid triangle that pivots about a blue edge, and so the green vertices move each on a circle whose plane is perpendicular to the xy-plane. Select one green vertex and parameterize its position on the circle on which it moves, say by θ. For a given θ value, we can now compute the position of the remaining two green vertices using the black constraints, intersecting a circle and a sphere. Once these vertices have been placed, we can compute the distance d between the two vertices adjacent to the cut, red constraint, so plotting a curve in the θd-plane. Intersecting the curve with the line d = d0 , where d0 is the distance stipulated by the red constraint, we obtain all solutions to the original problem. 10.4 Line Configurations In the discussion of sequential problems before, we have seen that sequential line problems in 3-space may yield algebraic equation systems of considerable complexity. In addition, there is a large number of individual problems involving only a small number of geometric elements. We illustrate the combinatorial explosion of cases involving constraint graphs with 6 or fewer vertices representing points, lines and planes. Note that between two planes, between to points, and between a point and a plane we can have at most one constraint, namely of angle, of distance, and of distance, respectively. Hoffmann and Vermeer show in [37] that the 28 G G B B Figure 11: The four lines problem. octahedron problem is the simplest, nonsequential problem involving only points and planes. As shown in that paper, there are exactly seven distinct major2 configurations, two of them underconstrained. We can have at most a single constraint between a point and a line (distance), and a single constraint between a plane and a line (angle). However, between two lines we can have up to two constraints (distance and angle). As Gao et al. show in [23], there are two distinct nonsequential constraint problems with four lines, shown in Figure 11. The blue lines represent two constraints, of angle and distance, and the black line represents a distance constraint. The two configurations differ in the red constraint a distance constraint in one and an angle constraint in the other configuration. in [23], Gao et al. also establish that there are 17 distinct configurations with 5 geometric elements, including lines, but more than 680 configurations with 6 geometric elements. These numbers show that a solver, based on decomposing a spatial constraint problem into a (recursive) set of small subproblems must have a very large repertoire of subproblem patterns, even when allowing only up to six geometric elements. Moreover, the algebraic structure of the many configurations involving lines remain unexplored. 2 Some of the major configurations have several sub configurations. For instance, in a problem with two planes, the planes could have an angle constraint between them, or no constraint them, leading to two sub configurations for this case. 29 Acknowledgements We wish to acknowledge our collaborators over the years, especially William Bouma, Jiazen Cai, Xiangping Chen, Ching-Shoei Chiang, Cassiano Durand, Ioannis Fudos, Xiaoshan Gao, Ku-Jin Kim, Ramanathan Kavasseri, Andrew Lomosov, Robert Paige, Meera Sitharam, Antoni Soto, Pamela Vermeer, Sebastià Vila, Weiqiang Yang, and Bo Yuan. Much of the material reviewed has been to their credit. R. Joan-Arinyo has been supported by The Ministerio de Educación y Ciencia and by FEDER under grant TIN2004-06326-C03-01. Hoffmann’s work has been supported in part by NSF grants DMS-013098, DCNS-0216131, DHER-0227828, DSC-0325227, DCMS-0443148, and by an IBM faculty scholar award. References [1] B. Aldefeld. Variation of geometric based on a geometric-reasoning method. Computer-Aided Design, 20(3):117–126, April 1988. [2] Eugene L. Allgower and Kurt Georg. Continuation and path following. Acta Numerica, 7:1–64, 1993. [3] S. Bhansali, G.A. Kramer, and T.J. Hoar. A principled approach towards symbolic geometric constraint satisfaction. Journal of Artificial Intelligence Research, 4:419–443, 1996. [4] A. Borning, R. Anderson, and B. Freeman-Benson. Indigo: A local propagation algorithm for inequality constraints. In UIST’96, pages 129–136, Seattle, Washington, USA, November 6-8 1996. ACM. [5] A.H. Borning. The programming language aspects of ThingLab, a constrained oriented simulation laboratory. ACM Trans. on Prog. Lang. and Systems, 3(4):353–387, October 1981. [6] W. Bouma, I. Fudos, C. Hoffmann, J. Cai, and R. Paige. Geometric constraint solver. Computer Aided Design, 27(6):487–501, June 1995. [7] B.D. Brüderlin. Constructing three-dimensional geometric objects defined by constraints. In Workshop on Interactive 3D Graphics, pages 111–129. ACM, October 23–24 1986. 30 [8] B.D. Brüderlin. Rule-Based Geometric Modelling. PhD thesis, Institut für Informatik der ETH Zürich, 1988. [9] B.D. Brüderlin. Symbolic computer geometry for computer aided geometric design. In Advances in Design and Manufacturing Systems, Tempe, AZ, Jan. 8-12 1990. Proceedings NSF Conference. [10] B.D. Brüderlin. Using geometric rewrite rules for solving geometric problems symbolically. In Theoretical Computer Science 116, pages 291–303. Elsevier Science Publishers B.V., 1993. [11] S.A. Buchanan and A. de Penington. Constraint definition system: a computer-algebra based approach to solving geometric-constraint problems. Computer-Aided Design, 25(12):741–750, December 1993. [12] B. Buchberger. Multidimensional Systems Theory, chapter Gröbner Bases: An Algorithmic Method in Polynomial Ideal Theory, pages 184– 232. D. Reidel Publishing Theory, 1985. [13] C.-S. Chiang and R. Joan-Arinyo. Revisiting variable-radius circles in constructive geometric constraint solving. Comp. Aided Geom. Design, 221:371–399, 2004. [14] S.-C. Chou. An introduction to Wu’s method for mechanical theorem proving in geometry. Journal of Automated Reasoning, 4:237–267, 1988. [15] S.-C. Chou, X.-S. Gao, and J.-Z. Zhang. Automated generation of readable proofs with geometric invariants: Multiple and shortest proof generation. Journal of Automated Reasoning, 7:325–347, 1996. [16] S.-C. Chou, X.-S. Gao, and J.-Z. Zhang. Automated generation of readable proofs with geometric invariants: Theorem proving with full angles. Journal of Automated Reasoning, 7:349–370, 1996. [17] H.M. Cundy and A.P. Rollet. Mathematical Models. Oxford University Press, 1961. Second edition. [18] C. Durand. Symbolic and Numerical Techniques for Constraint Solving. PhD thesis, Computer Science, Purdue University, December 1998. [19] B. Freeman-Benson, J. Maloney, and A. Borning. An incremental constraint solver. Communications of the ACM, 33(1):54–63, 1990. [20] I. Fudos. Constraint Solving for Computer Aided Design. PhD thesis, Purdue University, Department of Computer Sciences, 1995. 31 [21] I. Fudos and C.M. Hoffmann. Correctness proof of a geometric constraint solver. International Journal of Computational Geometry and Applications, 6(4):405–420, 1996. [22] I. Fudos and C.M. Hoffmann. A graph-constructive approach to solving systems of geometric constraints. ACM Transactions on Graphics, 16(2):179–216, April 1997. [23] X.-S. Gao, C. Hoffmann, and W.-Q. Yang. Solving spatial basic geometric constraint configurations with locus intersection. In Solid Modeling SM’02, Saarbrücken, Germany, 2002. [24] J. Graver, B. Servatius, and H. Servatius. Combinatorial Rigidity. American Mathematical Society, 1993. [25] Y. Hel-Or, A. Rapoport, and M.Werman. Relaxed parametric design with probabilistic constraints. In J. Rossignac, J. Turner, and G. Allen, editors, Second Symposium on Solid Modeling and Applications, pages 261–270, Montreal, Canada, May 19-21 1993. ACM Press. [26] L. Henneberg. Graphische statik. In F. Klein and C. Müller, editors, Encyklopädie der Mathematischen Wissenschaften, pages Heft 3, Art. 5. B. G. Teubner, Leipzig, 1903. http://www-gdz.sub.uni-goettingen.de/cgibin/digbib.cgi? PPN360617042. [27] A. Heydon and G. Nelson. The Juno-2 constraint-based drawing editor. Research Report 131a, Digital Systems Research Center, December 1994. [28] R.C. Hillyard and I.C. Braid. Characterizing non-ideal shapes in terms of dimensions and tolerances. In ACM Computer Graphics, pages 234– 238, 1978. [29] C. Hoffmann and B. Yuan. There are 12 common tangents to four spheres. http://www.cs.purdue.edu /homes/cmh/distribution/ SphereTangents.htm, 2000. [30] C.M. Hoffmann and C.-S. Chiang. Variable-radius circles of cluster merging in geometric constraints. Part II: Rotational clusters. Computer Aided Design, 34:799–805, October 2002. [31] C.M. Hoffmann and C.-X. Chiang. Variable-radius circles of cluster merging in geometric constraints. Part I: Translational clusters. Computer Aided Design, 34:787–797, October 2002. 32 [32] C.M. Hoffmann and R. Joan-Arinyo. Symbolic constraints in constructive geometric constraint solving. Journal of Symbolic Computation, 23:287–300, 1997. [33] C.M. Hoffmann, A. Lomonosov, and M. Sitharam. Finding solvable subsets of constraint graphs. In Principles and Practice of Constraint Programming, pages 463–477, Schloss Hagenberg, Austria, October 29 - November 1 1977. [34] C.M. Hoffmann, A. Lomonosov, and M. Sitharam. Geometric constraint decomposition. In B. Brüderlin and D. Roller, editors, Geometric Constraint Solving and Applications, pages 171–195. Springer, Berlin, 1998. [35] C.M. Hoffmann, A. Lomonosov, and M. Sitharam. Decompostion Plans for Geometric Constraint Problems, Part II: New Algorithms. Journal of Symbolic Computation, 31:409–427, 2001. [36] C.M. Hoffmann, A. Lomonosov, and M. Sitharam. Decompostion Plans for Geometric Constraint Systems, Part I: Performance Measurements for CAD. Journal of Symbolic Computation, 31:367–408, 2001. [37] C.M. Hoffmann and P.J. Vermeer. Geometric constraint solving in R2 and R3 . In D.-Z. Du and F. Hwang, editors, Computing in Euclidean Geometry, pages 266–298. World Scientific Publishing, 1995. [38] C.M. Hoffmann and P.J. Vermeer. A spatial constraint problem. In J.P. Merlet and B. Ravani, editors, Computational Kinematics’95, pages 83– 92. Kluwer Academic Publ., 1995. [39] C.-Y. Hsu. Graph-Based Approach for Solving Geometric Constraint Problems. PhD thesis, Department of Computer Science. The University of Utah, June 1996. [40] C.-Y. Hsu and B.D. Brüderlin. A hybrid constraint solver using exact and iterative geometric constructions. In D. Roller and P. Brunet, editors, CAD Systems Development: Tools and Methods, pages 265– 279, Berlin, 1997. Springer-Verlag. [41] R. Joan-Arinyo, M.V. Luzón, and A. Soto. Genetic algorithms for root multiselection in constructive geometric constraint solving. Computer & Graphics, 27(1):51–60, 2003. 33 [42] R. Joan-Arinyo and A. Soto. A set of rules for a constructive geometric constraint solver. Technical Report LSI-95-19-R, Department LiSI, Universitat Politècnica de Catalunya, 1995. [43] R. Joan-Arinyo and A. Soto. A correct rule-based geometric constraint solver. Computer & Graphics, 21(5):599–609, 1997. [44] R. Joan-Arinyo and A. Soto. A ruler-and-compass geometric constraint solver. In M.J. Pratt, R.D. Sriram, and M.J. Wozny, editors, Product Modeling for Computer Integrated Design and Manufacture, pages 384 – 393. Chapman and Hall, London, 1997. [45] R. Joan-Arinyo and A. Soto-Riera. Combining constructive and equational geometric constraint solving techniques. ACM Transactions on Graphics, 18(1):35–55, January 1999. [46] R. Joan-Arinyo, A. Soto-Riera, S. Vila-Marta, and J. Vilaplana. On the domain of constructive geometric constraint solving techniques. In R. Duricovic and S. Czanner, editors, Spring Conference on Computer Graphics, pages 49–54, Budmerice, Slovakia, April 25-28 2001. IEEE Computer Society, Los Alamitos, CA. [47] R. Joan-Arinyo, A. Soto-Riera, S. Vila-Marta, and J. Vilaplana. Declarative characterization of a general architecture for constructive geometric constraint solvers. In D. Plemenos, editor, The Fifth International Conference on Computer Graphics and Artificial Intelligence, pages 63– 76, Limoges, France, 14-15 May 2002. Université de Limoges. [48] R. Joan-Arinyo, A. Soto-Riera, S. Vila-Marta, and J. Vilaplana. Revisiting decomposition analysis of geometric constraint graphs. In K. Lee and N. Patrikalaikis, editors, Seventh Symposium on Solid Modeling and Applications, pages 105–115, Saarbrücken, Germany, June 19-21 2002. ACM Press. [49] L. W. Johnson and R. D. Riess. Numerical analysis. Addison-Wesley, 1982. Second edition. [50] N. Kin, Y. Takai, and T.L. Kunii. A connectionist approach to geometrical constraint-solving. In B. Falcidieno and T. Kunii, editors, Modeling in Computer Graphics. Springer Verlag, 1993. [51] K. Kondo. PIGMOD : Parametric and interactive geometric modeller for mechanical design. Computer Aided Design, 22(10):633–644, December 1990. 34 [52] K. Kondo. Algebraic method for manipulation of dimensional relationships in geometric models. Computer Aided Design, 24(3):141–147, March 1992. [53] U. Kortenkamp. Foundations of Dynamic Geometry. PhD thesis, ETH Zürich, 1999. [54] G. Kramer. Solving Geometric Constraints Systems. MIT Press, 1992. [55] G.A. Kramer. Using degrees of freedom analysis to solve geometric constraint systems. In J. Rossignac and J. Turner, editors, Symposium on Solid Modeling Foundations and CAD/CAM Applications, pages 371– 378, Austin, TX, June 5-7 1991. ACM Press. [56] G.A. Kramer. A geometric constraint engine. Artificial Intelligence, 58(1-3):327–360, 1992. [57] G. Kwaiter, V. Gaildrat, and R. Caubet. Interactive constraint system for solid modeling objects. In C. Hoffmann and W. Bronsvoort, editors, Fourth Symposium on Solid Modeling and Applications, pages 265–270. ACM SIGGRAPH, May 1997. [58] G. Laman. On graphs and rigidity of plane skeletal structures. Journal of Engineering Mathematics, 4(4):331–340, October 1970. [59] H. Lamure and D. Michelucci. Solving geometric constraints by homotopy. In C. Hoffmann and J. Rossignac, editors, Third Symposium on Solid Modeling and Applications, pages 263–269, Salt Lake City, Utah USA, May 17-19 1995. ACM Press. [60] R.S. Latham and A.E. Middleditch. Connectivity analysis: a tool for processing geometric constraints. Computer Aided Design, 28(11):917– 928, November 1996. [61] J.Y. Lee and K. Kim. Geometric reasoning for knowledge-based parametric design using graph representations. Computer-Aided Design, 28(10):831–841, 1996. [62] W. Leler. Constraint Programming Languages: Their Specification and Generation. Addison Wesley, 1988. [63] R. Light and D. Gossard. Modification of geometric models through variational geometry. Computer Aided Design, 14:209–214, July 1982. 35 [64] V.C. Lin, D.C. Gossard, and R.A. Light. Variational geometry in computer-aided design. ACM Computer Graphics, 15(3):171–177, August 1981. [65] M.V. Luzón. Resolución de Restricciones Geométricas. Selección de la Solución Deseada. PhD thesis, Dept. Informática, Universidad de Vigo, December 2001. (Written in Spanish). [66] I. Macdonald, J. Pach, and T. Theobald. Common tangents to four unit balls. Discr. Comp. Geometry, 26:1–17, 2001. [67] D. Michelucci. Using Cayley-Menger determinants. http://www.emse.fr/˜micheluc/MENGER/. approx. from 2000; URL no longer valid. [68] K. Murota. Systems Analysis by Graphs and Matroids. Algorithms and Combinatorics 3. Springer-Verlag, 1987. [69] G. Nelson. Juno, a constraint-based graphics system. SIGGRAPH, pages 235–243, San Francisco, July 22–26 1985. [70] J.C. Owen. Algebraic solution for geometry from dimensional constraints. In R. Rossignac and J. Turner, editors, Symposium on Solid Modeling Foundations and CAD/CAM Applications, pages 397–407, Austin, TX, June 5-7 1991. ACM Press. [71] K. Ramanathan. Variable radius circle computations in geometric constraint solving. Master’s thesis, Department of Computer Science. Purdue University, 1996. [72] O.W. Salomons, F. van Slooten, F.J.A.M van Houten, and H.J.J. Kals. Conceptual graphs in constraint based re-design. In C. Hoffmann and J. Rossignac, editors, Third Symposium on Solid Modeling and Applications, pages 55–64, Salt Lake City, Utah USA, May 17-19 1995. ACM Press. [73] M. Sannella. The SkyBlue constraint solver. Technical Report 92-07-02, University of Washington, Dep of Computer Science and Engineering, 1993. [74] D. Serrano. Automatic dimensioning in design for manufacturing. In J. Rossignac and J. Turner, editors, Symposium on Solid Modeling Foundations and CAD/CAM Applications, pages 379–386, Austin, TX, June 5-7 1991. ACM Press. 36 [75] W. Sohrt. Interaction with constraints in three-dimensional modeling. Master’s thesis, Dept of Computer Science, The University of Utah, March 1991. [76] W. Sohrt and B.D. Brüderlin. Interaction with constraints in 3D modeling. International Journal of Computational Geometry & Applications, 1(4):405–425, 1991. [77] L. Solano and P. Brunet. Constructive constraint-based model for parametric CAD systems. Computer Aided Design, 26(8):614–621, August 1994. [78] A. Soto. Satisfacció de restriccions geomètriques en 2D. PhD thesis, Universitat Politècnica de Catalunya, Dept. Llenguatges i Sistemes Informàtics, 1998. (Written in Catalan). [79] N. Sridhar, R. Agrawal, and G.L. Kinzel. Algorithms for the structural diagnosis and decomposition of sparse, underconstrained design systems. Computer-Aided Design, 28(4):237–249, 1996. [80] G. Sunde. A CAD system with declarative specification of shape. Eurographics Workshop on Intelligent CAD Systems, pages 90–105, April 1987. [81] I. Sutherland. Sketchpad, a man-machine graphical communication system. In Proc. of the Spring Joint Comp. Conference, pages 329–345. IFIPS, 1963. [82] P. Todd. A k-tree generalization that characterizes consistency of dimensioned engineering drawings. SIAM J. Disc. Math, 2(2):255–261, 1989. [83] R.C. Veltkamp and F. Arbab. Geometric constraint propagation with quantum labels. In B. Falcidieno, I. Herman, and C. Pienovi, editors, Eurographics Workshop on Computer Graphics and Mathematics, pages 211–228. Springer, 1992. [84] A. Verroust. Etude de Problèmes Liés à la Définition, la Visualisation et l’Animation d’Objects Complexes en Informatique Graphique. PhD thesis, Universite de Paris-Sud, Centre d’Orsay, 1990. (Written in French). 37 [85] A. Verroust, F. Schonek, and D. Roller. Rule-oriented method for parameterized computer-aided design. Computer Aided Design, 24(10):531–540, October 1992. [86] W. Whiteley. Applications of the geometry of rigid structures. In Henry Crapo, editor, Computer Aided Geometric Reasoning, pages 219–254. INRIA, 1987. [87] W. Whiteley. Rigidity and scene analysis. In J.E. Goodman and J. O’Rourke, editors, Handbook for discrete and computational geometry, pages 893–916. CRC Press LLC, 1998. [88] W.-T. Wu. Basic principles of mechanical theorem proving in geometries. J. of Systems Sciences and Mathematical Sciences, 4:207–235, 1986. [89] W.-T. Wu. Mechanical theorem proving in geometries. In B. Buchberger and G. E. Collins, editors, Texts and monographs in symbolic computations. Springer-Verlag, 1994. [90] Y. Yamaguchi and F. Kimura. A constraint modeling system for variational geometry. In J.U. Turner M.J. Wozny and K. Preiss, editors, Geometric Modeling for Product Engineering, pages 221–233. Elsevier North Holland, 1990. 38