WO2015193894A1 - Method and system for determining a configuration of a model having a collection of entities and satisfying a set of constraints - Google Patents
Method and system for determining a configuration of a model having a collection of entities and satisfying a set of constraints Download PDFInfo
- Publication number
- WO2015193894A1 WO2015193894A1 PCT/IL2015/050613 IL2015050613W WO2015193894A1 WO 2015193894 A1 WO2015193894 A1 WO 2015193894A1 IL 2015050613 W IL2015050613 W IL 2015050613W WO 2015193894 A1 WO2015193894 A1 WO 2015193894A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- nodes
- node
- entities
- constraint
- child
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
Definitions
- the present invention relates to computer models having a collection of entities and satisfying a corresponding set of constraints.
- Solving constrained systems and models is useful in many industrial applications, such as, for example, computer-aided design (CAD) systems, operations research problems and the like.
- CAD computer-aided design
- geometric models are represented by a collection of geometric entities.
- the entities of the collection of entities are interrelated by a set of constraints, typified by a set of constraint equations.
- a user modifying entities of the model ideally results in a corresponding modification of related entities in order to satisfy the constraints.
- This is accomplished by the CAD system software solving the constrained equations of the model.
- a model of a square may be defined by the entities of four line segments.
- constraints of such a model may include: the four line segments being of equal length, two intersecting lines being perpendicular, and appropriate interconnections of line segments at the end points of the line segments.
- the three remaining line segments are correspondingly lengthened, in order to maintain the shape of the square.
- the present invention is a method and system for providing a functionality for determining the configuration of a model having a collection of entities and satisfying a set of constraints.
- a non-transitory computer-readable storage medium having embedded thereon computer-readable code, the computer-readable code comprising program code for implementing a method for determining a configuration of a model comprising a collection of entities satisfying a set of constraints, the method comprising: (a) providing the collection of entities and the set of constraints; (b) generating at least one tree, the at least one tree including a plurality of nodes, the at least one tree including a root node, the root node having at least one child node, the nodes having at least one child node defining parent nodes, the nodes lacking child nodes defining leaf nodes, each node corresponding to a subset of the constraint equations; (c) for a subset of leaf nodes, solving in parallel to satisfy the constraint equations of each of the leaf nodes; (d) for each parent node for which the constraint equations of the child nodes have been satisfied, solving to satisfy the constraint equations of the parent
- the method further comprises; (h) providing a display organization module; and (i) organizing for display the output entities corresponding to the determined configuration of the model, according to the satisfied set of constraints.
- solving to satisfy the constraint equations of each of the child nodes includes: updating a state vector of the child node; and (ii) generating an updated statistical matrix corresponding to the updated state vector.
- updating the state vector of each of the child nodes is based on a difference between a first configuration, in which the constraint equations corresponding to the child node are not satisfied, and a second configuration, in which the constraint equations corresponding to the child node are satisfied.
- satisfying the constraint equations of each parent node includes: (i) predicting a state vector for each of the child nodes of the parent node, each state vector corresponding to the updated state vector of each child node of the parent node; and (ii) generating a predicted statistical matrix corresponding to each of the predicted state vectors.
- satisfying the constraint equations of each parent node further includes: (iii) combining the predicted statistical matrices of the child nodes of the parent node into a single combined statistical matrix; (iv) generating a combined state, vector corresponding to the combined statistical, matrix; and (v) updating a state vector of the parent node based on the combined statistical matrix and. combined state vector.
- propagating the satisfied constraint equations of each parent node includes: (i) propagating the updated state vector of the parent nodes to each of the child nodes of the parent node to apply ah adjustment, to the updated state vectors of each of the child nodes of the parent node; and (ii) repeating (i) until the updated state vectors of the leaf nodes are adj usted.
- the method further comprises: repeating (c)-(f) until a first accuracy condition is satisfied,
- the repeating is iterative.
- the first accuracy condition is based, on a residual vector.
- the entities are geometric entities.
- the geometric entities are two dimensional -geometric entities.
- the geometric entities are three dimensional geometric entities.
- the method further comprises: (h) generating a matrix representative of the model, the matrix having at least a first and second dimension, each, of at least one vectors in the first dimension of the matrix corresponding to a subset, of the plurality of variables, the matrix being sparse in the first dimension, each node of the -at least one tree corresponding to at least one of the vectors in the first dimension of the matrix.
- the model is a non-linear model.
- generating the matrix representative of the non-linear model includes: (1) prior to (b), linearizing the non-linear model to produce a linear model; and (ii) repeating (c)-(f) until a second accuracy condition is satisfied.
- the repeating is iterative.
- the second accuracy condition is based on a residual vector.
- the matrix is a sequentiall linearized matrix.
- generating the at least one tree includes: (i) creating a root node of the at least one tree and placing at least one of the constraint, equations in the root node; and (ii) placing constraint equations sharing at least one variable with the at least one equation in the root node in respective child -nodes of the root node.
- generating the at least one tree further includes; (iii) placing constraint equations sharing at least one variable with at least one of the constraint equations in the respective child nodes i additional respective child nodes of the respective child nodes: (iv) repeating (iii) until each of the constraint equations is placed in at least one of the nodes of the at least one tree.
- the model has at least one degree of freedom.
- the method further comprises; (h) receiving as user input, instructions to modify at least one entity of the collection of entities; and (i) in response to the user input, solving to satisfy the set of constraint equations to determine a new configuration of the model.
- the method further comprises: (j) outputting the entities corresponding to the configuration of the model satisfying the set of constraints.
- the statistical matrices are covariance matrices.
- the subset of leaf nodes includes all of the leaf nodes.
- a system for determining- the configuration of a model comprising a collection of entities and a set of constraints in a computer having software instructions, the collection of entities represented by a plurality of variables, each constraint corresponding to at. least one constraint equation interrelating a subset of the .
- the system comprising: (a.) a computer system, the computer system including at least one processor, and at least one user input device, the computer system configured to (i) receive user input to generate the model via the at least one input device; (ii) generate at least one tree, the at least, one tree including a plurality of nodes, the at least one free including a root node, the root node having at least one child, the nodes having at least one child node defining parent nodes, the nodes lacking child nodes defining leaf nodes, each node corresponding to a subset of the collection of constraint equations; (iii) for a subset of leaf nodes, sol ve in parallel to satisfy the constraint equations of each, of the leaf nodes; (iv) for each parent node for which the constraint equations of the chi ld nodes have been satisfied, solve to satisfy the constraint equations of the parent, based o the satisfied constraint equations of the corresponding child nodes; (v) repeat (i) a computer
- the computer system further includes at. least one display device, and the computer system is..further configured to: (viii). display the output entities, via the at least one display device, of the determined configuration.
- the computer system is further configured to: (viii) receive user input to modify at. least one entity of the collection, of entities; and (ix.) solve to satisfy the set of constraints to determine a new configuration of the model.
- a system for determining the configuration of .a model comprising a collection of entities and a set of constraints in a computer having software instructions, the collection of entities .represented by a plurality of variables, each constraint corresponding to at least one constraint, equation interrelating a subset of the plurality of variables, the system comprising: (a) a computer system, the computer system including a memory, at least one processor, at least one user input device, and at least one display device; and (b) a computer generated model stored on the memory of the computer system, the computer system configured to: (i) receive user input to modify at least one entity of the collection of entities via the at least one input device; (ii) generate at least one tree, the at.
- At least one tree including a plurality of nodes, the at least one tree including a root node, the root node having at least one child node, the nodes having at least one child node defining parent nodes, the nodes lacking child nodes defining leaf nodes, each node, corresponding to a subset of the collection of constraint equations; (in) for a subset of leaf nodes, solve in parallel to satisfy the constraint -equations of each of the leaf nodes; (iv) for each parent node for which.
- At least one constraint equation interrelating a subset of the plurality of variables; (b) generating at least one tree, the at least one tree including a plurality of nodes, the at least one tree including a root node, the root node having at least one child, the nodes having at least one child node defining parent nodes, the nodes lacking child nodes defining leaf nodes, each node corresponding to a subset of the constraint equations; (c) for a subset of leaf nodes, sol ving in parallel to satisfy the constraint equations of each of the leaf nodes; (ci) for each parent node for which the constraint equations of the child nodes ha ve been satisfied, solving to satisfy the constraint equations of the parent node, based on the satisfied constraint equations of the corresponding child nodes; (e) repeating (d) until the constraint equations of the root node have been satisiied; (!) propagating the satisfied constramt equations of each of the parent nodes to the corresponding child no
- a computer program that can be loaded onto a server connected through a network to a client computer, so that the server running the corapuier program constitutes a server in a system according to any of the embodiments described in this document.
- a computer program that can be loaded onto a computer connected through a network to a server, so that the computer running the computer program constitutes a client computer in a system according to any of the embodiments described in this document,
- FIG. 1 is a flowchart for performing a process for determining a configuration of a model having a collection of entities and satisfying a corresponding set of constraints according to an embodiment, of the invention
- FIG. 2 illustrates an example of tree having multiple generations
- FIG. 3 is a flowchart of a tree generating process according to an embodiment of the invention.
- FIG. 4 is a flow chart for solving to satisfy constraint equations of a child node according to an embodiment of the invention
- FIG . 5 is a flow chart for solving to satisfy constraint equations of a parent node according to an embodiment of the invention
- FIG. 6 is a flow chart For adjusting solved constraint equations of a child node according to an embodiment of the invention
- FIG, 7 A is a schematic diagram of a generalized representation of an exemplary processing unit for performing the process of FIG. 1 ;
- FIG. 7B is a block diagram of a computer system for housing the processing unit of FIG.
- FIG. 8 illustrates an example of a geometric constraint satisfaction problem
- FIG. 9 ' illustrates a matrix representative of a linearized system of equations of the geometric constraint satisfaction problem of FIG. 8;
- FIGS. 10A-10B illustrate a tree generated from the matrix of FIG, 9.
- FIGS, 11 A- 1 I D illustrate statistical matrices corresponding to state vectors of nodes of the tree of FIG. I OB;
- FIGS. 12A-12C illustrate predicted statistical matrices corresponding to state vectors of nodes of the tree of FIG. 1 OB;
- FIGS. 13 A- 13B illustrate combined statistical matrices corresponding to state vectors of nodes of the tree of FIG. lOB:
- FIGS. 1 A-14B illustrate inde matrices corresponding to the nodes of the tree of FIG.
- FIGS. 15A-15D illustrate adjustment matrices for adjusting state vectors of nodes of the tree of FIG. I OB.
- the present invention is a method and system for providing a functionality for determining the configuration of a model having a collection of entities and a set of constraints.
- Multiscale Autoregressive estimation may be applied to solving systems of linear equations represented by matrices with unique properties.
- MAR estimation is a generalization of a Kalman . filter for time having complex tree-like structure.
- the embodiments disclosed herein are applicable to a variety of models defined by a collection of entities, which satisfy a set of constraints, and are of particular value when applied to CAD systems.
- entity or “entities' * generally refers to objects represented by at least one variable, which may be set and modified, in CAD systems for example, the entities are geometric entities of varying dimension.
- two- dimensional geometric entities include, but are not limited to, line segments, circles, ellipses, splines, arcs, and the like.
- Examples of three-dimensional geometric entities include, but are not limited to, planes, spheres, cones, frustums, cubes, cylinders, and the like,
- constraints generally refers to a restriction on individual entities or on groups of entities.
- the constraint on an entity or groups of entities is represented by a constraint equation Or equations, while entities are represented by corresponding variables.
- Each constraint equation provides an interrelation between a subset of the variables corresponding to the entities.
- a model may be fully constrained, over-constrained, or under-constrained. This means that the number of constraint equations may be equal to the degrees of freedom of the model (i .e. the number of variables), greater than the degrees of freedom of the model or less than the degrees of freedom of the model, respectively.
- constraint equations may contradict each other, and as such, the constraints cannot be maintained. Accordingly, the embodiments disclosed herein are directed to systems of constraint equations which lack contradictions. Furthermore, the embodiments disclosed herein are directed to models which have at least one degree of freedom.
- the above mentioned entities are objects in two or three dimensional space and may be represented by a Cartesian coordinate system, such as ⁇ x v) or ( y,r). Note that the representation of entities may also be accomplished by use of polar coordinate systems. ' Using polar coordinates may be advantageous in satisfying certain constraints. For instance, constraints which restrict the angles at which a line can be positioned are preferably satisfied by using polar coordinates. Therefore, in a preferred embodiment, the entities are represented by both Cartesian and polar coordinates. Accordingly, a single line segment is represented by six variables: two x variables, two y variables, a magnitude variable, and an angle variable. According to certain embodiments. solving constraint equations involves selecting which sets of variables associated with a model are used in solving the equations.
- matrices are represented by capitalized hold-faced italicized letters (e.g. Q).
- Vectors are represented by lowercase bold-faced italicized letters (e.g. q)
- Scaiars are represented by lo wascase italicized letters (e.g. q).
- Superscripts of matrices and vectors indicate iterations or realizations of the matrices and. vectors.
- the transpose of a matrix Q is written as O l
- the inverse of a matrix. Q is written as Q ⁇ l
- indexing of the vectors and matrices described herein begin from zero, as is common with high level programming languages which may be used to implement the embodiments described herein.
- FIG. 1 an exemplary flowchart of a process 10 for solving a system of equations representative of a model having a collection of entities and satisfying a corresponding set of constraints.
- Solving the system of equations of a model is interchangeably referred to herein as determining the configuration of the model or solving the constraint equations of the model.
- the collection of entities and the corresponding constraints applied to the entities are provided in step 1 ⁇ 0.
- the entities and the constraints may be provided by a user through a user input, device or loaded from a memory module, as will be discussed with reference to FIGS. 7A and 7B.
- geometric models are represented by a collection of geometric entities.
- the geometric entities may be configured in a variety of ways, with the constraints corresponding to the entities being satisfied in a preferred configuration.
- Typical geometric entities and constraints are represented by a system of nonlinear equations, where the non-linear equations represent a constraint or constraints placed on a group of entities.
- Such non-linear systems can be more easiiy represented as a constraint vector equation F(z) ⁇ , where Fiz) is a vector function, z is a vector of variables, describing geometric entities of the model and v is a "measurement vector " ' of the non-linear system of constraint equations.
- a ⁇ -length variable vector z has components zo, ⁇ h .... z K .j. Similarly, .an Af-length measurement
- Matrix A is a mairix of partial derivatives of the vector function F(z) evaluated at /, where the i ik row and/* column of A 0 can be represented as follows;
- a 9 is a two-dimensional matrix having Arrows and . ⁇ -columns.
- the rows of A 9 correspond to the constraint equations of the model, and the columns of //correspond to the variables of the model.
- the vector y can be represented as:
- the residual vecto / can be represented as follows:
- A is a sparse matrix.
- the term ''sparse matrix generally refers to a matrix in which the majority of the elements of the matrix are zero.
- the matrix A is sparse row-wise. In other words, the majority of the elements along each row of A are zero.
- the total .number of variables used to represent the entities being on the order of thousands to hundreds of thousands.
- the number of variables used to represent each equation in the system of equations is typically less than 10. This corresponds to a matrix with thousands of columns, yet each row having less than 10 non-zero -elements.
- the sparseness of the rows af A allows for the solving the linear system of equations using matrices of dimensions much, les than the dimensions of A. Since typical operations with matrices involve computationally complex operations, such as, for example, matrix inversions, using matrices of reduced dimension reduces significantly computation a 1 comp 1 ex i ty .
- matrix A is represented as a tree or as a forest including a plurality of trees.
- step 104 the representation of the relevant matrix as a tree or a forest is shown in step 104.
- the representation of the matrix as a tree or collection of trees facilitates efficient, accurate, and reduced
- the tree 20 includes a plurality of nodes -210A, 220A-220B, 230A-230E and 240A-240D.
- the nodes of the tree 20 are connected by a plurality of branches 25OA-250B, 260A-260E and 270A-270D.
- the nodes of the tree 20 include a root node 21 OA and a plurality of child nodes 220A-22OB. 230A-23OE. and 240A-240D.
- root node generally refers to the node from which all other nodes of a tree descend
- child node o "children” generally refers to the nodes which descend, directly or indirectly, from the root node.
- the term "parent node'" generally refers to the node from which a child node directly descends from.
- the parent node of the child node 220A is the root node 210.4 and the parent node of child node 240C is the node 23 ⁇ ).
- each child node has Only a single parent node.
- each parent node can have more than one child node.
- the node 230O has two children: the child node 240 and the child node 240D.
- the term " eaf node " ' generally refers to a node which lacks children.
- the nodes 230B-230C, -230E and 24OA-240D and are leaf nodes.
- a root node lacks a parent node.
- the naming convention . and structure of the tree 20 is generally similar to that of a human family tree, and the naming convention used to describe the relationships between nodes of a tree is generally similar to the naming convention used to describe the relationships between members of a family tree.
- bling node generally refers to nodes which share a parent node.
- the nodes 240A and 240B are sibling nodes.
- the term, "grandparent node” generally refers to. nodes which are the parent node of the parent node of a child node.
- the grandparent of the node.240 A is the node 220A.
- the term "grandchild node' * generally refers to a node that, is a child node of a child node.
- the node 240A is a grandchild of the root node
- the term "ancestor node ' " or "ancestor ' ' generally refers to a node from which another node descends, either directly or indirectly.
- the root node 210 A is an ancestor node of each of the nodes ' 220A-220B, 230A-230E and 240A-240D
- the node 220B is an ancestor node of the nodes 230D, 230E, 240C and 240.D.
- the generated tree has an inherent generational structure, with the oldest, generation of nodes being situated at the top of the tree and the youngest generation of nodes being situated at the bottom of the tree.
- the generations of the nodes become younger.
- the generations of the nodes become older.
- the generational structure of the generated tree is better understood with reference to the example of the tree 20.
- a first generation 210 of nodes preferably includes only the root node 210A, situated at the top of the tree structure.
- a second generation 220 of nodes preferably includes all of the child nodes for which the node of the first generation 210 is a parent, In the example of the tree 20, the second generation 220 of nodes includes the nodes 22 ⁇ -220 ⁇ .
- a third generatio 230 of nodes preferably includes all of the child nodes for which the nodes of the second generation 22 are parents. In the example of the tree 20, the third generation 230 of nodes includes the nodes 230A-230D.
- a fourth generation of nodes 240 preferably includes all of the child nodes for which the nodes of the third generation 230 are parents. In the example of the tree 20. the fourth generation 240 of nodes includes the nodes 240A-240.O.
- Each node of the tree which is generated, or equivalently constructed, in step 104 corresponds to a constraint equation or equations, and analogously a row or several rows, of the linear system of equations.
- the tree is generated in a manner such that the tree satisfies several necessary conditions as well as several preferable conditions.
- the necessary conditions provide convergence of the process as will be described in more detail below. Accordingly, one such necessary condition requires that the constraint equations corresponding to a particular node and the parent node of the particular node be linearly independent.
- the first necessary condition corresponding to the structure of the tree requires that if a variable corresponding to an entity is represented in a particular node and an ancestor of the particular node, the same variable is also represented in the intermediate nodes between the ancestor node and the particular node, For example, if a variable is represented in the leaf node 240A and the root node 21 OA, the same variable is preferably represented in the nodes 220A and 230A.
- the second, necessary condition on the structure of the tree requires that any variable represented in two nodes which descend from two different branches are also represented in all of the parent nodes between the two nodes up to and including the common ancesto of the two nodes.
- the same variable is preferably represented in the nodes 230A and 220A.
- the same variable is preferably represented m the nodes 230A, 220A, 2301), 220B and 21 OA.
- the ' tree includes a relatively large number of branches.
- a larger number of branches allows tor computations on multiple nodes to be earned out in parallel.
- parallel computing techniques such as, for example, multi core processors and cloud computing systems, facilitate the exploitation of this preferred tree structure.
- each node represents a relatively small number of constraint equations.
- each node represents a single constraint equation.
- the number of variables in each node is preferably relatively small (while the number of nodes in the tree may be relatively large). This preferred condition also contributes to reduced computational complexity as previously mentioned.
- the relatively small number of variables in each, node allows for the use of matrices of reduced dimension in order to reduce computational complexity.
- the number of variables used to represent each constraint equation in the system of equations is typically less than 0.
- the matrices used for matrix operations, in particular matrix inversion are smaller than 10 by 10 matrices.
- the computational complexity for solving the system of equations using the process 10 is .approximately 0(N ⁇ . Accordingly, the computational complexity increases linearly with the number of equations in the system of equations. Therefore there is a linear 0(.N) growth of computational complexity with the growth of the number N of constraint equations.
- the tree generating process 30 is an example of a process for generating a tree, which satisfies the above-mentioned conditions. Note there may be other methods fo generating trees, which satisfy the mentioned conditions, and the process 30 is only an exemplary process for tree generation.
- a result of the process 3CI is the placement of constraint equation of the matrix A at nodes of the generated tree.
- constraint equations are denoted by lowercase bold-faced italicized underlined letters (e.g. e).
- Nodes of the generated tree are denoted by lowercase italicized subscripted letters.
- all nodes contain only one constraint equation.
- a particular node and the equation placed in that particular node share the same index value. For example, if the first equation e $ is placed in the root node, the root node is denoted by
- the equations include a subscript, which corresponds to the row of the matrix A.
- the set of variables of an equation are denoted by capitalized bold-iaeed italicized underlined letters (e.g. W),
- the set of variables corresponding to i'" equation ej is denoted by Wj.
- the equation of a node can be written as a function of the equation variables as
- the equations correspond to the rows of the matrices A (> , A A 2 , etc., referred to in general as the matrix A.
- the matrix A has N-rows and ⁇ -columns, where N is the number of constraint equations and Kis the number of variables.
- the phrase "putting an equation in a node ' ' or ""placing an equation in a node” refers to the act of associating a constraint equation with a specific node.
- the set of variables of a node may be interchangeably referred to as a vector of variables of a node or as a "state vector" of a node.
- step 302 a new tree is created.
- step 304 a root node is created in the tree created in step 302, and a constraint equation is placed in the root node. Note that any equation from the matrix can be placed in the root node in step 304, Supposing that an equation Wi) is placed in the roo t node created in step 304, a next step 306 is to determine if there are other equations which can be placed in the root node as well.
- the remaining constraint equations are checked for whether any of the subsequent equations share any variables with the root node.
- the set of such equations is referred to as set G. If G is not empty (i.e. there is at least one other equation , sharing some variables with the root node), a child node of the root node is created for one of the equaiions with shared variables, and the equation is placed in the child node of the root node. The creation of the child node and placement of such a constraint equation in the child node is done in step 310, Subsequently, similar to step 306, the remaining equations of set G are checked for the subset condition with the variables of the child node.
- any of the equations of set 6 ⁇ which satisfy the subset condition are added to the child node in step 312. Note that, if G is an empty, the tree generating process 30 checks whether all of the equations are represented in the tree. Checking whether set. G is empty is done in decision step 308.
- Step 314 checks whether there are any more equations in the set G not represented by the previously created child node, if there are, a new child node of the root node is created, and one of the equations in G is placed in this new child node. This is equivalent to checking whether there are any more equations in set G sharing variables with the root node. If there are no more such equations, all of the children of the root node have been created, and the process 30 moves on to creating the child nodes of the children of the root node.
- Step 316 is similar to step 308, However a new set G for each of the chi ld nodes is creat ed. Accordingly, for each child node, if the corresponding set G is not empty (i.e. there is at least one other equation sharing some variables with the child node), a child node of the child node (step 310) is created and one of the equations with shared variables is placed in the child node of the child node, As such, steps 308-314 are repeated until the child nodes of all children of the root node have been created with all associated equations placed in each node (i.e. all generations of nodes have been created with all associated equations placed in each node.
- Step 318 the constrai nt equations of the matrix are checked for placement in any of the previously created nodes of the tree. If all of the equations of the matrix are accounted for in the nodes of the tree, the process 30 moves onto final ste 320. If however, not all of the equations are accounted for, a new tree is created (step 302), and the subsequent steps 304-318 are repeated for the new tree. This results in the system of equations being represented as a. forest of trees. Note that each tree of the forest m.ay be processed independently, and as such may decrease computational complexity.
- a tree may be constructed in. which not all of the above mentioned necessary conditions are satisfied.
- an equation variable in a particular node and an ancestor of the particular node may not necessarily be in the equations of all intermediate nodes.
- an equation variable placed in two nodes, which descend from two different branches, may not be placed in all of the parent nodes between the two nodes up to and including the common ancestor of the two nodes.
- collisions Collisions are handled in step 320,
- variable in a particular node and an ancestor of the particular node is absent from any of the intermediate nodes, the variable is added to the state vectors of such ntermediate nodes.
- equation variable in two nodes, which descend from two different branches is absent from any of the parent nodes between the two nodes up to and including the common ancestor of the two nodes, the variable is added to the state vectors of such nodes.
- step 320 is a brute force approach which may be ideal ill certain situations.
- situations may arise in which the handling of collisions as described in step 320 may lead to a large number of variables being added to nodes in multiple generations of the tree.
- other collision handling methods may be preferable in order to avoid increased computational complexity.
- the relevant matrix is represented as a tree or as a forest including a plurality of trees.
- the number of trees representative of the matrix is a function of the structure of the matrix. Specifically, the number of trees is a function of the constraint equations relating the .entities, and the constraints, as discussed with reference to the tree
- step 104 since the general structure and sparseness of the. linearized, matrices do not change from iteration to iteration of step 102 as previously mentioned, generating the tree or forest in step 104 needs to be carried out only once. However, the values of the vari ables associated with the entities change from iteration to iteration of step 102, and as such, the nodes of the tree or trees generated in step 104 correspond to the elements in the rows of linear system of equations represented by matrices A° t A 1 , A 4 , etc. This is depicted in a decision step 103. After the first linearization iteration of step 102, the tree has not yet been generated, and as such, the tree is generated according to step 104.
- the linearization process also includes normalization of the linearized system of equations.
- normalization involves dividing the initial guess vector by a certain value, preferably the maximum absolute value of th values of the initial guess vector. This ensures that the values of the initial guess vector are bounded between -1 and I .
- calculated values based on the normalized linearized matrices yield results which do not blow up to large numbers which may cause accuracy and memory allocation problems.
- Note thai the previously mentioned normalization technique is only one of a variety of normalization techniques, which may be used to keep the resulting calculated values from becoming exceedingly large.
- the method for solving, the approximated linear system of equations using the tree structure generated in step 104 operates by satisfying the constraint equations of a subset the leaf nodes and progressively satisfying the constraint equations of parent nodes until the constraint equations of the root node are satisfied. Once the constraint equations of the root, node are satisfied, the solution for each satisfied node, beginning from the root node, is propagated down to the leaf nodes through each of the child nodes of the tree.
- each node of the tree corresponds to at least one constraint equation, and analogously at least, one row of the matrix representing the linear system of equati ons.
- the constraint equations of each node in the subset of leaf nodes is solved in step 106.
- the process in which the constraint equations of a node are solved- may be referred to interchangeably as solving to satisfy the constraint equations of a node, solving a node, or as performing a "measurement update " on a node.
- the subset of leaf nodes includes all leaf nodes, and is most preferably identically equal to the set of all leaf nodes.
- the preferred subset of leaf nodes includes nodes 240A-240B, 230B-230C and 230.E.
- the leaf nodes can be solved in parallel, reducing the computation time for solving the overall system of equations.
- the task is to satisfy the constraint equations of the corresponding parent nodes, based on the measurement updates of the corresponding child nodes.
- A. corresponding parent node may be solved after all of the child nodes of the parent node have been solved. This is performed in step 108, Note that a . set of parent nodes for which ail of the corresponding child nodes have been solved may be solved in parallel, in the example of the tree 20, the parent nodes to be solved in step 108 are the parent nodes 230 A and 230D, Note that solving to satisfy the constraint
- equations of a parent node based on the measurement updates of the corresponding child nodes is referred to interchangeably as performing a prediction for the solution of the parent node based on the measurement updates of the corresponding child nodes.
- the solution of the parent node 23 A is predicted based on the solutions of the child nodes (leaf nodes) 240A ⁇ 240B.
- the predicted solutions of the parent nodes are used as a basis for solving the parent nodes.
- steps 106 and 108 the process of solving the nodes of the tree described in steps 106 and 108 begins, with all leaf nodes and. progresses to the next generation of nodes. Note thai a particular parent node may be solved as soon as all of the child nodes f the particula parent node are solved. Therefore, waiting for nodes to be solved, which are not child nodes of the particular parent node, is not necessary.
- Step 108 is repeated until the root node of the tree is solved. As such, after each
- step 108 a decision step 109 is executed to determine the subsequent step based on whether or not the root note has been solved. If the root node has not yet been solved, step 108 is repeated, if the root node has been solved, the process 10 moves on to step 1.10.
- the process of executing the steps 106, 108 and 109 may be referred to collectively as performing a "fine-to-coarse update" on the nodes of the tree. Accordingly, in the “ilne-to-coarse update", direction of mo ving along the tree is from the leaf nodes of the tree to the root node of the tree. Step 110 may be referred to as performing a "coarse-to-fine update " . Accordingly, in the "coarse-to-fine update", the direction of movement along the tree i s from the root node to the leaf nodes.
- step 1.10 the solution of the root node is propagated down to each of the child nodes in the tree.
- the solution of the root node is used to correct, or equivalenily to adjust, the solution of the ehildren of the root nodes.
- the adjusted solutions of the -children of the root nodes are used to adjust the solutions of the grandchildren of the root node.
- the propagation is continued -until the solutions of all of the leaf nodes have been adjusted.
- the solution of the root node 2.1 OA is used to -adjust the solutions of the nodes 220A-220B,
- the adjusted solution of the node 220A is used to adjust the solutions of the nodes 230A-230C.
- the adjusted solution of the node 220B is used to adjust the solutions of the nodes 230B-23OE
- the adjusted solutions of the nodes 230A and 230 D are used to adjust the solutions of the nodes 240A-240B and 240C-24 D, respectively.
- the solution of the root node propagates through each of the child nodes of the free until reaching all of the leaf nodes.
- step 106 a subset of leaf nodes, preferably all of the leaf nodes, is solved. Accordingly, the process 40 performs the measurement updates for such leaf nodes in step 106, as well as the subsequent measurement updates for the parent nodes of the tree based on the updated child nodes in step 108, The steps of the process 40 .are herein described for a single .node s. The process 40 is carried out for all remaining nodes, and will be understood by analogy thereto unless expressly stated otherwise.
- the processes 40 and 50 as will be described are based on calculated matrices and vectors corresponding to each node. As such, for a given node ⁇ a matrix M corresponding to the node s is written .as M(s). Similarly, vector b corresponding to the node s is written as bis). Moreover, the calculated matrices of the processes 40 and SO are statistical matrices, In the context of this document, the term "statistical matrix' * generally refers to a matrix which, provides statistical information about the elements of the veetorfs) from whicii the matrix is derived.
- the matrix element in the i* row and f column represents statistical information about the s' h and f k elements of the vectors) from which the matrix is derived
- the statistical matrices are coyariance matrices, and as such, the statistical, information in the i' h row and /* column represents the covarianee between the f" and 1 elements of the vecior(s) from which the covarianee matrix is derived.
- matrices and vectors having a subscript of 2 are used for performing the measurement updates previously mentioned to generate updated matrices and vectors.
- the resulting updated matrices and vectors are denoted by matrices and vectors without any subscripts, and are used for perfofmmg the prediction previously mentioned to generate predicted matrices and vectors.
- the resulting predicted matrices and vectors are denoted by matrices and vectors having a subscript of 1 (e.g.
- a "measurement matrix" C ⁇ s) is generated for each node s for which the process 40 is performed.
- the measurement matrix is obtained from the linearized matrix A by selecting the rows of the linearized matrix, which correspond to the constraint equation(s) of the node s, with all columns corresponding to variables not included in node s removed.
- the measurement matrix of each node is of size m by/?, where m is the number of constraint equations, which correspond to the node s, and p is the number of variables included .in the. node 5. if m is equal to one,, then/; is equal to the number of non-zero entries in the row corresponding to the node s.
- a "measurement innovation" vector v(s) is calculated.
- the vector v(s) is based in part on the components of the measured output vector y corresponding to the node s, written &&y s).
- y (s) is of size m by /.
- the vector v(,s) is also based in pan on a state vector x ⁇ s) of the node 5,
- the state vector X2(s) is of size p b
- the state vector x.2(s) is representative of the solution of the node s at a given instant.
- the state vectors of the nodes are dynamic.
- the values of the state vectors at the end of the process 10 are the ultimate solutions to the nodes.
- a decision step 414 the decision of whether the process 40 is performed, on a leaf node or a parent node is made. If the process 40 is performed on a leaf node, the state vecto x?(s) is .an all zero vector, as shown in step 416, If the process 40 is performed on a parent node, the state vector x (s') is a calculated vector, as shown in step 418. The -calculated state vector is calculated by the process 50 as will be subsequently described.
- the vector v( himselfv) can be represented as follows;
- v(s) is also of size m by 7.
- the innovation vector v(s) is essentially an error vector which describes the difference between a configuration in which the constraint, equations of the node s are satisfied, and a configuration in which the constraint eq uations of the node $ are not satisfied,
- a statistical matrix, most preferably a covariance matrix, V(s) corresponding to v i$) is calculated in step 406.
- the covariance matrix V(s) can be represented as follows:
- P-iis is a statistical matrix, most preferably a covariance matrix, of the state vector xz(s). Similar to the state vector, the value of the matrix /3 ⁇ 4s) is dependent on the decision step 414. If the process 40 is performed on a leaf node, the matrix is an identity matrix (also shown in step 416). if the process 40 is performed on a parent node, the matrix Pz(s) is a calculated matrix (also shown in step 418). The calculated matrix ⁇ ) is calculated by the process 50 as will be subseq uentiy descri bed .,
- the matrix ii ) is of size p by p. in the context, of this document, the term “identity matrix " generally refers to a matrix with equal number rows and columns, with elements along the main diagonal being equal to one, and all other elements equal to zero.
- the matrix R(s) is a statistical, matrix of size w by . Most preferably &(s) is. the co variance matrix of "measurement noise" when performing the process 40.
- the matrix R(s) is preferably an m by m identity matrix multiplied by a noise factor &
- the noise factor S is a design parameter, and is preferably chosen based in part on the desired accuracy of the resultant solution to the approximated linear system of .equations. Preferably, the.
- the order of magnitude of 0 is roughly half the order of magnitude of the desired accuracy.
- T ' he accuracy is a direct result of the magnitude of the residual vector r.
- the noise -factor ⁇ is preferably chosen to be approximately ⁇ ⁇ .
- the matrix V(s) is also of size m by m.
- a "gain matrix" K(s) is calculated in step 408.
- the gain matrix K ⁇ s) can be represented as follows; where m, Based on the gain matrix es), an updated state vector A'(.V) is calculated in step 410.
- the updated state vector x(s) is of the same size as the initial state vector X2 ⁇ $), namely size/; by 1.
- the updated state vector x(s) can be represented as follows:
- the matrix / is a p hyp identity matrix.
- the updated covariance matrix P(s) is of size p by p.
- the leaf nodes are solved by calculating the updated state vector x(s) and the updated covariance matrix Pis), As will subsequently be discussed, these updated vectors and matrices are used to predict the solutions to the parent nodes of the leaf nodes and to the parent nodes of other child nodes.
- an exemplary process S for carrying out the process of step 108 Similar to the process 40, the process 50 is herein described for a single parent node s for which all of the child nodes of the parent node s have been solved.
- the parent node s has q child nodes, which have been updated by the process 40.
- the child nodes, of the parent node s are referred to as child nodes ' s ⁇ 3 ⁇ 4 $3. . . s q .
- the goal of the process 50 is to predict state vectors ⁇ ⁇ $ ⁇ ), xj($i), xt(ss)...
- the predicted state vectors are of size/? by I, where p is the number of variables corresponding to the parent node ,v.
- the indices of the predicted state vectors x / (,s / ), x ? (-?,>), xj S)), .. are determined.
- the list of indices of variables common to the parent node s and each of the child nodes S] , 3 ⁇ 4, ⁇ 3 ⁇ 4 ⁇ . - 3 ⁇ 4 is compiled.
- each predicted state vector is initialized to the ail zero vector. Looking at the variables of the parent node s, the indexed location of each of the parent variables in the child node s s is returned and entered in the index predicted state vector for the child node s / . This process is continued for the remaining child nodes 3 ⁇ 4. S3. .. . ⁇ 3 ⁇ 4. Based on the indices determined in step 502, the predicted state vectors Xi(s /), Xi(sj , j(s3) v/(%) are determined in step 504.
- the parent node s corresponds to the node 230 A .-
- the child nodes s ⁇ and 3 ⁇ 4 .correspond to the child nodes 2 0A and 240B, .respectively.
- a variable vector A- is of length twel ve.
- the variable vector x can be written as x ::: (3 ⁇ 4> ⁇ x, x_? x > x 4 x 5 x 6 x 7 s x 9 x J0 ⁇ ⁇ 1 ).
- the parent node .v corresponds to variables ⁇ x$ Xn. xio
- the child node si corresponds to the variables (xv, J3 ⁇ 4 x,v> X//)
- the child node 3 ⁇ 4 corresponds to the variables (x? y xio xjj).
- the positions of the shared variables between the parent node s and the child node s are used to construct the predicted state vector Xj( j).
- the variable in the 0 th position of the parent node $ does not appear in the child node 5 ; . As such, the 0 th position of xi(si) remains zero.
- the variable in the I s ' positon of the parent node s appears in the 3 Kl position of the child node 5 >.
- the l il position ofxi($i) corresponds to the 3 ⁇ position of .3 ⁇ 4(,?/).
- the variable in the 2 ⁇ position of the parent node $ appears in the 2 nd position of the child node 57.
- the 2 no position of xj(s ⁇ ) corresponds to the 2 nd position of x sj ). Therefore, the predicted state vector xi(s ⁇ ) can be written as
- statistical matrices most preferably covariance matrices, corresponding to the predicted state vectors are generated in step 506.
- the covariance matrix Pf(xi(si)) corresponds to Xj(si)
- the covariance matrix i3 ⁇ 4.v / (3 ⁇ 4)) corresponds to xj(si), and so on.
- the generated predicted covariance .matrices fall out naturally from the child node updated covariance matrices F(.v, ), P(s 2 ), P($ (/ ) from step 412. For a given child node, for example child node 57.
- the rows and columns corresponding to the common variables of the child node and the parent node are placed in the predicted covariance matrix Pj(xt(sj)) corresponding to the list of indices of variables common to the parent node . and the child node . ⁇ ;, ⁇ . All other elements of the predicted covariance matrix Pj(x ⁇ (s])) are zero, with the exception of elements along the main diagonal, which are set to 1 ,
- Pj ⁇ xi ⁇ si) ⁇ is a 3 by 3 matrix
- P ⁇ i j(sj)) is initialized to a 3 by 3 matrix of all zeroes.
- the appropriate elements of the updated covariance matrix ⁇ ($ ⁇ ) are chosen for Pj ⁇ xj(s ⁇ )) based on the index vector outer product (0 3 2) T (0 3 2).
- all of the elements in the 0* row of PJ(XJ(SI)) are equal to zero.
- All of the elements in the 0 tb column of Pi(xi(si)) are equal to zero, except for the element with the indices (0, 0), which, is set to I .
- the element in the T t row and I st column of i(xi(s/) ⁇ is equal to the element in the 3 rd row and 3 rd column of P(si).
- the element in the l Si row and 2 nd column of ⁇ (xj(s ⁇ )) is equal to the element in the 3 m row and 2 na column of P(si).
- the element in the 2 nd row and 1 st column of /> / (* / ($ / )) is equal to the element in the 2 m row and 3 ⁇ column of P($i).
- the element in the 2 !,d row and 2 nd column of Pi(xj(si ⁇ ) is equal to the element in the 2 eo row and 2 nd column of P(s.i).
- step 508 the covariance matrices of the child nodes s 3 ⁇ 4 - - - >s q predicted in step 506 are combined into a single covariance matrix of the parent node s, written as ⁇ s).
- the matrix P?is is the same matrix described in the process 40.
- the matrix resulting from step 508 is a matrix used for updating a parent node, not the leaf nodes. Accordingly, the combined matrix, is used as input to step 404.
- the combined covariance matrix can be represented as follows;
- step 510 the state vectors of the child nodes . i, 3 ⁇ 4, s q predicted i step 504 are combined in to. a single state vector of the parent .node s, written as ⁇ 3 ⁇ 4( ⁇ ").
- the vector ⁇ 3 ⁇ 4(5) is the same as the vector described in the process 40.
- the vector resulting from step 51 is a vector used for updating a parent node, not the leaf nodes. Accordingly, the combined state vector is used as input to step 404.
- the combined state vector can be represented as follows:
- step 108 is repeated until the roo node has been solved. Once the root node has been solved, the solution of the root node is propagated down to each of the child nodes in the tree (step 110).
- Lelx($( t ) represent state vector of the root: node $ 0 .
- the updated state vector of the root, node s is propagated from the root node to each of the child nodes of the tree. The propagation adjusts the predicted state vectors of the child nodes of the root node. Once the child nodes of the root node are adjusted; the same process is carried out for the child nodes of the children of the root node and so on, until all. of the leaf nodes ha ve been adjusted.
- step 604 for each of the child nodes of the parent node, an adjustment factor is applied to the predicted state vectors * / (&" / ) » xj($2), xj(sj)... xj(s m ) obtained, from step 504 and the updated state vectors x ⁇ $i), x(s2 .. x(s m ) produced by the process 40.
- an adjusted state vector x(si) can be expressed as follows:
- each matrix ( ⁇ ?, ⁇ ) can be expressed as follows:
- the matrix F(s,) is an index, matrix.
- the element in the / w row and /"' 1 column -of the matrix F(sj) i s equal to ,/ if and only if the ⁇ ⁇ index of the state vector of node si and the./* index of the state vector of the parent node of t he node Si correspond to a common variable.
- Ail other elements -of the matrix (,v,) are substantially zero.
- the matrix J(s ;: ) can be thought of as a permutation matrix, or an adjustment matrix, which permutes the elements of the predicted coVariance matrix Pi(s ⁇ ) based, on the shared variables between the child node st and. the parent node of the child node s-.
- the matrix /(.?,-) is calculated in step 602 prior to step 604.
- Steps 602 and 604 are repeated for the child nodes of the given parent node (initialized as the root node) until all of the state vectors of the child nodes of the parent node have been adjusted. This is depicted in a. decision step 606.
- the/process 60 moves down one generation as shown in step 610. Note that if all of the state vectors of the leaf nodes have been adjusted, the process 60 is necessarily executing steps 602 and 604 at the nodes of the youngest generation, of the tree, and as such, cannot move down another generation upon completion of step 604. This implies that all of the state vectors of the nodes of the tree ha ve been adjust ed.
- the process 60 ends. Checking whether the state vectors of the leaf nodes have been adjusted is depicted in a decision step 608.
- the adjusted state vectors of the nodes provide the solution to the approximated linear system of equations.
- the steps 106-110 are repeated. This is depicted by decision step i l l. This is typically accomplished by calculating a new residual vector and subtracting the resultant solution from the new residual vector. The resultant subtracted difference is typically normalized. As such, the process is iterative based on the solutions to the approximated linear system of equations, in certain exemplary non-limiting implementations of the process 10 for CAD systems, the number of iterations is typically in the range of 2-5 iterations.
- step .1.11 the accuracy of the resultant solution to the non-linear system of equations is checked. Recall that the above solution is the solution to the first iterative step in tlie linear approximation. As such, if the accuracy of the residuals of the no -linear system of equations does not satisfy an accuracy condition, the steps 102-1 1 are repeated. This is depicted in a decision step J 24.
- the number of iterative steps for the linear approximatio is in the range of 2-4 iterative steps.
- the process 10 is preferably implemented as a dual iterative process, where the iterations of the linearization step have 2-5 sub-iterations.
- Completion of all iterations result in a configuration of the model in which the constraints, as applied to the entities are satisfied.
- the variables corresponding to the entities are produced for output.
- this entails outputfing the updated values of the variables of all of the entities.
- the system (processing system) 70 includes a processor 702 (one or more) and four exemplary memory devices: a RAM 704, a boot ROM 706, a mass storage device (hard disk) 708, and a flash memory 710, all communicating via a common bu 712.
- processing and memory can include any computer readable medium storing software and/or firmware and/or any hardware elements) including but not limited to field programmable logic array (FPLA) elements), hard-wired logic eiement(s), field programmable gate array (FPGA) element(s), and application-spec fic integrated circuit (ASIC) element(s).
- FPLA field programmable logic array
- FPGA field programmable gate array
- ASIC application-spec fic integrated circuit
- Any instruction set architecture may be used in processor 702 including but not limited to reduced instruction set computer (RISC) architecture and/or complex instruction set computer (CISC) architecture.
- RISC reduced instruction set computer
- CISC complex instruction set computer
- a module (processing module) 714 is shown on the mass storage device 708, but as will be obvious to one skilled in the art, could be located on an of the memory devices.
- the mass storage device 708 is a non-limiting example of a non-transitory computer- readable storage medium bearing computer-readable code for implementing the solving methodology described herein.
- Other examples of such computer-readable storage media include read-only memories such as CDs bearing such code.
- the system 70 may have an operating system stored on the memory devices, the ROM may include boot code for the system, and the processor may be configured for executing the boot code to load the operating system to the RAM 704, executing the operating system to cop computer- readable code t the RAM 7( 4 and execute the code.
- the network connection 720 provides communications to and from the system 7.0.
- a single network connection provides one or more links, including virtual connections, to other devices on local and/or remote networks.
- the system 70 can include more than one network connection (not sho wn), each network ' connection providing one or more links to other devices and/or networks.
- the system 70 can be implemented as a server or client respectively connected through a network to a client or server.
- the embodiments disclosed herein may be provided as a computer program product, or software, that may include a machine-readable medium (or computer-readable medium) having instructions stored thereon, which may be used to program a computer system, such as, for.
- the system 70 to perform a process or processes according to the embodiments disclosed herein.
- the computer program product, or software may be implemented as a plug-in for existing CAD software programs.
- system 70 may be implemented as part of a computer system 7 0 including a display 72, a user input device 74. and a display organizing module 76, as shown in FK1. 7B.
- the display 72 may be any suitable type of display for displaying data output from the system 70, including, but not limited to, a computer monitor and an LCD screen.
- the use input device 74 may be any type of device suitable for allowing a user to provide commands to the system 70, including, but not limited to, a keyboard and a mouse.
- the system 70 may be implemented as a stand-alone computer system including the display 72, the input user device 74, and the display organizing module 76.
- the types of commands provided to the system 70 via the user input device 74 allow for a user to instruct the system 70 to perform actions including, but not limited to, generating models, modifying models, savin models and loading models.
- the user may generate a model and the corresponding entities and constraints. Subsequently, the user may modify the entities, resulting in related entities being properly adjusted based on the solving of the constraint equations.
- generated models may be stored in memory, such as the flash memory 710, and may be subsequently loaded from memory to enable modification and manipulation by the user via the user input device 74.
- the variables of the entities are produced for output.
- the display organizing module 76 organizes the output entities for display, as shown in step 116.
- the organized output entities are provided to the display 72 for visualization b the user.
- Providing the display organizing module 76 corresponds to step 114.
- the output entities may alternatively be stored to a third patty device or displayed, via a third party display device.
- the intent of the example provided is to illustrate in more detail the steps in the process 10 for solving a system of equations.
- the variables of the entities are preferably floating point data types, and most preferably double precision data types.
- the values of many of the variables and matrices in the example described herein are shown only to four decimal places, with the several exceptions showing greater decimal precision.
- the noise factor ⁇ is chosen as having a value of 1 Q " ⁇
- a first line segment L ⁇ and a second line segment ? The line segment entities Li and Li are constrained by a single constraint, namely perpendicularity.
- line segment ! / is defined by two end points in Cartesian coordinates: P ( , (10, 7.5) and P 3 (17.5, 1.2.5).
- line segment L is defined by two end points in Cartesian coordinates: P 2 (20, 10) and . ? (25, 5).
- the line segments are not perpendicular.
- the initial vector includes eight variables: P(, (.% >3 ⁇ 4), Pi (x ⁇ , y ⁇ ), i (3 ⁇ 4, .1 ⁇ 2) and Pj (.3 ⁇ 4, "?) ⁇
- each line segment has a. magnitude (length) and angle.
- Line segment Lj has magnitude do (9.0139) and angle ⁇ $ (0.5880)
- Line segment 1,2 has magnitude dj (7.071 1) and angle a ⁇ (-0.7854). This yields a total of twelve variables for the two entities.
- the entities are expressed as the following system of non-linear equations:
- normalizing is accomplished by dividing by the maximum absolute value of the values of the initial guess vector, which in the present example is 25.
- the matrix A is generated using the results of expression (2) to linearize the above normalized non-linear equations.
- the generated matrix A* is shown in FIG. 9.
- the matrix " is recognized to be sparse row-wise in that the first four rows have four non-zero elements and the last row has two non-zero elements.
- the resulting residual vector is r" - ( 0 0 0 0 ⁇ 0, 19739555984988089) 7' .
- the process 30 is used to construct a tree 10(H).
- the equation in the 0 th row ofA (l is placed in the root node so. No other equations are placed in. the root node.
- the equation in the root node is denoted . e ⁇ o z ? , ? ⁇ 5 ). Equations esiz; z$ Z4 ⁇ $) and £,/( ⁇ 5 zu) share variables in common- with the variables of the root node.
- equations i( ⁇ ) .”j z 4 .3 ⁇ 4) and ⁇ n) are placed in the child nodes si and respectively.
- the node si does not have any children.
- the node . has two child nodes: sj and 3 ⁇ 4. Equations eiiZf) ⁇ $ ⁇ io ⁇ ii) and.£i(z? z.y ⁇ w ⁇ n) are placed in nodes .aftd respectively.
- the variable z i0 appears in the equations of the child nodes s? and s-i but does not appear- in the parent node, the variable is added to the parent node s 4 as shown in FIG. 10B, according to step 320 of the tree generating process 30 previously described.
- the leaf nodes are the nodes 47,. 3 ⁇ 4 and 3 ⁇ 4.
- the measurement matrix (5 ?) for the node 5 ? is the 2 d row of A 0 with the zeroes removed, and can be expressed as C(s?) :;: (-1 1 -0.7071 -0.2).
- the measurement matrix for the node si is the 1 S1 row of A 0 with the zeroes, removed, and can be expressed as € ⁇ i) ::: (- 1 ⁇ - 0.5547 -0.3).
- the matrix P(si) is represented as shown in FIG. 3 .1 B.
- the steps of the process 50 are executed to predict the state vectors and co variance matrices. Since the updated state vectors ⁇ ($?) and x(s ⁇ ) are zero vectors, the predicted state vectors .(0 0 0) and :::: (0 0 0). The predicted, covariance matrices P ⁇ (xi(ss ) and
- the measurement matrix for the node s 4 can be expressed as C(s 4 ) (-1 1 0).
- Equation (6)-(10) the following matrices and vectors are calculated: y(s 4 ) ⁇ - 0.J 9734, v(s 4 ) - -0.1974, K(s 4 ) ::: (0.5098 -0.4901 0) T , and x(s 4 ) - (-0. 1006 0.0968 0), T he matrix P(s 4 ) is represented as shown in FIG. 1 1 C.
- the matrix P(s ) is shown with higher decimal precision to highlight the fact that the matrix P(s 4 ) is nearly singular since the first two rows of P(s 4 ) are nearly equal However, the matrix not singular, and therefore a matrix inverse can be calculated.
- the combined covariance matrix and combined state vector of the root node s is calculated. Accordingly, the combined state vector .3 ⁇ 43 ⁇ 4(.3 ⁇ 43 ⁇ 4) is calculated as .3 ⁇ 4(,3 ⁇ 4) - (0 0 0.0071 -0.0987)..
- the combined co variance matrix /3 ⁇ 4 ⁇ ( ⁇ 3 ⁇ 4) is shown in FIG. 13B.
- the measurement matrix for the node sa can be written as C(so) 1 -0.8321 0.2).
- the root node 3 ⁇ 4 has been updated, and the process of propagating the updated state vectors of all of the nodes down to the leaf nodes can begin. Accordingly, the steps of the process 60 are executed to facilitate the aforementioned propagation.
- the updated state vector of the root node so is propagated to the child nodes s,> and $ 4 .
- the matrices ($i) and !3 ⁇ 4 ⁇ are determined based on the common indices of the child nodes and the parent node.
- Equation (14) the matrices J(sj) and (s 4 ) are calculated as shown in FIGS. 1 5A. and 15B, respectively.
- the adjusted state vector ⁇ / can be expressed as .*(,$/) - (0.0146288394405426 410146288394405426 -0.09752559675791 i ).
- the calculation of the adj usted state vector x(s 4 ) is not shown for convenience.
- the adjusted state vector x(s4) is propagated to the leaf nodes and s3 ⁇ 4, Using equation (14).
- the matrices «/(3 ⁇ 4) and J(s-t) are calculated as shown in FIGS. 15C and 15D, respectively.
- the -norm of the new residual vector is of the order of 10 "y , which as mentioned earlier, is not. as accurate as desired for typical CAD systems. Accordingly, the "No" branch of decision step 111 is selected, thus repeating steps 106 and 1 8. Repeating steps 106 and 108 produces a new residual vector with norm on the order of 10 " l!i , which, as previously mentioned, is of sufficient accuracy for most typical CAD systems.
- the norm of the residual vector of the non-linear system of equations is calculated. Accordingly, the norm of such a vector is on the order of 10 "'' , which is not as accurate as desired for most typical .CAD systems. Accordingly, the "No" branch of decision step 124 is -selected, thus repeating steps 106 and 108 (step 104 can be skipped since the tree 1000 was already generated).
- the second iteration of the linear approximation to the nonlinear system of equations yields a residual vector norm on the order of 10 ", ⁇ J , which may still not be as accurate as desired.
- the "No" branch of decision step 124 is selected again, thus repeating steps 106 and 108.
- the third iteration of the linear- approximation to the non-linear system of equations yields a residual vector norm on the order of 10 ⁇ ' 7 , which is within the typical desired accuracy for many typical CAD systems. Accordingly, the "Yes" branch of decision step 124 is selected, ending the computation steps of the process 10.
- the noise factor ⁇ is a design parameter preferably chosen based in part on the desired accuracy of the process 10.
- the updated covariance matrices calculated by the process.40 are maintained as non-singular matrices due to the chosen value of the noise factor ⁇ .
- the matrices may be nearly singular. In fact, if noise factor values which are too small are chosen, the updated covariance matrices would become singular, causing the process 10 to end after a single iteration.
- the goal of the location selection problem is to choose a subset of locations at which to establish facilities, and then t .assign each customer to a facility, in order to reduce total cost. Accordingly, the constraints of such a problem ensure that all customers are supplied from one of the facilities and prevent any customers from being assigned to a location lacking a facility.
- the process described herein may be of particular value in industrial optimization problems for resource distribution, such as, for example, the distribution of gas • from multiple sources to multiple consumers through a pipelined network.
- the gas may be redistributed at each consumer point in the network.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Operations Research (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Architecture (AREA)
Abstract
Description
Claims
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/317,129 US20170140072A1 (en) | 2014-06-17 | 2015-06-17 | Method and system for determining a configuration of a model having a collection of entities and satisfying a set of constraints |
| EP15809893.9A EP3158481A4 (en) | 2014-06-17 | 2015-06-17 | Method and system for determining a configuration of a model having a collection of entities and satisfying a set of constraints |
| CN201580028757.4A CN106415552A (en) | 2014-06-17 | 2015-06-17 | Method and system for determining a configuration of a model having a collection of entities and satisfying a set of constraints |
| RU2016147181A RU2016147181A (en) | 2014-06-17 | 2015-06-17 | METHOD AND SYSTEM FOR DETERMINING THE CONFIGURATION OF THE MODEL CONTAINING A COMPLETE OF ELEMENTS AND MEETING A SET OF RESTRICTIONS |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201462013043P | 2014-06-17 | 2014-06-17 | |
| US62/013,043 | 2014-06-17 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2015193894A1 true WO2015193894A1 (en) | 2015-12-23 |
Family
ID=54934955
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IL2015/050613 Ceased WO2015193894A1 (en) | 2014-06-17 | 2015-06-17 | Method and system for determining a configuration of a model having a collection of entities and satisfying a set of constraints |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20170140072A1 (en) |
| EP (1) | EP3158481A4 (en) |
| CN (1) | CN106415552A (en) |
| RU (1) | RU2016147181A (en) |
| WO (1) | WO2015193894A1 (en) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10657180B2 (en) * | 2015-11-04 | 2020-05-19 | International Business Machines Corporation | Building and reusing solution cache for constraint satisfaction problems |
| EP3394745B1 (en) * | 2015-12-22 | 2023-01-25 | Telefonaktiebolaget LM Ericsson (publ) | Semantic weaving of configuration fragments into a consistent configuration |
| CN111198670B (en) | 2018-11-20 | 2021-01-29 | 华为技术有限公司 | Method, circuit and SOC for performing matrix multiplication |
| CN111985086B (en) * | 2020-07-24 | 2024-04-09 | 西安理工大学 | A community detection method integrating prior information and sparse constraints |
| CN112328194A (en) * | 2020-09-18 | 2021-02-05 | 广州中望龙腾软件股份有限公司 | Drawing parallel display method, intelligent terminal and storage device |
| CN115048685B (en) * | 2022-06-24 | 2025-08-01 | 中电信数智科技有限公司 | RREF-based video layout method and system |
| US20240078222A1 (en) * | 2022-09-02 | 2024-03-07 | Crowdstrike, Inc. | Selective Addition of Datum to a Tree Data Structure |
| CN116450895A (en) * | 2023-04-13 | 2023-07-18 | 金蝶软件(中国)有限公司 | Entity management method and device, electronic equipment and storage medium |
| US12568102B2 (en) | 2024-03-29 | 2026-03-03 | Crowdstrike, Inc. | System and method for timing-based network entity resolution |
| CN118606063B (en) * | 2024-07-01 | 2025-03-21 | 湖南迈曦软件有限责任公司 | An efficient automatic multi-substructure out-of-core parallel computing method |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6063126A (en) * | 1997-12-04 | 2000-05-16 | Autodesk, Inc. | Modeling system having constraint solvers |
| US6629065B1 (en) * | 1998-09-30 | 2003-09-30 | Wisconsin Alumni Research Foundation | Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments |
| WO2007002799A1 (en) * | 2005-06-29 | 2007-01-04 | Lightspeed Logic, Inc. | Methods and systems for placement |
| US20070007382A1 (en) * | 2005-04-08 | 2007-01-11 | Charles-Andre De Hillerin | Solver for a restrained deformable system with released degrees of freedom |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8345043B2 (en) * | 2007-04-13 | 2013-01-01 | Autodesk, Inc. | Solving networks of geometric constraints |
| US20140088925A1 (en) * | 2012-09-26 | 2014-03-27 | Siemens Product Lifecycle Management Software Inc. | Systems and methods for computing solutions of geometric constraint equations of computer-implemented virtual models |
-
2015
- 2015-06-17 EP EP15809893.9A patent/EP3158481A4/en not_active Withdrawn
- 2015-06-17 CN CN201580028757.4A patent/CN106415552A/en active Pending
- 2015-06-17 WO PCT/IL2015/050613 patent/WO2015193894A1/en not_active Ceased
- 2015-06-17 US US15/317,129 patent/US20170140072A1/en not_active Abandoned
- 2015-06-17 RU RU2016147181A patent/RU2016147181A/en not_active Application Discontinuation
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6063126A (en) * | 1997-12-04 | 2000-05-16 | Autodesk, Inc. | Modeling system having constraint solvers |
| US6629065B1 (en) * | 1998-09-30 | 2003-09-30 | Wisconsin Alumni Research Foundation | Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments |
| US20070007382A1 (en) * | 2005-04-08 | 2007-01-11 | Charles-Andre De Hillerin | Solver for a restrained deformable system with released degrees of freedom |
| WO2007002799A1 (en) * | 2005-06-29 | 2007-01-04 | Lightspeed Logic, Inc. | Methods and systems for placement |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP3158481A4 * |
Also Published As
| Publication number | Publication date |
|---|---|
| RU2016147181A (en) | 2018-06-04 |
| CN106415552A (en) | 2017-02-15 |
| RU2016147181A3 (en) | 2018-06-04 |
| EP3158481A1 (en) | 2017-04-26 |
| EP3158481A4 (en) | 2017-07-12 |
| US20170140072A1 (en) | 2017-05-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2015193894A1 (en) | Method and system for determining a configuration of a model having a collection of entities and satisfying a set of constraints | |
| Granadeiro et al. | A general indirect representation for optimization of generative design systems by genetic algorithms: Application to a shape grammar-based design system | |
| Papalambros | The optimization paradigm in engineering design: promises and challenges | |
| Hofmeyer et al. | Coevolutionary and genetic algorithm based building spatial and structural design | |
| Courard et al. | Integration of PGD-virtual charts into an engineering design process | |
| CN108875138A (en) | Consider the structure optimization of the increasing material manufacturing part of manufacture initiation state | |
| Pugnale et al. | Morphogenesis and structural optimization of shell structures with the aid of a genetic algorithm | |
| Wang et al. | PR-ELM: Parallel regularized extreme learning machine based on cluster | |
| Kirby | Fast simplicial finite element algorithms using Bernstein polynomials | |
| de Bustos et al. | Optimization of planar mechanisms by using a minimum distance function | |
| Thombre et al. | Developing surrogate models via computer based experiments | |
| CN119416671B (en) | Structural dynamic response calculation method and system based on adaptive physical base network | |
| Aloui et al. | Generation of planar tensegrity structures through cellular multiplication | |
| Wang et al. | Physics-Informed Extreme Learning Machine framework for solving linear elasticity mechanics problems | |
| Carbonell-Márquez et al. | Topological design of compression structures | |
| Burczyński et al. | Intelligent optimal design of spatial structures | |
| Birk et al. | Robust generation of constrained B-spline curves based on automatic differentiation and fairness optimization | |
| Kapsoulis et al. | Evolutionary aerodynamic shape optimization through the RBF4AERO platform | |
| Zheng | An output mapping variable fidelity metamodeling approach based on nested Latin hypercube design for complex engineering design optimization: J. Zheng | |
| WO2017198168A2 (en) | Reduction of parameters in fully connected layers of neural networks by low rank factorizations | |
| CN117454948B (en) | A FP32 model conversion method suitable for domestic hardware | |
| Alimo et al. | Delaunay-based optimization in CFD leveraging multivariate adaptive polyharmonic splines (MAPS) | |
| Marco et al. | Parallel genetic algorithms applied to optimum shape design in aeronautics | |
| Lavaei et al. | Dynamic analysis of structures using neural networks | |
| Bleker et al. | Graph Neural Network Message Passing-Based Structural Form-Finding Using Combinatorial Equilibrium Modelling |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15809893 Country of ref document: EP Kind code of ref document: A1 |
|
| REEP | Request for entry into the european phase |
Ref document number: 2015809893 Country of ref document: EP |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2015809893 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2016147181 Country of ref document: RU Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 15317129 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |

