Mathematical programming
Mathematical programming is the study of systems that have the form
- maximize f(x) such that x in A
or
- minimize f(x) such that x in A
where x = (x1, x2, ...,xn) is a vector of real variables, f is a function, and A is the set of allowable values for x.
Such a formulation is called a mathematical program. Values of x that are in A are called feasible solutions. The function f is called the objective function. A feasible solution that maximizes (or minimizes, if that is the goal) the objective function is called an optimal solution.
A great many real-world and theoretical problems may be modeled in this general framework.
Typically, the constraint set A is specified by a number of equations and inequalities with the variable vector x, possibly along with the requirement that certain variables only take on integer values.
Techniques for solving mathematical programs depend on the nature of the objective function and constraint set. The following major subfields exist:
- linear programming studies the case in which the objective function f is linear and the set A is specified using only linear equalities and inequalities
- integer programming studies linear programs in which some or all variables are constrained to take on integer values
- quadratic programming ... ?
- nonlinear programming studies the general case in which the objective or constraints or both contain nonlinear parts
- stochastic programming studies the case in which some of the constraints depend on random variables
Historically, the first term to be introduced was linear programming, which was invented by George Dantzig in the 1940s. The term programming in this context does not refer to computer programming, though computers are used extensively to solve mathematical programs. Instead, programming comes from the use of the term program by the United States military to refer to proposed training and logistics schedules, which were the problems that Dantzig was studying at the time. (Additionally, later on, the use of the term "programming" was apparently important for receiving government funding, as the term "programming" was associated with important high-technology research areas that were deserving of funding.)
In fact, some mathematical programming work had been done previously...(anyone?)
Mathematical programming is one of the primary tools of operations research. Additionally, problems in rigid body dynamics often require mathematical programming techniques, since you can view rigid body dynamics as attempting to solve an ODE on a constraint manifold. (Are there other fields with strong connections?)