AMPL is a modeling language and computing environment for formulating, solving and analyzing large-scale optimization (mathematical programming) problems. AMPL is designed to simplify the tasks of stating, solving, and generally manipulating mathematical programming problems.AMPL permits stating mathematical programming problem in a notation close to conventional mathematical notation.
The AMPL processor simplifies problems, as discussed in more detail below, but calls on separate solvers to actually solve problems. Solvers obtain information about the problems they solve, including first and, for some solvers, second derivatives, from the AMPL/solver interface library.
AMPL does not solve problems itself, but rather translates them to a form that is easily manipulated with the help of the AMPL/solver interface library.
AMPL can invoke various solvers that use the interface library to obtain information about problem, such as objective function values, constraint bodies, the constraint bounds, gradients, Hessians. After computing a solution, a solver uses the interface library to return solution information, such as optimal primal and dual variable values, to the AMPL processor. AMPL command language facilitates inspecting solutions and other problem data and modifying problems, perhaps to solve a sequence of problems.
One powerful feature of the AMPL is its ability to state problems involving sets of entities without knowledge of the specific values of the sets. This permits separating a model, i.e., a class of optimization problems parameterized by some fundamental sets and parameters , from the data needed to specify a particular problem instance. Models usually involve both fundamental and derived sets and parameters; the derived entities are computed from fundamental entities or previously computed derived ones. The AMPL command language permits changing the values of fundamental entities, in which case derived entities are recomputed as necessary.
.Back to Test Problems Home Page