|
Optimization
problems are problems of the form
| minimize | f(x) |
| subject to | cL ≤ c(x) ≤ cU |
| xL ≤ x ≤ xU , |
where x ∊ ℝn are the variables of the problem,
f : ℝn → ℝ is the objective
function, and
c : ℝn → ℝm
are the constraint functions, which can be either equality or inequality constraints.
The final constraints are explicit bounds on the variables. The vector x represents the
set of design variables of the problem, the objective f models the cost to be minimized or
maximized while the constraints c represent the conditions that acceptable values of the
design variables must satisfy.
In all generality, there are no particular conditions imposed on the objective and
constraint functions — they may be continuous or not, differentiable
or not, defined everywhere or not, stochastic or not, linear or not.
Similarly, the variables may be continous, integer, binary, stochastic, etc…
It often happens however that both academic and real-life problems of the above form
have strong structural properties. For mathematical reasons, numerical algorithms
designed to approach such problems, must make initial assumptions. Problems therefore
come in a variety of forms and it is natural to classify them into categories. For
each category, we find a myriad of specialized algorithms and solvers. We also find
a number of general-purpose algorithms and solvers, designed to approach a wide range
of problems.
For a general-purpose resource, see the
nonlinear
programming FAQ.
|