System and method for configuring a product

The method remodels constraints into equivalence and implies relations to simulate sequential behavior in declarative solvers, addressing constraint violations and enabling efficient product configuration with simultaneous evaluation and seamless constraint addition.

WO2026122713A1PCT designated stage Publication Date: 2026-06-11SIEMENS INDUSTRY SOFTWARE INC
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
SIEMENS INDUSTRY SOFTWARE INC
Filing Date
2025-12-03
Publication Date
2026-06-11

AI Technical Summary

Technical Problem

Declarative solvers struggle to handle sequential constraint processing in product configuration systems, leading to constraint violations due to conflicting variable assignments within feature families, and existing methods require modification of existing constraints when adding new sequential constraints.

Method used

A method and system that remodels original constraints into equivalence and implies relations, allowing declarative solvers to simulate sequential behavior by identifying sequence groups and assigning sequential processing priorities, enabling simultaneous constraint evaluation without modifying existing constraints.

Benefits of technology

Enables efficient and deterministic product configuration by processing sequence groups simultaneously, maintaining the advantages of declarative solvers while honoring sequential constraints, and allowing seamless addition of new constraints without altering existing ones.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2025057958_11062026_PF_FP_ABST
    Figure US2025057958_11062026_PF_FP_ABST
Patent Text Reader

Abstract

A method and Product Data Management (PDM) system for configuring a product are disclosed. The PDM system is configured for obtaining a plurality of original constraints from a source. Further, a plurality of sequence groups is identified from the plurality of original constraints, wherein constraints within each sequence group of the plurality of sequence groups have relative sequential effects on each other. Further, each constraint within each sequence group is remodeled to a modified expression suitable for processing using a declarative solver. The modified expression is indicative of a sequential processing priority for the constraint within the sequence group. The sequence groups are processed simultaneously, using the declarative solver, to determine one or more valid product configurations. Each constraint is processed based on the respective sequential processing priority within the corresponding sequence group. The one or more valid product configurations are outputted on an output unit.
Need to check novelty before this filing date? Find Prior Art

Description

SYSTEM AND METHOD FOR CONFIGURING A PRODUCT

[0001] The present patent document claims the benefit of Indian Patent Application No. 202411096581, filed December 6, 2024, which is hereby incorporated by reference in its entirety.TECHNICAL FIELD

[0002] The present disclosure relates to the field of Product Data Management (PDM), and more particularly to a method and system for configuring a product.BACKGROUND

[0003] Products in Automotive and Aerospace industries build valid configuration orders using variant configuration systems. A variant configuration defines variability as families and features and their relationships as constraints. In variant configuration systems, declarative solvers satisfy constraints by evaluating all constraints simultaneously. Imperative solvers evaluate constraints sequentially and may require multiple iterations to generate expanded orders. Declarative solvers determine constraint satisfaction during initial evaluation. However, declarative solvers have limitations when processing business rules that require sequential constraint evaluation. In declarative solvers, all constraints are evaluated simultaneously according to the declarative paradigm, which creates conflicts when sequential priority among constraints are maintained.

[0004] Known approaches to address sequential constraint requirements in declarative solvers involve negating conditions of prior sequence constraints in subsequent constraints. This approach requires explicit addition of negations of prior sequence constraints' conditions to current sequence constraints' conditions. Such approaches require modification of all subsequent constraints in the sequence when adding new intermediate constraints or modifying existing constraint conditions.

[0005] Current implementations, such as those used in commercial SMT solvers, lack methods to satisfy sequential constraint requirements using declarative solvers where constraint addition does not require modification of existing constraints.

[0006] For example, consider the following product configurator variability:Table 1: Product Configurator VariabilityTable 2: Constraints to define relations on variability from Table 1

[0007] For example, if the input is Luxury, the expected order is ‘Luxury and Electric and X40 and Automatic.’

[0008] FIG. 1 A shows a Graphical User Interface (GUI) 102 indicating the execution flow with an imperative solver for the above example. In the imperative solver, constraints (#1 - #8) are processed sequentially based on a predefined sequence order, requiring multiple iterations to generate the final order. For instance, starting with the input ‘Luxury,’ the imperative solver processes constraints from top to bottom, iterating through each constraint to build the order.

[0009] FIG. IB shows a Graphical User Interface (GUI) 104 indicating the execution flow with a declarative solver for the above example. In the declarative solver, all the constraints (#1 - #8) are considered enforcing mutually exclusive features of ‘Engine’ family together, thereby resulting in a violation. A solver may be expected to honor the sequence of constraints to generate a valid order configuration.

[0010] Transitioning from an imperative solver system to a declarative solver systemrepresents a significant paradigm shift, especially for large Original Equipment Manufacturers or legacy users. The challenge lies in supporting sequential constraints within a declarative solver framework without losing its inherent advantages.

[0011] There exists a technical problem in declarative constraint processing where simultaneous evaluation of sequential constraints generates constraint violations due to conflicting variable assignments within feature families. In light of the above, there exists a need for an improved system and method for product configuration that combines the efficiency of declarative solvers with support for sequential constraint processing.SUMMARY

[0012] A method and system for configuring a product using a declarative solver is disclosed. This disclosure addresses the technical problem where declarative solvers, despite their advantages in simultaneous constraint evaluation, struggle to handle business rules that require sequential constraint processing. Instead of requiring modification of existing constraints when adding new sequential constraints, the disclosure remodels original constraints into equivalence and implies relations, allowing the declarative solver to simulate sequential behavior while preserving its inherent advantages.

[0013] In an aspect, a method for configuring a product using a declarative solver is disclosed. The method includes obtaining, by a processor, a plurality of original constraints for sequential processing from a source.

[0014] The method further includes identifying, by the processor, a plurality of sequence groups from the plurality of original constraints, wherein the constraints within each of the plurality of sequence groups have relative sequential effects on each other. In an embodiment, the plurality of sequence groups is dynamically identified based on a predefined logic.

[0015] The method further includes remodeling, by the processor, each of the constraints within each of the sequence groups to a modified expression suitable for processing using a declarative solver, wherein the modified expression is indicative of a sequential processing priority for the constraint within the sequence group. In an embodiment, each of the original constraints includes an original condition and an original subject. In an embodiment, the modified expression includes a first expression and a second expression, wherein the first expression includes an equivalence relation between a modified condition determined based on the original condition and a subject expression determined based on the original subject, and wherein the second expression is in the form of an implies relation.

[0016] The method further includes processing, by the processor, the plurality of sequence groups simultaneously, using the declarative solver, to determine one or more buildable product configurations, wherein each of the constraints is processed based on the respective sequential processing priority within the corresponding sequence group. In an embodiment, in processing of the sequence groups, at most one constraint in each sequence group is entailed and the remaining constraints in the sequence group are denied. In an embodiment, the sequential processing priority is assigned to the constraints by assigning sequence group orders in a domain range from 1 to n+1, wherein n is the number of constraints within the sequence group, and wherein n+1 serves as a default value for the sequence group when none of the constraints within the sequence group are satisfied.

[0017] Furthermore, the method further includes outputting, by the processor, the one or more buildable product configurations on an output unit.

[0018] In another aspect, a Product Data Management (PDM) system for configuring a product using a declarative solver having a processor and a memory storing instructions in the form of a PDM module is disclosed. The PDM module when executed by the processor, causes the processor to obtain a plurality of original constraints for sequential processing from a source. The PDM module when executed by the processor, further causes the processor to identify a plurality of sequence groups from the plurality of original constraints, wherein the constraints within each of the plurality of sequence groups have relative sequential effects on each other. The PDM module when executed by the processor, further causes the processor to remodel each of the constraints within each of the sequence groups to a modified expression suitable for processing using a declarative solver, wherein the modified expression is indicative of a sequential processing priority for the constraint within the sequence group. The PDM module when executed by the processor, further causes the processor to process the plurality of sequence groups simultaneously, using the declarative solver, to determine one or more buildable product configurations, wherein each of the constraints is processed based on the respective sequential processing priority within the corresponding sequence group. The PDM module when executed by the processor, further causes the processor to output the one or more buildable product configurations on an output unit.

[0019] In yet another aspect, a non-transitory computer-readable storage medium having instructions stored therein, which when executed by a Product Data Management (PDM) system, causes the PDM system to perform method acts including obtaining a plurality oforiginal constraints for sequential processing from a source; identifying a plurality of sequence groups from the plurality of original constraints, wherein the constraints within each of the plurality of sequence groups have relative sequential effects on each other; remodeling each of the constraints within each of the sequence groups to a modified expression suitable for processing using a declarative solver, wherein the modified expression is indicative of a sequential processing priority for the constraint within the sequence group; processing the plurality of sequence groups simultaneously, using the declarative solver, to determine one or more buildable product configurations, wherein each of the constraints is processed based on the respective sequential processing priority within the corresponding sequence group; and outputting the one or more buildable product configurations on an output unit.

[0020] Additional technical features and benefits may be realized through the techniques of the present disclosure. Embodiments and aspects of the disclosure are described in detail herein and are considered a part of the claimed subject matter. For a better understanding, refer to the detailed description and to the drawings.BRIEF DESCRIPTION OF THE DRAWINGS

[0021] A more complete appreciation of the present disclosure and many of the attendant aspects thereof are readily obtained as the same becomes better understood by reference to the following description when considered in connection with the accompanying drawings.

[0022] FIG. 1 A shows an exemplary data flow with an imperative solver, in accordance with prior art.

[0023] FIG. IB shows an exemplary data flow with a declarative solver, in accordance with prior art.

[0024] FIG. 2 illustrates a block diagram of a Product Data Management (PDM) system for configuring a product, in accordance with various embodiments.

[0025] FIG. 3 is a process flowchart illustrating an exemplary method of configuring a product in the PDM system, in accordance with various embodiments.

[0026] FIG. 4A shows a Graphical User Interface showing an exemplary data flow in a declarative solver, in accordance with an embodiment.

[0027] FIG. 4B shows a Graphical User Interface showing another exemplary data flow in a declarative solver, in accordance with an embodiment.DETAILED DESCRIPTION

[0028] FIG. 2 illustrates a block diagram of a Product Data Management (PDM) system200 in which an embodiment may be implemented, for example, as a data processing system particularly configured by software or otherwise to perform the processes as described herein. The PDM system 200 may be a personal computer, a laptop computer, a tablet, and the like. In FIG. 2, the PDM system 200 includes a processor 202, an accessible memory 204, a storage unit 206, an input unit 208, an output unit 210, and a bus 212.

[0029] The processor 202, as used herein, means any type of computational circuit, such as, but not limited to, a microprocessor, microcontroller, complex instruction set computing microprocessor, reduced instruction set computing microprocessor, very long instruction word microprocessor, explicitly parallel instruction computing microprocessor, graphics processor, digital signal processor, or any other type of processing circuit. The processor 202 may also include embedded controllers, such as generic or programmable logic devices or arrays, application specific integrated circuits, single-chip computers, and the like.

[0030] The memory 204 may be volatile memory and non-volatile memory. The memory 204 may be coupled for communication with the processor 202. The processor 202 may execute instructions and / or code stored in the memory 204. A variety of computer-readable storage media may be stored in and accessed from the memory 204. The memory 204 may include any suitable elements 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, a hard drive, a removable media drive for handling compact disks, digital video disks, diskettes, magnetic tape cartridges, memory cards, and the like. In the present embodiment, the memory 204 includes a PDM module 214 stored in the form of machine-readable instructions on any of the above-mentioned storage media and may be in communication to and executed by processor 202. When executed by the processor 202, the PDM module 214 causes the processor 202 to obtain a plurality of original constraints for sequential processing from a source, identify a plurality of sequence groups from the plurality of original constraints, remodel each of the constraints within each of the sequence groups to a modified expression suitable for processing using a declarative solver, processing the sequence groups simultaneously using the declarative solver to determine one or more valid product configuration, wherein each of the constraints is processed based on the respective sequential processing priority within the corresponding sequence group, and outputting the one or more valid product configurations on a display device. Constraints within each sequence group include subjects from a common feature family. Method acts performed by the processor 202 to achieve the above functionality aredescribed in greater detail in FIG. 3. The source may include, but is not limited to, the product database 216, configuration files, constraint repositories, user input interfaces, external databases, rule engines, or combinations thereof. The source provides constraints that define product variability, feature relationships, and sequential processing requirements for variant configuration systems.

[0031] The storage unit 206 may be a non-transitory storage medium which stores a product database 216. The product database 216 stores a set of constraints pre-defined for a product for configuring the product. The input unit 208 may include input devices such as keypad, touch-sensitive display, camera (such as a camera receiving gesture-based inputs), etc. capable of receiving input signal such as a file including requirement data associated with the product. The output unit 210 may be means for displaying a graphical user interface which visualizes valid product configurations and / or a multi-dimensional representation of a geometric model of the configured product. The bus 212 acts as interconnect between the processor 202, the memory 204, the storage unit 206, the input unit 208, and the output unit 210.

[0032] Those of ordinary skill in the art will appreciate that the hardware depicted in FIG. 2 may vary for particular implementations. For example, other peripheral devices such as an optical disk drive and the like, Local Area Network (LAN) / Wide Area Network (WAN) / Wireless (e.g., Wi-Fi) adapter, graphics adapter, disk controller, input / output (I / O) adapter also may be used in addition or in place of the hardware depicted. The depicted example is provided for the purpose of explanation only and is not meant to imply architectural limitations with respect to the present disclosure.

[0033] A PDM system in accordance with an embodiment of the present disclosure includes an operating system employing a graphical user interface. The operating system permits multiple display windows to be presented in the graphical user interface simultaneously with each display window providing an interface to a different application or to a different instance of the same application. A cursor in the graphical user interface may be manipulated by a user through the pointing device. The position of the cursor may be changed and / or an event such as clicking a mouse button, generated to actuate a desired response.

[0034] One of various commercial operating systems, such as a version of Microsoft Windows™, a product of Microsoft Corporation located in Redmond, Washington may be employed if suitably modified. The operating system is modified or created in accordancewith the present disclosure as described.

[0035] Disclosed embodiments provide systems and methods that configure a product.

[0036] Referring now to FIG. 3, the flowchart 300 illustrates the method for determining valid product configurations using a declarative solver.

[0037] At act 302, a plurality of original constraints for sequential processing are obtained from a source. In an embodiment, the source is a product database and the original constraints are obtained from the product database upon receiving an input from a user through an input device. In the present embodiment, each of the original constraints includes an original condition and an original subject. In the automotive product configuration example of Tables 1 and 2, the original constraints received are:• Constraint #1 : original condition ‘Luxury and Electric’ with original subject ‘X40’• Constraint #2: original condition ‘Luxury’ with original subject ‘X60’• Constraint #3: original condition ‘Economy’ with original subject ‘X90’• Constraint #4: original condition ‘Luxury and X40’ with original subject ‘Automatic’• Constraint #5: original condition ‘Luxury’ with original subject ‘Automatic’• Constraint #6: original condition ‘Economy’ with original subject ‘Manual’• Constraint #7: original condition ‘Luxury’ with original subject ‘Electric’• Constraint #8: original condition ‘Economy’ with original subject ‘Petrol’ where the constraint numbers #1, #2 ... #8 indicate the sequence or a priority order of the constraints for sequential processing.

[0038] At act 304, a plurality of sequence groups is identified from the plurality of original constraints. The constraints within each sequence group include subjects from a common feature family. The constraints within each of the plurality of sequence groups have relative sequential effects on each other. In the present example, the sequence groups are Engine Grp, Transmission Grp and Fuel Grp as shown in Table 3. In an embodiment, the plurality of sequence groups may be predefined by the user. In another embodiment, the plurality of sequence groups is dynamically identified based on a predefined logic. For example, the sequence groups may be determined based on specific keywords associated with the original subject, using a rule-based logic. For example, the original subjects ‘Electric’ and ‘Petrol’ may be automatically associated with the Fuel Grp, the original subjects X40, X60 and X90 are associated with ‘Engine Grp,’ and the original subjects Automatic and Manual are associated with Transmission Grp. The sequence group ‘Engine Grp’ contains constraints #1, #2, #3, where priority order #1 is higher than #2, and #2 is higher than #3. ‘TransmissionGrp’ contains constraints #4, #5, #6, where priority order #4 is higher than #5, and #5 is higher than #6. ‘Fuel Grp’ contains constraints #7, #8, where priority order #7 is higher than #8. The grouping of constraints based on sequence groups preserves engineering intent about which constraints have relative effects on sequencing.Table 3: Grouping of constraints based on sequence groups

[0039] At act 306, each of the constraints within each of the sequence groups are remodeled to form a modified expression suitable for processing using a declarative solver. The modified expression is indicative of a sequential processing priority for the constraint within the sequence group. In an embodiment, the modified expression includes a first expression and a second expression. The first expression includes an equivalence relation between a modified condition determined based on the original condition and a subject expression determined based on the original subject. The subject expression sets a sequence group value equal to a sequence group order. In the present example, the sequence group value refers to a variable indicative of the sequence group, such as ‘Engine Grp,’ ‘Transmission Grp’ and ‘Fuel Grp.’ The second expression is in the form of an implies relation.

[0040] For each sequence group, a sequential processing priority is assigned for each of the constraints within the sequence group as shown in Table 4. The sequential processing priority is assigned to the constraints by assigning sequence group orders in a domain range from 1 to n+1, wherein n is the number of constraints within the sequence group, and n+1 serves as a default value for the sequence group when none of the constraints within thesequence group are satisfied. Each value in the domain range [1, n] is assigned as a sequence group order of the constraint in the sequence group based on the priority order associated with the constraint as shown in Table 4. The additional value (n+1) provides that the sequence group variable maintains a valid state even when all constraints within the group are denied due to unsatisfied conditions. For example, in the sequence group ‘Engine Grp,’ value 4 provides that the mandatory requirement is satisfied even when the constraints #1, #2, and #3 are denied.Table 4: Mapping of sequence group orders to constraints

[0041] In the sequence group ‘Engine Grp,’ the domain range is from 1 to 4 as n=3 and n+1 =4. Each value in the domain range serves as a sequence group order for sequence ordering. The sequence group order is further assigned to each constraint within the sequence group. The sequence group order corresponds to the sequential processing priority of the constraint within the sequence group. In the implementation, constraint #1 receives sequence group order 1, Constraint #2 receives sequence group order 2, Constraint #3 receives sequence group order 3, and value 4 remains as the additional maximum value. Similarly, in the sequence group ‘Transmission Grp,’ the domain range is from 1 to 4. Further, the sequence group order is assigned from 1 to 3 for each of the constraints #4, #5 and #6. In this sequence group, Constraint #4 receives sequence group order 1, Constraint #5 receives sequence group order 2, Constraint #6 receives sequence group order 3 and value 4 remains as the additional maximum value. Similarly, in the sequence group ‘Fuel Grp,’ Constraint #7 receives sequence group order 1, Constraint #8 receives sequence group order 2 and value 3 remains as the additional value. The modified condition for a constraint follows the structure:[Original Condition] AND [Sequence Group Value> Sequence Group Order of Prior Constraint]

[0042] In particular, wherein the sequence group comparison condition includes the sequence group variable being greater than a sequence group order of a prior constraint. The term ‘prior constraint’ as used herein refers to constraints preceding the current constraint in a given sequence group that have lower sequential processing priorities (or sequence group orders). The sequence group comparison condition [Sequence Group Value > Order Index of Prior Constraint] is logically equivalent to: not [Sequence Group Value = Sequence Group Order of Prior Constraint]

[0043] Consequently, the prior constraints in the sequence group with lower sequence group orders are automatically denied during processing. When the modified condition is satisfied, it simultaneously activates the current constraint, deactivates the prior constraints in the sequence group and prevents activation of subsequent constraints. In particular, by requiring the sequence group value to be greater than the prior constraint's sequence group order, only one constraint per sequence group may be satisfied at any given time.

[0044] In the present example, the sequence group comparison condition Engine Grp > 1 is logically equivalent to not (Engine Grp = 1), which denies the subject of all prior constraints and to entail the modified condition of constraint #2 and prevents activation of subsequent constraints following Constraint #2.

[0045] The modified condition participates in an equivalence relation:[Modified Condition] = [Sequence Group Value =Current Sequence Group Order],

[0046] For constraint #2 with modified condition Luxury AND (Engine Grp > 1), of a user selects Luxury, it is determined whether Engine Grp > 1 may be satisfied. If yes, it is determined that Engine Grp = 2, and all constraints requiring Engine Grp = 1 or Engine Grp > 3 are denied. Further, the subject X60 is enforced through the implies relation.

[0047] The modified condition structure enables dynamic constraint addition without requiring modification of existing constraints. When inserting a new constraint between existing positions, only the new constraint requires a modified condition. All existing modified conditions remain unchanged. Advantageously, the modified condition integratesseamlessly with commercial SMT solvers due to the use of standard logical operators AND, >, =) without requiring specialized sequential processing capabilities. The declarative solver treats the modified condition as a standard logical expression while achieving sequential behavior through the mathematical relationships.

[0048] For example, for constraint #2, the first expression becomes [Luxury AND (Engine Grp > 1)] = (Engine Grp = 2), where the modified condition is ‘Luxury AND (Engine Grp > 1),’ the subject expression is (Engine Grp = 2) and the equivalence relation (=) provides bidirectional logical relationship. The second expression becomes (Engine Grp = 2) — X60, where the sequence group value (Engine Grp = 2) serves as the condition and ‘X60’ remains as the original subject. The implies relation (— ) enforces the original subject when the family value is satisfied. Table 5 shows the remodeled constraints for the present example.Table 5: Remodeled constraints based on equivalence and implies relationships

[0049] At act 308, the plurality of sequence groups is processed simultaneously, using the declarative solver, to determine one or more valid product configurations. Each of the constraints is processed based on the respective sequential processing priority within the corresponding sequence group. In processing of the plurality of sequence groups, at most one constraint in each sequence group is entailed and the remaining constraints in the sequence group are denied. The term ‘entailment’ means that a constraint or logical statement is true as a logical consequence of the current conditions and relationships in the constraint system. Entailment provides that the system produces deterministic, unambiguous results rather than multiple possible solutions that require additional decision-making. The term ‘entailed’ thus refers to the mathematical certainty that a constraint is true given the logical relationships established through remodeling of the constraints. More specifically, a constraint is said to be satisfied if the constraint may be true without contradiction, and the constraint is entailed when the constraint is logically forced to be true, not merely satisfied or possible. Advantageously, the entailment relationships enable a declarative solver to simulate sequential processing behavior while maintaining simultaneous evaluation capabilities. In other words, the declarative solver determines in one evaluation which constraints may be entailed given the input conditions, rather than testing multiple sequential possibilities. The declarative solver considers the remodeled constraints together for satisfiability and entailment checking, providing that when one constraint in a sequence group is entailed, all others in the same sequence group are automatically denied through the mathematical constraint relationships.

[0050] FIG. 4A shows a GUI 402 showing an exemplary data flow with a declarative solver, if an input from a user indicates the selection ‘Luxury,’ then ‘Luxury = true.’ Further, the declarative solver determines which of the constraints #1 to #8 may be entailed. The evaluation of constraints is ordered based on the sequence group order of respective constraints within the respective sequence groups. Therefore, the evaluation begins by checking Constraint #1, #4 and #7 in view of the respective sequence group orders being 1. Constraint #7, which has the condition ‘Luxury’ and subject ‘Electric, becomes eligible for evaluation because its condition is directly satisfied by the user input. This constraint belongs to the Fuel Grp sequence family and has sequence group order 1. The method transforms this constraint into an equivalence relation [Luxury AND (Fuel Grp > 1)] = [Fuel Grp = 1] and an implies relation [Fuel Grp = 1 ] -> Electric.

[0051] The evaluation of constraint #7 establishes the value ‘Electric’ which creates amathematical dependency chain enabling Constraint #1 to be processed. Constraint #1 requires both Luxury AND Electric as conditions to enforce X40 as the subject. Although this constraint has sequence group order 1 indicating high priority within the Engine Grp, it cannot be mathematically evaluated until both prerequisite conditions become available. The ‘Electric’ value from constraint #7 combined with the user-provided ‘Luxury’ input satisfies the compound condition, enabling the equivalence relation[Luxury AND Electric AND (Engine Grp > 0)] = [Engine Grp = 1], The establishment of [Engine Grp = 1] through Constraint #1 automatically denies Constraint #2 and #3 within the same sequence group through mathematical exclusion. Constraint #2 requires ‘Luxury’ and enforces ‘X60’ with sequence group order 2, while Constraint #3 requires ‘Economy’ and enforces ‘X90’ with sequence group order 3. Mutual exclusion within ‘Engine Grp’ is provided by preventing the ‘Engine Grp’ variable from simultaneously equaling multiple values. When Constraint #1 sets [Engine Grp = l],the mathematical framework inherently denies [Engine Grp = 2] and [Engine Grp = 3] effectively blocking constraints two and three from evaluation.

[0052] The enforcement of ‘X40’ through Constraint #1 creates additional mathematical dependencies for the Transmission Grp constraints. Constraint #4, with condition Luxury AND X40 and subject Automatic, becomes eligible for evaluation because both required conditions are now satisfied. This constraint is processed through the equivalence relation [Luxury AND X40 AND (Transmission Grp > 0)] = [Transmission Grp = 1], which establishes the Transmission Grp variable at value 1 and enforces ‘Automatic’ as the transmission selection.

[0053] The establishment of [Transmission Grp = 1] mathematically excludes constraint #5 and #6 within Transmission Grp. Constraint #5 has condition ‘Luxury’ and subject ‘Automatic’ with sequence group order 2, while Constraint #6 has condition ‘Economy’ and subject ‘Manual’ with sequence group order 3. Although Constraint #5 would be logically satisfied because ‘Luxury’ is true, it remains mathematically blocked because Constraint #4 has claimed the exclusive position within Transmission Grp. The sequence group exclusion mechanism provides that only the constraint with the lowest sequence group order among applicable constraints within each group may succeed, preventing conflicts between constraints that would otherwise compete for the same configuration parameter.

[0054] Constraint #8, which has condition ‘Economy’ and subject ‘Petrol’ remains denied because the user input "Luxury ’ contradicts the required ‘Economy’ condition. Thefuel group maintains Fuel Grp = 1 from constraint #7, which continues to enforce ‘Electric’ as the fuel selection. The mathematical framework prevents Constraint #8 from establishing ‘Fuel Grp = 2’ maintaining consistency throughout the constraint evaluation process.

[0055] The final configuration state demonstrates the effectiveness of the mathematical simulation approach. The user selection ‘Luxury’ results in ‘Electric’ as the fuel selection through constraint #7 with sequence group order 1, ‘X40’ engine through constraint #1 with sequence group order 1, and ‘Automatic’ transmission through Constraint #4 with sequence group order 1. All other constraints are denied either through unsatisfied logical conditions or through sequence group mathematical exclusions based on their sequence group orders. The declarative solver evaluates all the constraints #1 to #8 simultaneously while the mathematical transformation creates the effect of sequential processing according to sequence group order values within the plurality of sequence groups, providing that business rules are honored without requiring iterative evaluation cycles or complex negation structures.

[0056] FIG. 4B shows a GUI 404 displaying an exemplary data flow with a declarative solver, if the user’s input indicates the selection ‘Economy’ then ‘Economy = true.’ Further, the declarative solver determines which of the constraints #1 to #8 may be entailed. In Fuel Grp, only Constraint #8 may be entailed, thereby establishing Fuel Grp = 2, thereby enforcing the fuel selection as ‘Petrol.’ In Engine Grp, only constraint #3 may be entailed because the modified condition Economy AND [Engine Grp > 2] is equivalent to Engine Grp’ = 3, which enforces X90 as the engine selection. Further, in Transmission Grp, constraint #6 may be entailed because the modified condition [Economy and Transmission Grp > 2] which is equivalent to Transmission Grp = 3, thereby enforcing the transmission selection as ‘Manual.’ All other constraints are denied.

[0057] At act 310, the one or more valid product configurations are outputted on an output unit. In an example, the product configuration for a given input is displayed as shown in FIGS. 4 A and 4B in the form of data flows. In another example, one or more multidimensional views of the product is generated based on the one or more valid product configurations. In an embodiment, the one or more valid product configurations are transmitted to a manufacturing execution system for production of the product based on the one or more valid product configurations based on the specific input selected by the user. Advantageously, the valid configuration is generated in a single iteration without requiring sequential processing iterations. For example, with ‘Luxury’ selection, the valid productconfiguration "Luxury AND Electric AND X40 AND Automatic" is generated in one solver iteration, avoiding multiple iterations required by imperative approaches.

[0058] In an advantageous embodiment, the method further includes adding a new original constraint to an existing sequence group without requiring modification of any of the existing constraints in the sequence group. The new constraint is assigned an intermediate sequence group order and remodeled according to the same equivalence and implies relations, as explained earlier. This capability addresses the scalability limitation of prior art approaches. Unlike existing solutions that require modification of all subsequent constraints when adding intermediate constraints, the present disclosure allows seamless insertion of new constraints while maintaining system integrity and preserving existing constraint formulations.

[0059] Advantageously, the present disclosure enables detection of sequential constraint processing through analysis of solver data dumps containing constraint patterns that utilize equivalence relations between integer values and constraint conditions. The proposed algorithm is compatible with commercial off-the-shelf SMT solvers without requiring modification of core solver functionality. The disclosure addresses limitations inherent in both imperative and traditional declarative solvers by implementing sequence groups with defined sequence orders within the declarative solver framework. This approach enables simultaneous evaluation of all constraints while maintaining prioritization of sequential constraints. The constraint modelling algorithm provides that at most one constraint within each sequence group is entailed, thereby avoiding conflicts that would otherwise require negation of lesser priority constraints. The present disclosure provides immediate order validation without iterative processing requirements and maintains scalability for complex business data through simplified authoring and modification processes that do not require changes to other system constraints.

[0060] Those skilled in the art will recognize that, unless specifically indicated or required by the sequence of operations, certain acts in the processes described above may be omitted, performed concurrently or sequentially, or performed in a different order. Those skilled in the art will recognize that, for simplicity and clarity, the full structure and operation of all Product Data Management (PDM) systems suitable for use with the present disclosure is not being depicted or described herein. Instead, only so much of a PDM system as is unique to the present disclosure or necessary for an understanding of the present disclosure is depicted and described. The remainder of the construction and operation of the PDM system200 may conform to any of the various current implementation and practices known in the art.

[0061] It is to be understood that the system and methods described herein may be implemented in various forms of hardware, software, firmware, special purpose processors, or a combination thereof. One or more of the present embodiments may take a form of a computer program product including program modules accessible from computer-usable or computer-readable medium storing program code for use by or in connection with one or more computers, processors, or instruction execution system. For the purpose of this description, a computer-usable or computer-readable medium may be any apparatus that may contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium may be electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation mediums in and of themselves as signal carriers are not included in the definition of physical computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, random access memory (RAM), a read only memory (ROM), a rigid magnetic disk and optical disk such as compact disk readonly memory (CD-ROM), compact disk read / write, and digital versatile disc (DVD). Both processors and program code for implementing each aspect of the technology may be centralized or distributed (or a combination thereof) as known to those skilled in the art.LIST OF REFERENCE NUMERALS200 Product Data Management (PDM) system202 Processor204 Accessible memory206 Storage unit 208 Input unit 210 Output unit 212 Bus 214 PDM module 216 Product database

Claims

CLAIMS1. A computer-implemented method for configuring a product using a declarative solver, the method comprising: obtaining, by a processor, a plurality of original constraints for sequential processing from a source; identifying, by the processor, a plurality of sequence groups from the plurality of original constraints, wherein constraints of the plurality of original constraints within each sequence group of the plurality of sequence groups have relative sequential effects on each other; remodeling, by the processor, each constraint of the constraints within each sequence group of the plurality of sequence groups to a modified expression suitable for processing using the declarative solver, wherein the modified expression is indicative of a sequential processing priority for the respective constraint within the respective sequence group; processing, by the processor, the plurality of sequence groups simultaneously, using the declarative solver, to determine one or more valid product configurations, wherein each constraint of the plurality of original constraints is processed based on the respective sequential processing priority within the corresponding sequence group; and outputting, by the processor, the one or more valid product configurations on an output unit.

2. The method of claim 1, wherein each constraint of the plurality of original constraints comprises an original condition and an original subject.

3. The method of claim 1, wherein the plurality of sequence groups is dynamically identified based on a predefined logic.

4. The method of claim 1, wherein the modified expression comprises a first expression and a second expression, wherein the first expression comprises an equivalence relation between a modified condition determined based on an original condition and a subject expression determined based on an original subject, and wherein the second expression is in a form of an implies relation.

5. The method of claim 4, wherein, in processing of the plurality of sequence groups, at most one constraint in each sequence group of the plurality of sequence groups is entailed and remaining constraints in the respective sequence group are denied.

6. The method of claim 1, wherein the sequential processing priority is assigned to the constraints by assigning sequence group orders in a domain range from 1 to n+1, wherein n is a number of constraints within a respective sequence group of the plurality of sequence groups, and wherein n+1 serves as a default value for the respective sequence group when none of the constraints within the respective sequence group are satisfied.

7. A Product Data Management (PDM) system for configuring a product using a declarative solver, the PDM system comprising: a processor; and a memory storing instructions in a form of a PDM module that, when executed by the processor, cause the processor to: obtain a plurality of original constraints for sequential processing from a source; identify a plurality of sequence groups from the plurality of original constraints, wherein constraints of the plurality of original constraints within each sequence group of the plurality of sequence groups have relative sequential effects on each other; remodel each constraint of the constraints within each sequence group of the plurality of sequence groups to a modified expression suitable for processing using the declarative solver, wherein the modified expression is indicative of a sequential processing priority for the respective constraint within the respective sequence group; process the plurality of sequence groups simultaneously, using the declarative solver, to determine one or more valid product configurations, wherein each constraint of the plurality of original constraints is processed based on the respective sequential processing priority within the corresponding sequence group; and output the one or more valid product configurations on an output unit.

8. The PDM system of claim 7, wherein each constraint of the plurality of original constraints comprises an original condition and an original subject.

9. The PDM system of claim 7, wherein the plurality of sequence groups is dynamically identified based on a predefined logic.

10. The PDM system of claim 7, wherein the modified expression comprises a first expression and a second expression, wherein the first expression comprises an equivalence relation between a modified condition determined based on an original condition and a subject expression determined based on an original subject, and wherein the second expression is in a form of an implies relation.

11. The PDM system of claim 10, wherein, in processing of the plurality of sequence groups, at most one constraint in each sequence group of the plurality of sequence groups is entailed and remaining constraints in the respective sequence group are denied.

12. The PDM system of claim 10, wherein the sequential processing priority is assigned to the constraints by assigning sequence group orders in a domain range from 1 to n+1, wherein n is a number of constraints within a respective sequence group of the plurality of sequence groups, and wherein n+1 serves as a default value for the respective sequence group when none of the constraints within the respective sequence group are satisfied.

13. A non-transitory computer-readable storage medium having instructions stored therein, which, when executed by a Product Data Management (PDM) system, causes the PDM system to: obtain a plurality of original constraints for sequential processing from a source; identify a plurality of sequence groups from the plurality of original constraints, wherein constraints of the plurality of original constraints within each sequence group of the plurality of sequence groups have relative sequential effects on each other;remodel each constraint of the constraints within each sequence group of the plurality of sequence groups to a modified expression suitable for processing using a declarative solver, wherein the modified expression is indicative of a sequential processing priority for the respective constraint within the respective sequence group; process the plurality of sequence groups simultaneously, using the declarative solver, to determine one or more valid product configurations, wherein each constraint of the plurality of original constraints is processed based on the respective sequential processing priority within the corresponding sequence group; and output the one or more valid product configurations on an output unit.

14. The storage medium of claim 13, wherein each constraint of the plurality of original constraints comprises an original condition and an original subject.

15. The storage medium of claim 13, wherein the plurality of sequence groups is dynamically identified based on a predefined logic.

16. The storage medium of claim 13, wherein the modified expression comprises a first expression and a second expression, wherein the first expression comprises an equivalence relation between a modified condition determined based on an original condition and a subject expression determined based on an original subject, and wherein the second expression is in a form of an implies relation.

17. The storage medium of claim 16, wherein, in processing of the plurality of sequence groups, at most one constraint in each sequence group of the plurality of sequence groups is entailed and remaining constraints in the respective sequence group are denied.

18. The storage medium of claim 13, wherein the sequential processing priority is assigned to the constraints by assigning sequence group orders in a domain range from 1 to n+1, wherein n is a number of constraints within a respective sequence group of the plurality of sequence groups, and wherein n+1 serves as a default value for the sequence group when none of the constraints within the sequence group are satisfied.

Citation Information

Patent Citations

  • IN202411096581A