The AMPL system is a sophisticated modeling tool that supports the entire optimization modeling lifecycle: development, testing, deployment, and maintenance.
By using a high-level representation that represents optimization models in the same ways that people think about them, AMPL promotes rapid development and reliable results.
AMPL integrates a modeling language for describing optimization data, variables, objectives, and constraints; a command language for browsing models and analyzing results; and a scripting language for gathering and manipulating data and for implementing iterative optimization schemes. All use the same concepts and syntax for streamlined application-building.
Broad support for sets and set operators. AMPL models can use sets of pairs, triples, and longer tuples; collections of sets indexed over sets; unordered, ordered, and circular sets of objects; and sets of numbers.
General and natural syntax for arithmetic, logical, and conditional expressions; familiar conventions for summations and other iterated operators.
Automatic handling of linear and convex quadratic problems in continuous and integer variables.
Nonlinear programming features such as initial primal and dual values, user-defined functions, fast automatic differentiation, and automatic elimination of “defined” variables.
Convenient alternative notations for network flows, piecewise-linearities, complementarity conditions, and logical implications.
Interactive command environment with batch processing options. Powerful display commands let you view any model component or expression, browsing on-screen or writing to a file, using automatic formatting or your own preferences.
Powerful scripting language including looping and if-then-else commands. Programs in the AMPL command language can define sophisticated iterative schemes that process input data, repeatedly adjust and solve instances of multiple models, and prepare results for analysis.
Separation of model and data. AMPL models remain concise even as sets and data tables grow. Models may incorporate many kinds of conditions for validity of the data.
Data input and output connections. Concise statements relate the model data and results to the contents of relational data tables.
Available solvers include the most popular and powerful optimization engines:
Linear and convex quadratic solvers for both continuous and mixed-integer problems (CPLEX, Gurobi, Xpress).
Nonlinear solvers for local solution of continuous problems (CONOPT, Ipopt, KNITRO, MINOS, SNOPT) and mixed-integer problems (Bonmin, Couenne, KNITRO).
Hook your own solver to AMPL using our open-source AMPL-solver library.
Supported platforms include Windows, Linux, MacOS, and several Unix-based workstations.
The AMPL book provides a detailed introductory tutorial plus tutorial introductions to all basic and advanced features.
Numerous examples are available including all models and data from the AMPL book as well as a variety of scripts for common iterative schemes.
The AMPL user forum on Google groups is open to the public for searching or posting.