Generalized configurator using multiple interacting packers and declaratively defined constraint expressions
First Claim
1. A non-rule-based, generalized configurator expert system for generating a a configuration of connected components by solving packing problems through the execution of packing operations, the configurator expert system being customized for a given domain of components by a configurator developer, and operated by a configurator user to generate a configuration solution based on user requests, predetermined component requirements, and connection constraints specified by component definitions, the configurator expert system having a first spreading activation bi-partite graph for storing the component definitions and constraint expressions declaratively specified by the configurator developer, a second spreading activation bi-partite graph for storing instances of components defined in the first spreading activation bi-partite graph interactively selected by the configurator user, and a processing module that can accept requests from the configurator user to configure selected components, match the requests to the component definitions stored in the first spreading activation bi-partite graph, create and connect the instances of the selected components in the second spreading activation bi-partite graph if creation and connection are valid based on the component definitions and prior configurator user requests, and report the configuration resulting from the requests to the configurator user, the non-ruled-based, generalized configurator expert system comprising:
- packing definition means coupled to the processing module for storing and retrieving at least one piece of knowledge relating to the type of packing operations that may be attached to component definitions in the first spreading activation bi-partite graph; and
packing processing means coupled to the processing module, the first spreading activation bi-partite graph, and the second spreading activation bi-partite graph for concurrently performing multiple packing operations to define the connection of selected components to other selected components in the second spreading activation bi-partite graph according to criteria declaratively specified by the configurator developer in constraint expressions stored in the first spreading activation bi-partite graph.
9 Assignments
0 Petitions
Accused Products
Abstract
A generalized configuration expert system for generating a complete, legal, and near-optimal configuration for any complex system consisting of multiple components is disclosed. The present invention allows a developer to specify a configurator framework for solving a particular configuration problem. A user then operates the customized configurator to generate a configuration solution based on the user'"'"'s requests and the system'"'"'s requirements and constraints. The generalized configurator uses declaratively constructed graphs and multiple interacting packing engines. A two-level, bi-partite, spreading activation graph is used as the knowledge representation of the components to be configured and their associated relationships. The invention dynamically manages the interaction of the multiple packer engines to select the appropriate piece of the total configuration problem to work on at any point in time, while still taking into account the other packing problems. The invention provides the ability to declaratively define the constraints used by the packing engines to assure correct configuration results.
57 Citations
29 Claims
-
1. A non-rule-based, generalized configurator expert system for generating a a configuration of connected components by solving packing problems through the execution of packing operations, the configurator expert system being customized for a given domain of components by a configurator developer, and operated by a configurator user to generate a configuration solution based on user requests, predetermined component requirements, and connection constraints specified by component definitions, the configurator expert system having a first spreading activation bi-partite graph for storing the component definitions and constraint expressions declaratively specified by the configurator developer, a second spreading activation bi-partite graph for storing instances of components defined in the first spreading activation bi-partite graph interactively selected by the configurator user, and a processing module that can accept requests from the configurator user to configure selected components, match the requests to the component definitions stored in the first spreading activation bi-partite graph, create and connect the instances of the selected components in the second spreading activation bi-partite graph if creation and connection are valid based on the component definitions and prior configurator user requests, and report the configuration resulting from the requests to the configurator user, the non-ruled-based, generalized configurator expert system comprising:
-
packing definition means coupled to the processing module for storing and retrieving at least one piece of knowledge relating to the type of packing operations that may be attached to component definitions in the first spreading activation bi-partite graph; and packing processing means coupled to the processing module, the first spreading activation bi-partite graph, and the second spreading activation bi-partite graph for concurrently performing multiple packing operations to define the connection of selected components to other selected components in the second spreading activation bi-partite graph according to criteria declaratively specified by the configurator developer in constraint expressions stored in the first spreading activation bi-partite graph. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A non-rule-based, generalized configurator expert system for generating a configuration of components connected to form a computer system by solving packing problems through the execution of packing operations, the configurator expert system being customized for a given computer system configuration domain by a configurator developer, and operated by a configurator user to generate a computer system configuration solution based on user requests, predetermined computer system component requirements, and connection constraints specified by computer system component definitions, the configurator expert system having a first spreading activation bi-partite graph for storing the computer system component definitions and constraint expressions declaratively specified by the configurator developer, a second spreading activation bi-partite graph for storing instances of computer system components defined in the first spreading activation bi-partite graph interactively selected by the configurator user, and a processing module that can accept requests from the configurator user to connect selected computer system components, match the requests to the computer system component definitions stored in the first spreading activation bi-partite graph, create and connect the instances of the selected computer system components in the second spreading activation bi-partite graph if creation and connection are valid based on the computer system component definitions and prior configurator user requests, and for report the computer system configuration resulting from the requests to the configurator user, the configurator expert system comprising:
-
packing definition knowledge base means coupled to the processing module for storing at least one piece of knowledge relating to the type of packing operations that may be attached to the computer system component definitions in the first spreading activation bi-partite graph; and packing processing means coupled to the processing module, the first spreading activation bi-partite graph, and the second spreading activation bi-partite graph for concurrently performing multiple packing operations to define the connection of selected computer system components to other computer system components according to criteria declaratively specified by the configurator developer in constraint expressions stored in the first spreading activation bi-partite graph. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A non-rule-based, generalized computer-based configurator expert system for generating a configuration of connected components by solving packing problems through the execution of packing operations, the configurator expert system being customized for a given configuration domain by a configurator developer, and operated by a configurator user to generate a configuration solution based on configurator user requests, predetermined component requirements and connection constraints specified by component definitions, said non-rule-based, generalized computer-based configurator expert system comprising:
-
an a priori net including component definitions and constraint expressions declaratively specified by the configurator developer, said component definitions being logically coupled to resources implied by the use of said component definitions, said component definitions and said resources being represented as first nodes in a first bi-partite, spreading activation graph; an instance net containing instances of components defined in said a priori net interactively selected by the configurator user, said instances being logically coupled to instances of said implied resources, said instances and said implied resources being represented as second nodes in a second bi-partite graph; a logic engine coupled to said a priori net and said instance net to accept requests from the configurator user to configure selected components, match the configurator user requests to said component definitions in said first bi-partite, spreading activation graph, automatically propagate logical implications of the configurator user requests across as many ones of said first nodes of said first bi-partite, spreading activation graph as are required to build a complete set of connected components fulfilling the configurator user requests by creating and connecting said selected instances of said selected components in said second bi-partite graph only if creation and connection of said selected instances are valid based on said component definitions and previous configurator user requests, validity being determined by analyzing the relationships between nodes inherent in said first bi-partite, spreading activation graph and said second bi-partite graph, and report the configuration resulting from said requests to the configurator user; packing definition knowledge base means responsive to said logic engine for storing at least one piece of knowledge relating to the type of packing operations that may be attached to said items in said a priori net; and packing engine means coupled to said logic engine, said a priori net, and instance net for concurrently performing multiple packing operations to define the connection of said selected components to other selected components according to criteria declaratively specified by the configurator developer in said constraint expressions stored in said instance net. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A non-rule-based, generalized computer-based configurator expert system for generating a configuration of components connected to form a computer system by solving packing problems through the execution of packing operations, the configurator expert system being customized for a given computer system configuration domain by a configurator developer, and operated by a configurator user to generate a computer system configuration solution based on configurator user requests, predetermined computer system component requirements and connection constraints specified by computer system component definitions, said non-rule-based, generalized computer-based expert system comprising:
-
an a priori net including computer system component definitions and constraint expressions declaratively specified by the configurator developer, said computer system component definitions being logically coupled to resources implied by the use of said computer system component definitions, said computer system component definitions and said resources being represented as first nodes in a first bi-partite, spreading activation graph; an instance net containing instances of computer system components defined in said a priori net interactively selected by the configurator user, said instances being logically coupled to instances of said implied resources, said instances and said implied resources being represented as second nodes in a second bi-partite graph; a logic engine coupled to said a priori net and said instance net to accept requests from the configurator user to configure selected computer system components, match the configurator user requests to said computer system component definitions in said first bi-partite, spreading activation graph, automatically propagate logical implications of the configurator user requests across as many ones of said first nodes of said first bi-partite, spreading activation graph as are required to build a complete set of connected computer system components fulfilling the configurator user requests by creating and connecting said selected instances of said selected computer system components in said second bi-partite graph only if creation and connection of said selected instances are valid based on said computer system component definitions and previous configurator user requests, validity being determined by analyzing the relationships between nodes inherent in said first bi-partite, spreading activation graph and said second bi-partite graph, and report the configuration resulting from said requests to the configurator user; packing definition knowledge base means responsive to said logic engine for storing at least one piece of knowledge relating to the type of packing operations that may be attached to said items in said a priori net; and packing engine means coupled to said logic engine, said a priori net, and instance net for concurrently performing multiple packing operations to define the connection of said selected computer system components to other selected computer system components according to criteria declaratively specified by the configurator developer in said constraint expressions stored in said instance net. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A non-rule-based, computer-implemented method for generating a configuration of connected components by using multiple interacting packing processing modules, wherein each component can be described by a component definition, comprising the steps of:
-
(a) declaratively defining components to be configured; (b) representing the component definitions and the resources implied by their use as nodes in a first bi-partite, spreading activation graph, wherein an arc of said first bi-partite, spreading activation graph connects a first selected node representing one of said component definitions to at least one second selected node representing said resources; (c) assigning a packing processing module to a selected node in said first bi-partite, spreading activation graph; (d) accepting a request to connect a selected component from a configurator user; (e) selecting a set of packing processing modules according to the configurator user'"'"'s request; (f) identifying a most important action to implement said request according to each one of said set of selected packing processing modules; (g) assigning numerical weights to said most important action for each selected packing processing module representing how desirable and how constrained said most important action is; (h) comparing said numerical weights assigned by said selected packing processing modules to select one of said selected packing processing module to tentatively perform said most important action by creating and connecting an instance of said selected component and said resources defined in said first bi-partite, spreading activation graph as nodes in a second bi-partite graph; (i) determining whether the configuration represented by said second bi-partite graph is valid according to each packing processing module; (j) making the changes in said second bi-partite graph occurring as a result of the implementation of said most important action permanent if each one of said set of selected packing processing modules approves of said most important action implementation; and (k) reporting the configuration represented by said second bi-partite graph which resulted from said requests to the configurator user. - View Dependent Claims (23, 24, 25)
-
-
26. A non-rule-based, computer-implemented method for generating a configuration of components connected to form a computer system by using multiple interacting packing processing modules, wherein each computer system component can be described by a computer system component definition, comprising the steps of:
-
(a) declaratively defining computer system components to be configured; (b) representing the computer system component definitions and the resources implied by their use as nodes in a first bi-partite, spreading activation graph, wherein an arc of said first bi-partite, spreading activation graph connects a first selected node representing one of said component definitions to at least one second selected node representing said resources; (c) assigning a packing processing module to a selected node in said first bi-partite, spreading activation graph; (d) accepting a request to connect a selected computer system component from a configurator user; (e) selecting a set of packing processing modules according to the configurator user'"'"'s request; (f) identifying a most important action to implement said request according to each one of said set of selected packing processing modules; (g) assigning numerical weights to said most important action for each selected packing processing module representing how desirable and how constrained said most important action is; (h) comparing said numerical weights assigned by said selected processing modules to select one of said selected packing processing module to tentatively perform said most important action by creating and connecting an instance of said selected component and said resources defined in said first bi-partite, spreading activation graph as nodes in a second bi-partite graph; (i) determining whether the computer system configuration represented by said second bi-partite graph is valid according to each packing processing module; (j) making the changes in said second bi-partite graph occurring as a result of the implementation of said most important action permanent if each one of said set of selected packing processing modules approves of said most important action implementation; and (k) reporting the computer system configuration represented by said second bi-partite graph which resulted from said requests to the configurator user. - View Dependent Claims (27, 28, 29)
-
Specification