Solver (computer science)
Encyclopedia
A solver is a generic term indicating a piece of mathematical software
Mathematical software
Mathematical software is software used to model, analyze or calculate numeric, symbolic or geometric data.-Computer algebra systems:Many mathematical suites are computer algebra systems that use symbolic mathematics. They are designed to solve classical algebra equations and problems in human...

, possibly in the form of a stand-alone computer program
Computer program
A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...

 or as a software library, that 'solves' a mathematical problem. A solver takes problem descriptions in some sort of generic form and calculate their solution. In a solver, the emphasis is on creating a program or library that can easily be applied to other problems of similar type.

Types of problems with existing dedicated solvers include:
  • Linear
    Linear equation
    A linear equation is an algebraic equation in which each term is either a constant or the product of a constant and a single variable....

     and non-linear equations. In the case of a single equation, the "solver" is more appropriately called a root-finding algorithm
    Root-finding algorithm
    A root-finding algorithm is a numerical method, or algorithm, for finding a value x such that f = 0, for a given function f. Such an x is called a root of the function f....

    .
  • Systems of linear equations.
  • Nonlinear systems.
  • Systems of polynomial equations
    Systems of polynomial equations
    A system of polynomial equations is a set of simultaneous equations f1 = 0, ..., fh = 0 where the fi are polynomials in several variables, say x1, ..., xn, over some field k....

    , which are a special case of non linear systems, better solved by specific solvers.
  • Linear and non-linear optimisation
    Optimization (mathematics)
    In mathematics, computational science, or management science, mathematical optimization refers to the selection of a best element from some set of available alternatives....

     problems
  • Systems of ordinary differential equation
    Ordinary differential equation
    In mathematics, an ordinary differential equation is a relation that contains functions of only one independent variable, and one or more of their derivatives with respect to that variable....

    s
  • Systems of differential algebraic equations
  • Logic/satisfiability
    Boolean satisfiability problem
    In computer science, satisfiability is the problem of determining if the variables of a given Boolean formula can be assigned in such a way as to make the formula evaluate to TRUE...

     problems
  • Constraint satisfaction problem
    Constraint satisfaction problem
    Constraint satisfaction problems s are mathematical problems defined as a set of objects whose state must satisfy a number of constraints or limitations. CSPs represent the entities in a problem as a homogeneous collection of finite constraints over variables, which is solved by constraint...

    s
  • Shortest path problem
    Shortest path problem
    In graph theory, the shortest path problem is the problem of finding a path between two vertices in a graph such that the sum of the weights of its constituent edges is minimized...

    s
  • Minimum spanning tree
    Minimum spanning tree
    Given a connected, undirected graph, a spanning tree of that graph is a subgraph that is a tree and connects all the vertices together. A single graph can have many different spanning trees...

     problems
  • Search algorithm
    Search algorithm
    In computer science, a search algorithm is an algorithm for finding an item with specified properties among a collection of items. The items may be stored individually as records in a database; or may be elements of a search space defined by a mathematical formula or procedure, such as the roots...

    s


The General Problem Solver
General Problem Solver
General Problem Solver was a computer program created in 1959 by Herbert Simon, J.C. Shaw, and Allen Newell intended to work as a universal problem solver machine. Any formalized symbolic problem can be solved, in principle, by GPS. For instance: theorems proof, geometric problems and chess...

 (GPS) is a particular computer program created in 1957 by Herbert Simon, J.C. Shaw, and Allen Newell intended to work as a universal problem solver, that theoretically can be used to solve every possible problem that can be formalized in a symbolic system, given the right input configuration. It was the first computer program which separated its knowledge of problems (in the form of domain
Problem domain
A problem domain is the area of expertise or application that needs to be examined to solve a problem. A problem domain is simply looking at only the topics you are interested in, and excluding everything else. For example, if you were developing a system trying to measure good practice in...

 rules) from its strategy of how to solve problems (as a general search engine
Software engine
In computer science, a software engine refers to the core of a computer program. Software engines drive the functionality of the program, and are distinct from peripheral aspects of the program, such as look and feel.- Elucidation :...

).

General solvers typically use an architecture similar to the GPS to decouple a problem's definition from the strategy used to solve it. While the strategy utilized by GPS was a general algorithm with the only goal of completeness, modern solvers tend to use a more specialized approach tailored to the specific problem class which the solver aims for. The advantage in this decoupling is that the solver doesn't depend on the details of any particular problem instance.

For problems of a particular class (e.g., systems of non-linear equations) there are usually a wide range of different algorithms available; sometimes a solver implements multiple algorithms, but sometimes just one.

See also

  • Mathematical software
    Mathematical software
    Mathematical software is software used to model, analyze or calculate numeric, symbolic or geometric data.-Computer algebra systems:Many mathematical suites are computer algebra systems that use symbolic mathematics. They are designed to solve classical algebra equations and problems in human...

     for other types of mathematical software.
  • Problem Solving Environment
    Problem Solving Environment
    A Problem Solving Environment is a specialized computer software for solving one class of problems, combining automated problem-solving methods with human-oriented tools for guiding the problem resolution....

    : a specialized software combining automated problem-solving methods with human-oriented tools for guiding the problem resolution.
  • Satisfiability Modulo Theories
    Satisfiability Modulo Theories
    In computer science, the Satisfiability Modulo Theories problem is a decision problem for logical formulas with respect to combinations of background theories expressed in classical first-order logic with equality...

    for solvers of logical formulas with respect to combinations of background theories expressed in classical first-order logic with equality.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK