Hierarchies
The cost engine algorithm employs a number of hierarchical (that is, tree structured) data structures. The description of the cost engine algorithm in this chapter often refers to visiting the nodes of a hierarchy or traversing a hierarchy. In order to understand the description, it’s important to clearly identify and distinguish among the various types of hierarchies:
GCD hierarchy: generated by GCD extraction, and represented in the aPriori interface in the Geometric Cost Drivers pane. The parent/child relation in this hierarchy usually represents the spatial part-of relation. When the cost engine considers a particular process routing (or process routing/material stock combination), it descends the current part’s GCD hierarchy, choosing an operation sequence for each GCD it visits along the way, and additionally establishing the process-operation hierarchy (see below) by finding a parent process or parent operation for each operation in the chosen sequence (see Operation Assignment).
Templates: defined by the cost model to provide a compact representation of a variety of candidate process routings or operation sequences. Note that a template is different from the routings or sequences that instantiate the template. The cost engine traverses a template during expansion in order to generate instantiations, evaluating template pruning modules along the way (see Process Template Expansion and Pruning).
Template instantiations: generated by template expansion. Each template instantiation is particular process routing or operation sequence. The cost engine performs a traversal of each candidate process routing in order to evaluate each node’s optionality module; it also performs a traversal of each candidate process routing in order to evaluate feasibility and select a machine for each node; and it performs a traversal of each candidate process routing in order cost each process (see Feasibility and Machine Selection and Process Costing). Similarly, the cost engine performs traversals of operation sequences in order to assign parents, evaluate feasibility, select tools, and perform operation costing (see Operation Assignment and Process and Operation Taxonomy).
Process-GCD-operation hierarchy: represented by the Processes, GCDs & Operations tree in the CMWB navigation pane. This hierarchy determines each operation’s associated GCD type, as well as each process and operation’s potential or permissible children in the process-operation hierarchies—see below. This hierarchy (together with the current process routing or parent operation sequence) constrains the assignment of parents in the process-operation hierarchies (see Operation Assignment).
Process-operation hierarchies: generated during descent of the GCD hierarchy—see GCD hierarchy, above. The parent/child relation in this hierarchy usually represents the temporal part-of relation (that is, a child operation is a part of the process or operation represented by the parent, where the child takes up only a part of the time required for the parent procedure). When the cost engine considers a particular process routing (or process routing/material stock combination), before it evaluates the processes’ process taxonomy modules, it costs the operations required to create the current part’s GCDs as part of these processes. When the cost engine costs these operations, it ascends (using post-order, depth first tree traversal) the process-operation hierarchies, evaluating each operation taxonomy module along the way (see Process and Operation Taxonomy).