Hybrid solver for data-driven analytics
First Claim
1. A computer-implemented method for use in a computer modeling system that includes one or more server computing systems and one or more client computing systems, and wherein a computer architecture is implemented either on a server computing system, a client computing system, or is distributed among one or more server and client computing systems, and wherein the computer architecture includes (1) an authoring component that allows an author to formulate and/or select input, analytics and view data for a model, (2) a pipeline with a data module for accepting the input data, an analytics portion for accepting the analytics data and binding the input data to analytics data for a given model, and then solving for unknown parameters of the given model, and a view module for constructing a composite view to be rendered for the given model using parameters output by the analytics module, and (3) a user interaction component, and wherein the computer-implemented method is used at the analytics module of the pipeline to solve model analytics for a given model, the method comprising:
- receiving at the analytics module of the pipeline;
a plurality of model parameters for a given data model, the data model including model analytics that define a plurality of analytical relations between the plurality of model parameters; and
canonicalized data having a plurality of data fields;
at the analytics module of the pipeline binding one or more of the data fields from the canonicalized data to one or more corresponding model parameters so that, after said binding, at least one or more model parameters that are bound to data fields from the canonicalized data are known, and at least one or more model parameters that remain unbound are unknown;
at the analytics module of the pipeline determining from the known and unknown model parameters at least one or more input variables and at least one or more output variables for a particular solve using the model analytics, and maintaining a dependency graph of which model variables are input model variables and which model variables are output model variables;
at the analytics module of the pipeline coordinating use of a plurality of solvers to solve for the particular solve either (i) symbolically using one or both of a forward solver or a symbolic solver, or (ii) numerically using a numeric solver when the particular solve cannot be solved symbolically, including performing, in order, the following;
based on the dependency graph, determining whether or not the model analytics to be solved for the particular solve can be solved symbolically when using the forward solver to symbolically solve for the one or more output variables, and if so, using the forward solver to symbolically solve for the one or more output variables;
if it is determined that the model analytics for the particular solve cannot be solved symbolically when using the forward solver, based on the dependency graph, determining whether or not the model analytics to be solved for the particular solve can be solved symbolically when using the symbolic solver to algorithmically invert the model analytics so that one or more computable expressions exist for the one or more output variables and when subsequently using the forward solver to symbolically solve for the one or more output variables using the inverted model analytics, and if so, using the symbolic solver to invert the model analytics and using the forward solver to solve for the one or more output variables using the inverted model analytics; and
if it is determined that the model analytics to be solved for the particular solve cannot be solved symbolically using inverted model analytics, using the numeric solver to solve for the one or more output variables using numerical methods.
2 Assignments
0 Petitions
Accused Products
Abstract
A complex solver that is able to solve a diverse variety of model analytics. Upon identifying the various input variable(s) and output variable(s) of the model variables, if a straight forward solve is not to be performed, it is determined whether the model analytics is to be inverted such that a forward solve can be performed. For instance, it might not be known generally, or at least to the solver, how to invert a particular equation of other model analytics. If the model analytics is to be inverted, the model analytics is inverted, and the forward solve is performed. On the other hand, if the inversion of the model analytics is not to be performed, then a numerical analysis solve is performed.
112 Citations
14 Claims
-
1. A computer-implemented method for use in a computer modeling system that includes one or more server computing systems and one or more client computing systems, and wherein a computer architecture is implemented either on a server computing system, a client computing system, or is distributed among one or more server and client computing systems, and wherein the computer architecture includes (1) an authoring component that allows an author to formulate and/or select input, analytics and view data for a model, (2) a pipeline with a data module for accepting the input data, an analytics portion for accepting the analytics data and binding the input data to analytics data for a given model, and then solving for unknown parameters of the given model, and a view module for constructing a composite view to be rendered for the given model using parameters output by the analytics module, and (3) a user interaction component, and wherein the computer-implemented method is used at the analytics module of the pipeline to solve model analytics for a given model, the method comprising:
-
receiving at the analytics module of the pipeline; a plurality of model parameters for a given data model, the data model including model analytics that define a plurality of analytical relations between the plurality of model parameters; and canonicalized data having a plurality of data fields; at the analytics module of the pipeline binding one or more of the data fields from the canonicalized data to one or more corresponding model parameters so that, after said binding, at least one or more model parameters that are bound to data fields from the canonicalized data are known, and at least one or more model parameters that remain unbound are unknown; at the analytics module of the pipeline determining from the known and unknown model parameters at least one or more input variables and at least one or more output variables for a particular solve using the model analytics, and maintaining a dependency graph of which model variables are input model variables and which model variables are output model variables; at the analytics module of the pipeline coordinating use of a plurality of solvers to solve for the particular solve either (i) symbolically using one or both of a forward solver or a symbolic solver, or (ii) numerically using a numeric solver when the particular solve cannot be solved symbolically, including performing, in order, the following; based on the dependency graph, determining whether or not the model analytics to be solved for the particular solve can be solved symbolically when using the forward solver to symbolically solve for the one or more output variables, and if so, using the forward solver to symbolically solve for the one or more output variables; if it is determined that the model analytics for the particular solve cannot be solved symbolically when using the forward solver, based on the dependency graph, determining whether or not the model analytics to be solved for the particular solve can be solved symbolically when using the symbolic solver to algorithmically invert the model analytics so that one or more computable expressions exist for the one or more output variables and when subsequently using the forward solver to symbolically solve for the one or more output variables using the inverted model analytics, and if so, using the symbolic solver to invert the model analytics and using the forward solver to solve for the one or more output variables using the inverted model analytics; and if it is determined that the model analytics to be solved for the particular solve cannot be solved symbolically using inverted model analytics, using the numeric solver to solve for the one or more output variables using numerical methods. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 13, 14)
-
-
9. A computer program product for use in a computer modeling system that includes one or more server computing systems and one or more client computing systems, and wherein a computer architecture is implemented either on a server computing system, a client computing system, or is distributed among one or more server and client computing systems, and wherein the computer architecture includes (1) an authoring component that allows an author to formulate and/or select input, analytics and view data for a model, (2) a pipeline with a data module for accepting the input data, an analytics portion for accepting the analytics data and binding the input data to analytics data for a given model, and then solving for unknown parameters of the given model, and a view module for constructing a composite view to be rendered for the given model using parameters output by the analytics module, and (3) a user interaction component, and wherein the computer program product comprises one or more storage devices containing computer-executable instructions for implementing at the server and/or client computing systems a method used at the analytics module of the pipeline to solve model analytics for a given model, and wherein the method comprises:
-
receiving at the analytics module of the pipeline a plurality of model parameters for a given data model and canonicalized data having a plurality of data fields, wherein the data model includes model analytics that define a plurality of analytical relations between the plurality of model parameters; at the analytics module of the pipeline binding one or more of the data fields from the canonicalized data to one or more corresponding model parameters so that, after said binding, at least one or more model parameters that are bound to data fields from the canonicalized data are known, and at least one or more model parameters that remain unbound are unknown; at the analytics module determining from the known and unknown model parameters at least one or more input variables and at least one or more output variables for a particular solve using the model analytics and maintaining a dependency graph of which model variables are input model variables and which model variables are output model variables; at the analytics module, coordinating use of a plurality of solvers to solve for the particular solve, including performing, in order, the following; (a) determining, based on the dependency graph, whether or not the model analytics to be solved for the particular solve can be solved for symbolically using a forward solver to symbolically solve for the one or more output variables, and if so, using the forward solver to symbolically solve for the one or more output variables; (b) if it is determined that the model analytics for the particular solve cannot be solved symbolically when using the forward solver determining, based on the dependency graph, whether or not the model analytics to be solved for the particular solve can be solved symbolically when using the symbolic solver to algorithmically invert the model analytics so that one or more computable expressions exist for the one or more output variables and when subsequently using the forward solver to symbolically solve for the one or more output variables using the inverted model anal tics and if so using the symbolic solver to invert the model analytics and using the forward solver to solve for the one or more output variables using the inverted model analytics, and (c) if it is determined that the model analytics cannot be solved for symbolically by using the forward solver on the model analytics or by using the forward solver on inverted model analytics, numerically solving for the one or more output variables using numerical methods for the particular solve using a numeric solver; and even though the model parameters received at the analytics module stay the same, changing the identity of the one or more output variables from one solve to the next, depending on availability of the canonicalized data fields to bind to particular model parameters, and then repeating (a), (b) and/or (c), thus allowing what-if scenarios for the composite view of the given model. - View Dependent Claims (10, 11)
-
-
12. A computer program product comprising one or more computer storage devices having thereon one or more computer-executable instructions that are structured such that, when executed by one or more processors of a computer modeling system that includes one or more server computing systems and one or more client computing systems, the computer-executable instructions cause the computer modeling system to instantiate in memory of one or more server and/or client computing systems a computer architecture having a pipeline with a data module for accepting input data for a given data model, and an analytics module for accepting analytics data for the given data model and binding the input data to the analytics data for the given data model, and then solving for unknown parameters of the given data model, and
wherein the analytics module comprises: -
a solver coordination module which contains equations, rules and constraints, and wherein the solver coordination module manages a solve operation using the equations, rules and constraints; a forward solver that is configured to symbolically solve model analytics that are properly presented so as to be forward solvable; a symbolic solver that is configured to invert model analytics so as to be forward solvable using inverted model analytics and the forward solver; and a numeric solver that is configured to numerically solve model analytics using numeric methods; and wherein the computer-executable instructions implement a method performed by the solver coordination module, where the method is comprised of; receiving a plurality of model parameters for a given data model, the data model including model analytics that define a plurality of analytical relations between the plurality of model parameters; receiving canonicalized data having a plurality of data fields; binding one or more of the data fields from the canonicalized data to one or more corresponding model parameters so that, after said binding, at least one or more model parameters that are bound to data fields from the canonicalized data are known, and at least one or more model parameters that remain unbound are unknown; and determining from the known and unknown model parameters at least one or more input variables and at least one or more output variables for a particular using the model analytics, and maintaining a dependency graph of which model variables are input model variables and which model variables are output model variables; coordinating use of the forward solver, the symbolic solver and the numeric solver to solve for the particular solve either (i) symbolically using one or both of the forward solver or the symbolic solver, or (ii) numerically using the numeric solver when the particular solve cannot be solved symbolically, including performing, in order, the following; determining, based on the dependency graph, whether or not the model analytics to be solved for the particular solve can be solved symbolically when using the forward solver to symbolically solve for the one or more output variables, and if so, using the forward solver to symbolically solve for the one or more output variables; if it is determined that the model analytics for the particular solve cannot be solved symbolically when using the forward solver determining, based on the dependency graph, whether or not the model analytics to be solved for the particular solve can be solved symbolically when using the symbolic solver to algorithmically invert the model analytics so that one or more computable expressions exist for the one or more output variables and when subsequently using the forward solver to symbolically solve for the one or more output variables using the inverted model analytics, and if so, using the symbolic solver to invert the model analytics and then using the forward solver to solve for the one or more output variables using the inverted model analytics; and if it is determined that the model analytics cannot be solved symbolically using inverted model analytics and the forward solver, then using the numeric solver to solve for the one or more output variables using numerical methods; and analyzing dependencies based on which model parameters are input model variables and which are output model variables, and updating the dependency graph each time a solve operation is performed using the identity of which model parameters are input parameters so that the solver coordination module manages the order for which output variables is solved using the dependency graph.
-
Specification