AMPL is one of several optimization modeling systems that are designed around specialized algebraic modeling languages. These languages employ adaptations of familiar mathematical notation to describe optimization problems as
- the minimization or maximization of algebraic expressions in numerical decision variables,
- subject to constraints expressed as equalities or inequalities between algebraic expressions in the decision variables.
Advanced interpreters and interfaces for these languages provide support for simplifying and analyzing models. Some also provide language extensions for describing algorithmic schemes that attack difficult problems by alternately solving interrelated subproblems.
Some of the other commercially distributed algebraic modeling languages are:
- AIMMS, providing a graphical application development environment and a GAMS compatibility mode supplementing its own language.
- GAMS, one of the first such languages, now widely used in a number of industries.
- LINGO, a more powerful sibling of the LINDO language widely used in elementary instruction.
- MPL, notable for its associated graphical interface and database links.
AMPL is designed to combine and extend the expressive abilities of these languages, while remaining easy to use for elementary applications. AMPL is particularly notable for the naturalness of its syntax and for the generality of its set and indexing expressions.
AMPL provides strong support for validation, verification and reporting of optimal solutions, through numerous alternatives for presenting data and results. AMPL’s extensive preprocessing routines can automatically carry out transformations that serve to reduce problem size, convert piecewise-linearities to linear terms, and substitute out selected variables.
AMPL is further distinguished by its continuing development to serve users’ needs. Recent additions include looping and testing constructs for writing executable scripts in the AMPL command language, and facilities for defining and working with several interrelated subproblems. Numerous commands have also been added for producing diagnostic reports and custom-formatted tables.
There are also many optimization modeling systems based on representations other than algebraic modeling languages. Popular alternative forms include:
- block-schematic diagrams, which depict a linear constraint matrix as a collection of structured submatrices (or blocks).
- activity specifications, which describe a model in terms of activities (variables) and their effects (constraints) on inputs and outputs.
- netforms, which use graph or network diagrams to depict models involving flows and allocations.
Each of these has special advantages for certain classes of problems. In contrast, an algebraic modeling language such as AMPL is more general. It is the most natural form for many classes of problems, and is one of the most natural forms for an even broader variety of problem classes.