Optimization, or mathematical programming, refers to choosing the best element from some set of
available alternatives. In the simplest case, this means solving problems in which one seeks to
minimize (or maximize) a real function by systematically choosing the values of real or integer
variables from within an allowed set. The generalization of optimization theory and techniques to
other formulations comprises a large area of applied mathematics. More generally, it means
finding "best available" values of some objective function given a defined domain, including a
variety of different types of objective functions and different types of domains.
This interface defines the input (the optimization problem) and output (the optimization
solution) of an optimization algorithm.