A mathematical program is an optimization problem of the form:
where is a subset of and is in the domain of , and , which map into real spaces. The relations, , , and are called constraints, and is called the objective function.
There are forms that deviate from this paradigm, and it is typically a modeling issue to find an equivalent standard form. Important examples are as follows:
A point is feasible if it is in and satisfies the constraints: , and . A point is optimal if it is feasible and if the value of the objective function is not less than that of any other feasible solution: for all feasible . The sense of optimization is presented here as maximization, but it could just as well be minimization, with the appropriate change in the meaning of optimal solution: for all feasible .
A mathematical program is often extended to indicate a family of mathematical programs over a parameter space, say . This merely involves extending the domain of the functions, , and , and we use the semi-colon to separate the decision variables from the parameters.
We could also have depend on , but the above form generally suffices.
Mathematical programming is the study or use of the mathematical program. It includes any or all of the following:
- Theorems about the form of a solution, including whether one exists;
- Algorithms to seek a solution or ascertain that none exists;
- Formulation of problems into mathematical programs, including understanding the quality of one formulation in comparison with another;
- Analysis of results, including debugging situations, such as infeasible or anomalous values;
- Theorems about the model structure, including properties pertaining to feasibility, redundancy and/or implied relations (such theorems could be to support analysis of results or design of algorithms);
- Theorems about approximation arising from imperfections of model forms, levels of aggregation, computational error, and other deviations;
- Developments in connection with other disciplines, such as a computing environment.
One taxonomy for mathematical programming is by its defining ingredients: