Legal claims defining the scope of protection, as filed with the USPTO.
1. A system to be executed within one or more processing devices to provide a framework for facilitating adoption of a plurality of solvers, the system comprising: a modeling language translator embedded in the framework for receiving a model defined in a particular modeling language and outputting the model defined in a second modeling language; a plurality of solvers for solving a problem as defined by a model; an application program interface for interfacing with any of the plurality of solvers; a data binder for binding either modeling input to a data source or modeling output to a data sink, or for binding both the modeling input to the data source and the modeling output to the data sink; and a parallel solver scheduler for analyzing the model, decomposing the model into a plurality of sub-models of the model, providing respective ones of the sub-models to respective ones of the plurality of solvers that are well-suited for solving respective problems represented by the respective ones of the sub-models, launching the respective ones of the plurality of solvers as multiple parallel threads, and collecting respective produced solutions from the respective ones of the plurality of solvers, wherein the particular modeling language is a common-language-specification compliant modeling language that ensures interoperability by defining a set of features that solver developers can rely on to be available.
2. The system of claim 1 , wherein the particular modeling language is a type safe modeling language, capable of discovering errors at runtime when a data item has a value inconsistent with a type of the data item, or when a data item that is input or output is inconsistent with a type of the data item.
3. The system of claim 1 , wherein the second modeling language includes an intermediate format.
4. The system of claim 1 , wherein the second modeling language includes Mathematical Programming System.
5. The system of claim 4 , further comprising: a solver selector for automatically analyzing a model and determining a well-suited type of one of the plurality of solvers to select to solve a problem defined by the analyzed model.
6. The system of claim 5 , further comprising: a solver scheduler for providing the model to the one of the plurality of selected solvers of the well-suited type, launching the one of the selected solvers, and collecting a produced solution.
7. A tangible machine-readable storage medium having instructions recorded thereon for at least one processor, the instructions comprising: instructions for providing a facility for specifying a model associated with a problem, the facility providing for the specifying of the model via a common-language-specification-compliant modeling language, an intermediate format, and a standardized application program interface, the common-language-specification-compliant modeling language ensuring interoperability by defining a set of features that solver developers can rely on to be available; instructions for providing a facility for translating the specified model in the common-language-specification-compliant modeling language to the intermediate format; instructions for providing the model to one of a plurality of solvers for solving the problem, the model being provided to the one of the plurality of solvers as input in the intermediate format; and instructions for collecting a solution produced by the one of the plurality of solvers and reporting a result.
8. The tangible machine-readable storage medium of claim 7 , wherein the instructions further comprise: instructions for providing a facility for binding either modeling input to a data source or modeling output to a data sink, or for binding both the modeling input to the data source and the modeling output to the data sink.
9. The tangible machine-readable storage medium of claim 7 , wherein the instructions further comprise: instructions for binding a parameter for a model to a data source; and instructions for binding a decision from a model to a data sink.
10. The tangible machine-readable storage medium of claim 7 , wherein the instructions for providing the model to one of a plurality of solvers further comprise: instructions for providing the one of the plurality of solvers with configuration information according to one or more specified directives, the one or more specified directives providing at least one hint to the one of the plurality of solvers regarding how to configure the one of the plurality of solvers to solve a problem.
11. The tangible machine-readable storage medium of claim 7 , wherein the instructions further comprise: instructions for simulating the solution to determine a sensitivity of the model with respect to specified constraints and decisions from the one of the plurality of solvers.
12. The tangible machine-readable storage medium of claim 7 , wherein the instructions further comprise: instructions for performing a post-optimality analysis and producing a sensitivity report that provides information regarding sensitivity of the solution to change.
13. A processing device comprising: at least one processor; and a memory connected to the processor, the memory comprising: instructions for transforming statements in a common-language-specification compliant modeling language, for defining a model, to an intermediate format, the common-language-specification compliant modeling language ensures interoperability by defining a set of features that solver developers can rely on to be available, instructions for providing the intermediate format, defining a model, to a solver, instructions for providing a standardized application program interface for creating and defining a model, instructions for binding modeling input to a data source, instructions for binding modeling output to a data sink, and instructions for reporting a solution produced by a solver.
14. The processing device of claim 13 , wherein the memory further comprises: instructions for analyzing a model and decomposing the model into a plurality of sub-models, instructions for providing respective ones of the sub-models to respective ones of a plurality of solvers well-suited for solving respective problems represented by the respective ones of the sub-models, and instructions for launching the respective ones of the plurality of solvers as multiple parallel threads over a plurality of processors.
15. The processing device of claim 14 , wherein the memory further comprises: instructions for collecting results from the respective ones of the plurality of solvers, and instructions for presenting a report including information regarding the collected results.
16. The processing device of claim 13 , wherein the memory further comprises: instructions for providing a model from a spreadsheet application, and wherein the instructions for binding modeling output to a data sink include instructions for binding the modeling output to one or more cells of a spreadsheet of the spreadsheet application.
17. The processing device of claim 13 , wherein the memory further comprises: instructions for automatically configuring individual solvers based on one or more provided directives, the one or more provided directives providing at least one hint to the individual solvers regarding how to configure the individual solvers to solve a problem.
18. The processing device of claim 13 , wherein the instructions for binding modeling output to a data sink further comprise: instructions for automatically and declaratively binding the modeling output to the data sink.
19. The system of claim 1 , wherein the modeling input includes at least one parameter and the modeling output includes at least one decision.
20. The system of claim 1 , further comprising: a directive processor for processing one or more directives, the one or more directives providing one or more hints, to one of the plurality of solvers regarding how to configure the one of the plurality of solvers to solve the problem.
Unknown
September 11, 2012
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.