System and method for configuring a product
Patent Information
- Application Number
- CN202480085773.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-11-30
- Filing Date
- 2024-11-30
- Publication Date
- 2026-08-28
AI Technical Summary
本公开提出了解决这些性能和可扩展性问题的解决方案
[0013] A method and system for configuring a product are disclosed. This disclosure proposes solutions to these performance and scalability issues. Instead of brute-force methods, this disclosure decomposes the problem into branches and addresses each branch separately, allowing for a scalable solution to identify all valid buildable product configurations.
Smart Images

Figure CN122663598A_ABST
Abstract
Description
[0001] This patent document claims the benefit of Indian Patent Application No. 202331081509, filed on November 30, 2023, which is incorporated herein by reference in its entirety. Technical Field
[0002] This disclosure relates to the field of product data management (PDM), and more particularly to methods and systems for configuring products. Background Technology
[0003] In a Product Data Management (PDM) system, a product is configured using a predefined set of constraints. This set of constraints is also known as a "rule set" or "assertion set." For example, a vehicle's constraint set might include values corresponding to wheel diameter, trim type, transmission type, etc.
[0004] Variant configurations are commonly used when a product has multiple customizable features, such as in industries like manufacturing, automotive, and aerospace. Each feature may have dependencies and / or compatibility requirements with one or more other features. The variant configuration model defines the relationships and constraints arising from such dependencies and / or compatibility requirements.
[0005] In variant configurations, a constructible product configuration refers to a specific combination of features that are valid and can be manufactured or assembled. It is a configuration that satisfies all constraints defined in the variant configuration model.
[0006] When a customer selects different features for a product, the variant configuration system checks whether the combination is buildable. It verifies that the selected features meet all necessary constraints. For example, consider a laptop configuration with options for screen size, processor type, and storage capacity. If the customer selects a 17-inch screen, an Intel i7 processor, and a 500GB hard drive, and these features are allowed based on the defined constraints, then this combination would be considered a buildable product configuration. In short, a buildable product configuration in variant configurations refers to a valid combination of features that conforms to all defined constraints and can be successfully manufactured or assembled.
[0007] Obtaining all buildable product configurations through variant configurations is crucial for effective product management, sales, manufacturing, and customer satisfaction. It provides a comprehensive understanding of available features, supports the decision-making process, and facilitates the efficient production and delivery of customizable products. It significantly contributes to overall product development. By generating all buildable product configurations, the entire range of product features that can be offered to customers can be visualized. This enables sales teams to provide accurate quotes and proposals to customers. They can easily determine the price, availability, and lead time for each buildable configuration. Buildable product configurations serve as the basis for creating product catalogs, manuals, and technical documentation. Documenting all available configurations helps optimize production processes and inventory management. This process also helps product development (R&D) teams understand the feasibility and implications of different product configurations. It helps them identify potential conflicts or challenges associated with specific combinations early on and guides them in optimizing the design and development process.
[0008] In product configuration scenarios, managing numerous potential combinations of product features presents significant challenges. For example, consider a product with 20 configuration options, each with two distinct features. Without any constraints, the total number of combinations is 2^20, or 1,048,576. This vast number of combinations can be challenging to manage effectively. To ensure manageable variants while also achieving market breadth, various constraints are typically applied, covering technical, manufacturing, and business requirements. The next task is to identify all combinations that satisfy these constraints.
[0009] Consider a simpler example of product configuration involving six options (A, B, C, D, E, F), each with two variable characteristics, such as A = {A1, A2}, B = {B1, B2}, and so on. Here, the initial number of combinations without constraints is 2^6, which equals 64. Applying specific product constraints reduces this number. For example, suppose the following constraints are applied: 1. A1 implies B1. 2. A2 implies B2. 3. B2 implies D1. 4. E1 implies F1.
[0010] In such cases, an SMT (Satisfiability Modulus Theory) solver can be employed. The solver creates an SMT model based on product variability and constraints, and then solves the satisfiability problem. Upon satisfaction (SAT), it generates efficient combinations of features, such as... To find additional valid configurations, the solver inverses the current model. And by re-examining satisfiability, another valid model is generated, such as This process is repeated until no other valid configuration exists, at which point the solver returns UNSAT (unsatisfied). For each satisfiability problem, the solver load increases dynamically as new constraints are added to invert each previous configuration, as follows: .
[0011] The addition of such incremental constraints leads to high computational load and performance degradation. For example, extracting the 10th valid combination requires adding 9 inverted constraints, each of which increases the solver's complexity. By the 18th combination, 17 inverted constraints are in place. Thus, as the number of configurations scales, the solver's response time increases significantly, resulting in nonlinear and non-scalable solutions. The current brute-force approach is summarized as follows: (1) obtaining the constraint set and constructing the SMT model; (2) generating the next valid configuration; and (3) rejecting the current model in subsequent computations until the desired number of configurations is reached or UNSAT is achieved.
[0012] However, computational complexity increases with each additional model, leading to an exponential increase in computation time. Therefore, there is a need for systems and methods to achieve scalable and efficient product configurations. Summary of the Invention
[0013] A method and system for configuring a product are disclosed. This disclosure proposes solutions to these performance and scalability issues. Instead of brute-force methods, this disclosure decomposes the problem into branches and addresses each branch separately, allowing for a scalable solution to identify all valid buildable product configurations.
[0014] In one aspect, a method for configuring a product in a Product Data Management (PDM) system is disclosed. The method includes obtaining, by a processor of the PDM system, a plurality of options and one or more constraints defined for the product from a product database, wherein each of the options has one or more variations. The method also includes generating an ordered logical group based on weights associated with each of the options, wherein each of the logical groups comprises an exclusive combination of one or more of the options.
[0015] In an embodiment, the weight of an option is calculated based on one or more constraints associated with the option. The method also includes using a branch-and-bound algorithm to determine one or more buildable configurations based on an ordered logical group and one or more constraints applicable to the option, wherein the applicability of one or more constraints is determined using a solver based on the satisfiability modulus theory.
[0016] In an embodiment, the branch and bound algorithm uses ordered logical groups to generate a search tree comprising nodes, each node having a branch expression indicating a constructible combination of variations conforming to one or more constraints. In this embodiment, the branch and bound algorithm traverses from the root node of the search tree, with the branch expression corresponding to a first node serving as a pseudo-constraint for a second node connected to the first node, wherein in the ordered logical groups, the logical group of the first node precedes the logical group of the second node.
[0017] In addition, the method also includes outputting one or more buildable product configurations on the output device.
[0018] In an embodiment, the method additionally includes configuring the product based on at least one of the buildable product configurations.
[0019] In another aspect, a product data management (PDM) system is disclosed, the PDM system having a processor and an accessible memory coupled to the processor. The memory includes PDM modules in the form of machine-readable instructions that, when executed by the processor, cause the processor to obtain from a product database a plurality of options and one or more constraints defined for a product, wherein each of the options has one or more variations.
[0020] When executed by the processor, the PDM module also causes the processor to generate an ordered logical group based on the weights associated with each of the options, where each of the logical groups includes an exclusive combination of one or more of the options.
[0021] When executed by the processor, the PDM module also enables the processor to use a branch and bound algorithm to determine one or more buildable product configurations based on an ordered logical group and one or more constraints applicable to the options, wherein the applicability of one or more constraints is determined using a solver based on the satisfiability modulus theory.
[0022] When executed by the processor, the PDM module also causes the processor to output one or more buildable product configurations on an output device. In an embodiment, when executed by the processor, the PDM module also causes the processor to configure a product based on at least one of the buildable product configurations.
[0023] In another aspect, a non-transitory computer-readable storage medium storing instructions therein, when executed by a product data management (PDM) system, the instructions causing the PDM system to perform method steps, including: obtaining from a product database a plurality of options and one or more constraints defined for a product by a processor of the PDM system, wherein each of the options has one or more variations; generating an ordered logical group based on the obtained plurality of options according to a weight associated with each of the options, wherein each of the logical group includes an exclusive combination of one or more of the options; determining one or more buildable product configurations using a branch and bound algorithm based on the ordered logical group and one or more constraints applicable to the options, wherein the applicability of the one or more constraints is determined using a solver based on the modular theory of satisfiability; and outputting one or more buildable product configurations on an output device. Attached Figure Description
[0024] A more complete understanding of this disclosure and its accompanying aspects can be obtained by referring to the following description when considered in conjunction with the accompanying drawings: Figure 1 The diagram illustrates a block diagram of a product data management (PDM) system for configuring products according to an embodiment.
[0025] Figure 2 This is a flowchart illustrating an exemplary method for configuring a product in a PDM system according to an embodiment.
[0026] Figure 3 The diagram illustrates, according to an embodiment, the branching heuristic process used when generating a buildable product configuration based on a search tree.
[0027] Figure 4 This is a flowchart illustrating the branch and bound algorithm used in generating buildable product configurations that can be implemented on a search tree, according to an embodiment.
[0028] Figure 5 This is a diagram illustrating the visual branches of the branch-bound algorithm according to an embodiment. Detailed Implementation
[0029] Figure 1 A block diagram of a Product Data Management (PDM) system 100 is illustrated, wherein embodiments can be implemented as, for example, a data processing system specifically configured, by software or otherwise, to perform the processes described herein. The PDM system 100 can be a personal computer, laptop computer, tablet computer, or the like. Figure 1 In the PDM system 100, there are processor 102, accessible memory 104, storage unit 106, input unit 108, display unit 110 and bus 112.
[0030] As used herein, processor 102 refers to any type of computing circuitry, such as, but not limited to, a microprocessor, microcontroller, complex instruction set computing microprocessor, reduced instruction set computing microprocessor, very long instruction word microprocessor, explicit parallel instruction computing microprocessor, graphics processor, digital signal processor, or any other type of processing circuitry. Processor 102 may also include embedded controllers, such as general-purpose or programmable logic devices or arrays, application-specific integrated circuits, single-chip computers, and the like.
[0031] Memory 104 can be volatile or non-volatile memory. Memory 104 can be coupled for communication with processor 102. Processor 102 can execute instructions and / or code stored in memory 104. Various computer-readable storage media can be stored in and accessed from memory 104. Memory 104 can include any suitable element for storing data and machine-readable instructions, such as read-only memory, random access memory, erasable programmable read-only memory, electrically erasable programmable read-only memory, hard disk drive, removable media drive for processing optical discs, digital video discs, floppy disks, magnetic tape cassettes, memory cards, and the like. In this embodiment, memory 104 includes a PDM module 114, which is stored in the form of machine-readable instructions on any of the storage media mentioned above and can communicate with and be executed by processor 102. When executed by processor 102, PDM module 114 causes processor 102 to obtain multiple options and multiple constraints defined for a product from a product database, wherein each of the options has one or more variations, generate an ordered logical group based on the weights associated with each of the options, determine one or more buildable product configurations using a branch and bound algorithm based on the variations of the options in each of the ordered logical groups and one or more constraints applicable to the options, and output one or more product configurations on an output device. Figure 2 The method steps executed by processor 102 to achieve the above functionality are described in more detail.
[0032] Storage unit 106 may be a non-transitory storage medium for storing product database 116. Product database 116 stores one or more predefined constraints for configuring products. Input unit 108 may include an input device capable of receiving input signals (such as a file containing requirement data associated with the product), such as a keypad, touch-sensitive display, camera (such as a camera that receives gesture-based input), etc. Display unit 110 may be a device for displaying a graphical user interface that visualizes a constructible product configuration and / or a multidimensional representation of the geometric model of the configured product. Bus 112 serves as an interconnect between processor 102, memory 104, storage unit 106, input unit 108, and output unit 110.
[0033] Those skilled in the art will understand that Figure 1 The hardware depicted may vary for specific implementations. For example, other peripheral devices (such as optical disc drives and the like), local area network (LAN) / wide area network (WAN) / wireless (e.g., Wi-Fi) adapters, graphics adapters, disk controllers, and input / output (I / O) adapters may be used in addition to or in place of the depicted hardware. The examples depicted are provided for illustrative purposes only and are not intended to imply any architectural limitations of this disclosure.
[0034] The PDM system according to embodiments of this disclosure includes an operating system employing a graphical user interface. The operating system allows multiple display windows to be presented simultaneously in the graphical user interface, each providing an interface to a different application or a different instance of the same application. A cursor in the graphical user interface can be manipulated by a user via a pointing device. The cursor position can be changed and / or events such as clicking a mouse button can be generated to actuate a desired response.
[0035] One of a variety of commercial operating systems may be used, such as a version of Microsoft Windows™, a product of Microsoft Corporation, located in Redmond, Washington. As described, the operating system has been modified or created in accordance with this disclosure.
[0036] The disclosed embodiments provide systems and methods for configuring products.
[0037] Figure 2 This is a process flowchart 200 illustrating an exemplary method of configuring a product in a PDM system 100 according to an embodiment.
[0038] At step 202, multiple options and one or more constraints defined for the product are obtained from the product database. Each option has one or more variations.
[0039] At step 204, an ordered logical group is generated based on the weights associated with each of the options, according to the obtained plurality of options. In one embodiment, the weights of the options are calculated based on multiple constraints. In another embodiment, the weights of the options may be calculated based on other factors besides constraints, such as manually assigned weights. Each of the logical groups includes an exclusive combination of one or more options. In one implementation, the weight associated with each of the options is determined based on the number of constraints associated with each of the options. In another implementation, a hit count associated with each of the options in one or more constraints is calculated. Furthermore, weights are assigned to each of the options based on the hit count and the number of variations associated with the option. Additionally, the options are ranked in ascending order of weight.
[0040] When categorizing options, they are grouped into logical groups such that the theoretical number of combinations of variations corresponding to all options in a logical group does not exceed a predefined threshold, such as 1024. In an embodiment, the threshold is determined based on parameters such as the processor speed and memory available in the PDM.
[0041] At step 206, a branch-and-bound algorithm is used to determine one or more constructible product configurations based on the options in each of the ordered logical groups and one or more constraints applicable to those options. A solver based on Satisfiability Modulus Theory (SMT) is used to determine the applicability of one or more constraints. The SMT-based solver determines the applicability of constraints based on a satisfiability model generated from multiple constraints obtained from a product database. In this embodiment, since the logical groups are ordered as {A, B}, {C, D}, and {E, F}, the logical group {A, B} is considered first to systematically explore the solution space by creating a search tree for each branch. In this embodiment, the branch-and-bound algorithm uses ordered logical groups to generate a search tree comprising nodes, each node having a branch expression indicating a constructible combination conforming to one or more constraints. Specifically, logical groups are used to form the nodes / branches of the search tree. The search tree is a solution space formed based on the variations available for each of the options.
[0042] In the branch and bound algorithm, the search tree is traversed from the root node. The branch expression corresponding to the first node is used as a pseudo-constraint for the second node connected to the first node. In the ordered logical groups, the logical group of the first node precedes the logical group of the second node.
[0043] At step 208, one or more buildable product configurations are output on the display unit 110 of the PDM system 100. In one embodiment, each of the buildable product configurations is output as a multidimensional representation of a product configuration on the graphical user interface of the PDM system. In another embodiment, a product is configured based on at least one of the buildable product configurations.
[0044] Figure 3 This is a flowchart 300 illustrating a branching heuristic for creating a search tree based on options and constraints, according to an exemplary embodiment of the present disclosure. The method begins at step 302.
[0045] For example, a product configuration can have six options: A, B, C, D, E, and F, each with two variations. For instance, option A can have two variations {A1, A2}, B can have two variations {B1, B2}, C can have two variations {C1, C2}, D can have two variations {D1, D2}, E can have two variations {E1, E2}, and F can have two variations {F1, F2}. In other words, each option can take any value from the corresponding set of variations. Therefore, multiple constructible product configurations can be generated based on these options.
[0046] At step 304, a mapping is created between the options and the number of variants associated with each option. In this document, the set of variants can be obtained as: A={A1, A2}, B={B1, B2}, C={C1, C2}, D={D1, D2}, E={E1, E2}, F={F1, F2}.
[0047] The number of variants associated with each of the options is stored in the variable "MaxOptionLoad". In this example, the MaxOptionLoad corresponding to each of options A, B, C, D, E, and F is 2.
[0048] At step 306, iteration is performed through each of the one or more constraints, and a mapping of the options relative to the hit counts of the options in the constraints is created. In this example, the constraints could be as follows: Constraint 1: (That is, A1 can only be paired with B1 in option B, and cannot be paired with B2). Constraint 2: (That is, A2 can only be paired with B2 in option B, and cannot be paired with B1). Constraint 3: (That is, B2 can only be paired with D1 in option D, and cannot be paired with D2); and Constraint 4: (That is, E1 can only be paired with F1 in option F, and cannot be paired with F2).
[0049] The hit count is stored in the variable OptionConstraintLoad. In this example, the constraints associated with option A are constraint 1 and constraint 2; the constraints associated with option B are constraint 1, constraint 2, and constraint 3; the constraint associated with option D is constraint 3; the constraint associated with option E is constraint 4; the constraint associated with option F is constraint 4; and zero constraints are associated with option C. Therefore, the hit counts associated with options A, B, C, D, E, and F are 2, 3, 0, 1, 1, and 1, respectively.
[0050] At step 308, a weight associated with each option is calculated based on the hit count. In this example, the weight is calculated based on the hit count and the number of variants associated with the option. The higher the hit count of an option, the lower its weight. Furthermore, the higher the number of variants in an option, the higher its weight. In this embodiment, the weight of each option is calculated by determining whether the following condition is met: .
[0051] If this condition is met for the option, then the weight of the option (represented by the variable OptionWeight) is set as follows: ; Otherwise, OptionWeight is set to 1.
[0052] At step 310, a hierarchical list of options is generated based on the corresponding OptionWeight values for each option. For ease of explanation, it is assumed that the options are ordered in ascending order of weight as A, B, C, D, E, F. Furthermore, the two variables CurrentBranchLoad and MaxBranchLoad (threshold) are initialized to 1 and 1024, respectively. Additionally, an empty option set is created. Furthermore, each option from the hierarchical option list is iterated through to create an option set (logical group).
[0053] At step 312, determine whether the end of the option list has been reached. If yes, proceed to step 314. Otherwise, proceed to step 318.
[0054] At step 314, if the current option set is not empty, then the current option set is added to the branch option set. Furthermore, the method terminates at step 316.
[0055] At step 318, the current option set is added to the option set created at step 310.
[0056] At step 320, CurrentBranchLoad is updated using the following formula: .
[0057] At step 322, determine whether the following conditions are met: .
[0058] If the condition is not met, step 312 is repeated. If the condition is met, steps 324 and 326 are executed before repeating step 312. In this document, an option set is created such that the number of theoretical combinations of variants corresponding to the options in the option set is less than or equal to a MaxBranchLoad value of 1024.
[0059] At step 324, the current option set is added to the branch option set.
[0060] At step 326, the updated option set is reset to create an empty option set as in step 310.
[0061] In this example, ordered logical groups can be identified as {A, B}, {C, D}, and {E, F}. As can be seen, each logical group includes an exclusive combination of one or more options, and there are no overlapping options between logical groups. It is understood in this paper that, since the options are ordered in ascending order of weight, logical group {A, B} may have the lowest number of variations due to the greater number of constraints imposed on the options, while {C, D} and {E, F} may have a higher number of variations due to the fewer constraints imposed on the options.
[0062] Figure 4 This is a flowchart 400 illustrating the execution of a branch and bound algorithm on a search tree according to an embodiment of the present disclosure.
[0063] The method begins at step 402.
[0064] At step 404, the constraint set used to configure the product is determined. In this example, the constraint set is: Constraint 1: Constraint 2: Constraint 3: Constraint 4: .
[0065] At step 406, the product-related options are grouped into logical groups, as in the earlier reference. Figure 3 The explanation given.
[0066] At step 408, a satisfiability modular theory (SMT) constraint model is constructed based on the constraints obtained at step 402.
[0067] At step 410, the first container is initialized to store the buildable product configuration associated with the product configuration. Furthermore, the two variables BranchIndex and PreviousBranchExpression are initialized to "0" and "null," respectively. In this document, the variable BranchIndex indicates the branch index, and the variable PreviousBranchExpression indicates the previous branch expression, i.e., the branch expression corresponding to the previous iteration. The term "branch expression" as used herein refers to a combination of variations. For example, A1 & B1 are branch expressions.
[0068] At step 412, the second container is initialized to store the value of BranchIndex.
[0069] At step 414, the third container is initialized to implement the stored branch expression.
[0070] At step 416, a local constraint set is determined for the current iteration.
[0071] At step 418, it is determined whether the previous branch expression satisfies the constraint set of step 416. If yes, steps 420 to 424 are executed. Otherwise, step 426 is executed.
[0072] At step 420, the satisfiability model is determined as a proof that satisfies the constraint set of the second container from step 414. The satisfiability model is an AND-ed combination of the branch expressions corresponding to the previous and current nodes in the traversal from the root node, such as A2&B2. For example, the satisfiability model of C1&D2 can be determined as A2&B2&C1&D2.
[0073] At step 422, the third container of step 412 is updated with the current value of BranchExpression using the satisfiability model from step 416.
[0074] At step 424, pseudo-constraints are added to the local constraint set of step 416 as an inverse satisfiability model. Step 418 is then repeated.
[0075] At step 426, determine whether the branch expression is the last in the set of branch expressions formed by the options. If yes, proceed to step 430. Otherwise, proceed to step 428.
[0076] At step 428, BranchIndex is incremented by 1, and for each BranchExpression in the third container, PreviousBranchExpression in the second container is updated to: .
[0077] In addition, repeat step 412.
[0078] At step 430, each BranchExpression is appended with a PreviousBranchExpression, and the first container is updated.
[0079] At step 432, the first container containing the configuration for building the product is read.
[0080] The method ends at step 434.
[0081] Figure 4 The execution of the method is explained using the following example. For the first iteration, all combinations of the first logical group {A, B} are generated. Here, considering multiple constraints, specifically constraints 1 and 2, the buildable configurations of options A and B are A1&B1 and A2&B2. It must be understood below that each buildable configuration is a combination of a pair of variants, and such buildable configurations form nodes in the search tree. In this example, the nodes corresponding to A1&B1 and A2&B2 form two distinct root nodes of the search tree. For all buildable configurations generated based on the current node, each buildable configuration of the current node is treated as a context expression connected to the next node of the current node. To achieve this, the buildable configuration of the current node (e.g., A1&B1) is considered to include pseudo-constraints of the next node that include the buildable configuration corresponding to the logical group {C, D}. More specifically, buildable configurations are generated for the logical group {C, D}, considering multiple constraints and pseudo-constraints from previous nodes (corresponding to logical group {A, B}). For example, in nodes A1 & B1, according to the constraints Variant B1 can only be paired with D1 and cannot be paired with D2. This forms a pseudo-constraint on the next node from the logical group {C, D}. There is no restriction on option C. Therefore, nodes C1&D1 and C2&D1 are connected to nodes A1&B1. Similarly, for the next node corresponding to the logical group {E, F}, nodes C1&D1 (and C2&D1) are connected due to the constraint. The product configurations that can be constructed are E1&F1, E2&F1, and E2&F2. Similarly, the above logic can also be used to construct a search tree for A2&B2. Figure 5The visual branches of the branch-and-bound algorithm that generates each of the buildable product configurations are illustrated. As can be seen, if the search tree is traversed, starting from the first branch corresponding to the logical group {A, B}, up to the branch connected to the logical group {E, F}, the buildable product configurations are identified based on the values in each traversal from the root node (e.g., A1&B1) to the leaf node (e.g., E1&F1). For example, when traversing the topmost branch, given the buildable product configuration A1&B1&C1&D1&D1&E1&F1, the next buildable product configuration is A1&B1&C1&D1&D1&E2&F1, followed by A1&B1&C1&D1&D1&E2&F2, and so on. Similarly, branches originating from the root node A2&B2 are also generated.
[0082] Advantageously, using the proposed method, the maximum number of pseudo-constraints added to the SMT solver for the sample options and constraints described above is 4. For the first branch of the search tree originating from root nodes A1 & B1, they are: .
[0083] For the same sample data, the maximum number of pseudo-constraints added to the SMT solver in the brute-force method according to the prior art is 18. Advantageously, this disclosure reduces the number of pseudo-constraints. Reducing the number of constraints to be inverted during runtime is key to improving scalability and performance using the proposed method. In contrast to the serial execution in the prior art, this disclosure also achieves parallel execution corresponding to each branch.
[0084] Those skilled in the art will recognize that, unless specifically indicated or required by a sequence of operations, certain steps in the process described above may be omitted, performed concurrently or sequentially, or performed in a different order.
[0085] Those skilled in the art will recognize that, for simplicity and clarity, the complete structure and operation of all product data management (PDM) systems suitable for use with this disclosure are not depicted or described herein. Rather, only portions of PDM systems that are unique to this disclosure or necessary for understanding this disclosure are depicted and described. The remaining construction and operation of PDM system 200 may conform to any of the various current embodiments and practices known in the art.
[0086] It should be understood that the systems and methods described herein can be implemented in various forms of hardware, software, firmware, dedicated processors, or combinations thereof. One or more of the embodiments may take the form of a computer program product comprising program modules accessible from a computer-usable or computer-readable medium storing program code for use by or in connection with one or more computers, processors, or instruction execution systems. For the purposes of this description, a computer-usable or computer-readable medium can be any means capable of containing, storing, transmitting, propagating, or transporting a program for use by or in connection with an instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium that itself serves as a signal carrier not included in the definition of a physical computer-readable medium, including semiconductor or solid-state memory, magnetic tape, removable computer floppy disks, random access memory (RAM), read-only memory (ROM), hard disks, and optical disks, such as compact disc read-only memory (CD-ROM), compact disc read / write, and digital versatile discs (DVDs). As is known to those skilled in the art, both the processor and the program code used to implement each aspect of the technology can be centralized or distributed (or a combination of the above).
[0087] List of reference numerals 100 PDM System 102 processor 104 Memory 106 storage units 108 input units 110 Display Unit 112 bus 114 PDM Module 116 Product Database.
Claims
1. A method for configuring a product in a Product Data Management (PDM) system (100), the method comprising: The processor (102) of the PDM system (100) obtains multiple options and one or more constraints defined for the product from the product database (116), wherein each of the multiple options has one or more variations; Based on the weight associated with each of the plurality of options, an ordered logical group is generated according to the obtained plurality of options, wherein each logical group comprises an exclusive combination of one or more of the plurality of options; Based on the ordered logical group and one or more constraints applicable to the plurality of options, a branch and bound algorithm is used to determine one or more buildable product configurations, wherein the applicability of the one or more constraints is determined using a solver based on the satisfiability modulus theory; and Output the one or more buildable product configurations on the output device (HO).
2. The method of claim 1, wherein the weights of the plurality of options are calculated based on the one or more constraints associated with the plurality of options.
3. The method of claim 1, wherein the branch and bound algorithm uses the ordered logical group to generate a search tree including nodes, each node having a branch expression indicating a constructible combination of variations conforming to the one or more constraints.
4. The method of claim 3, wherein in the branch and bound algorithm, traversal is performed from the root node of the search tree, the branch expression corresponding to the first node serves as a pseudo-constraint for the second node connected to the first node, and wherein in the ordered logical groups, the logical group of the first node precedes the logical group of the second node.
5. The method according to claim 1, further comprising: The product is configured based on at least one of the buildable product configurations.
6. A product data management (PDM) system (100), comprising: Processor (102); as well as Accessible memory (104) coupled to the processor (102), wherein the accessible memory (104) includes a PDM module (114) in the form of machine-readable instructions, which, when executed by the processor (102), cause the processor (102) to: Obtain multiple options and one or more constraints defined for the product from the product database (116), wherein each of the multiple options has one or more variations; Based on the weight associated with each of the plurality of options, an ordered logical group is generated according to the obtained plurality of options, wherein each logical group comprises an exclusive combination of one or more of the plurality of options; Based on the ordered logical group and one or more constraints applicable to the options, a branch-and-bound algorithm is used to determine one or more constructible product configurations, wherein the applicability of one or more constraints is determined using a solver based on the satisfiability modulus theory; and Output the one or more buildable product configurations on the output device (110).
7. The PDM system (100) of claim 6, wherein the weights of the plurality of options are calculated based on the one or more constraints associated with the options.
8. The PDM system (100) of claim 6, wherein the branch and bound algorithm uses the ordered logical group to generate a search tree including nodes, each node having a branch expression indicating a constructible combination of variations conforming to the one or more constraints.
9. The PDM system (100) according to claim 8, wherein in the branch and bound algorithm, traversal is performed from the root node of the search tree, the branch expression corresponding to the first node is used as a pseudo-constraint of the second node connected to the first node, and wherein in the ordered logical groups, the logical group of the first node precedes the logical group of the second node.
10. The PDM system (100) according to claim 6, wherein the PDM module, when executed by the processor 104, is further configured to: The product is configured based on at least one of the buildable product configurations.
11. A non-transitory computer-readable storage medium storing instructions that, when executed by a product data management (PDM) system (100), cause the PDM system (100) to: The processor (102) of the PDM system (100) obtains multiple options and one or more constraints defined for the product from the product database (116), wherein each of the multiple options has one or more variations; Based on the weight associated with each of the plurality of options, an ordered logical group is generated according to the obtained plurality of options, wherein each logical group comprises an exclusive combination of one or more of the plurality of options; Based on the ordered logical group and one or more constraints applicable to the options, a branch and bound algorithm is used to determine one or more buildable product configurations, wherein the applicability of the one or more constraints is determined using a solver based on the satisfiability modulus theory; and Output the one or more buildable product configurations on the output device (110).
12. The storage medium of claim 11, wherein the weights of the plurality of options are calculated based on the one or more constraints associated with the options.
13. The storage medium of claim 11, wherein the branch-and-bound algorithm uses the ordered logical group to generate a search tree comprising nodes, each node having a branch expression indicating a constructible combination of variations conforming to the one or more constraints.
14. The storage medium of claim 13, wherein in the branch-and-bound algorithm, traversal is performed from the root node of the search tree, the branch expression corresponding to the first node serves as a pseudo-constraint for the second node connected to the first node, and wherein in the ordered logical groups, the logical group of the first node precedes the logical group of the second node.
15. The storage medium of claim 11, wherein when executed by the PDM system, the instructions are further configured to cause the PDM system to: The product is configured based on at least one of the buildable product configurations.
