AMPL, an acronym for "A Mathematical Programming Language", is an algebraic modeling language for describing and solving highcomplexity problems for largescale mathematical computation (i.e. largescale optimization and schedulingtype problems).^{[1]} It was developed by Robert Fourer, David Gay and Brian Kernighan at Bell Laboratories. AMPL supports dozens of solvers, both open source and commercial, including CBC, CPLEX, FortMP, Gurobi, MINOS, IPOPT, SNOPT, KNITRO, and LGO. Problems are passed to solvers as nl files. AMPL is used by more than a hundred corporate clients. It is also used by government agencies and academic institutions.^{[2]}
One particular advantage of AMPL is the similarity of its syntax to the mathematical notation of optimization problems. This allows for a very concise and readable definition of problems in the domain of optimization. Many modern solvers available on the NEOS^{[3]} server (formerly hosted at the Argonne National Laboratory, currently hosted at the University of Wisconsin, Madison^{[4]}) accept AMPL input. According to the NEOS statistics AMPL is the most popular format for representing mathematical programming problems.
Contents

Features 1

Availability 2

Status history 3

A sample model 4

Solvers 5

See also 6

References 7

External links 8
Features
AMPL features a mixture of declarative and imperative programming styles. Formulation of optimization models takes place through declarative language elements such as sets, scalar and multidimensional parameters, decision variables, objectives and constraints, which allow for a concise description of most problems in the domain of mathematical optimization.
Procedures and control flow statements are available in AMPL for

the exchange of data with external data sources such as spreadsheets, databases, XML and text files

data pre and postprocessing tasks around optimization models

the construction of hybrid algorithms for problem types for which no direct efficient solvers are available.
To support reuse and simplify construction of largescale optimization problems, AMPL allows separation of model and data.
AMPL supports a wide range of problem types, among them:
AMPL invokes a solver in a separate process which has the following advantages:

User can interrupt the solution process at any time

Solver errors do not affect the interpreter

32bit version of AMPL can be used with a 64bit solver and vice versa
Interaction with the solver is done through a welldefined nl interface.
Availability
NEOS input statistics for January 2011.
AMPL is available for many popular 32 and 64bit platforms including Linux, Mac OS X and Windows. The translator is proprietary software maintained by AMPL Optimization LLC. However, several online services exist, providing free modeling and solving facilities using AMPL.^{[3]}^{[6]} A free student version with limited functionality and a free fullfeatured version for academic courses are also available.^{[7]}
AMPL can be used from within Microsoft Excel via the SolverStudio Excel addin.
The AMPL Solver Library (ASL), which allows to read the nl files and provides the automatic differentiation, functionality is opensource. It is used in many solvers to implement AMPL connection.
Status history
This table present significant steps in AMPL history.
Year

Highlights

1985

AMPL was designed and implemented^{[1]}

1990

Paper describing the AMPL modeling language was published in Management Science^{[8]}

1991

AMPL supports nonlinear programming and automatic differentiation

1993

Robert Fourer, David Gay and Brian Kernighan were awarded ORSA/CSTS Prize^{[9]} by the Operations Research Society of America, for writings on the design of mathematical programming systems and the AMPL modeling language

1995

Extensions for representing piecewiselinear and network structures

1995

Scripting constructs

1997

Enhanced support for nonlinear solvers

1998

AMPL supports complementarity problems

2000

Relational database and spreadsheet access

2002

Support for constraint programming^{[5]}

2003

AMPL Optimization LLC was founded by the inventors of AMPL, Robert Fourer, David Gay, and Brian Kernighan. The new company took over the development and support of the AMPL modeling language from Lucent Technologies, Inc.

2005

AMPL Modeling Language Google group opened^{[10]}

2008

Kestrel: An AMPL Interface to the NEOS Server introduced

2012

Robert Fourer, David Gay and Brian Kernighan were awarded the 2012 INFORMS Impact Prize as the originators of one of the most important algebraic modeling languages.^{[11]}

2012

AMPL book becomes freely available online

2013

A new crossplatform integrated development environment (IDE) for AMPL becomes available^{[12]}

A sample model
A transportation problem from George Dantzig is used to provide a sample AMPL model. This problem finds the least cost shipping schedule that meets requirements at markets and supplies at factories.
Dantzig, G B, chapter 3.3 in Linear Programming and Extensions, Princeton University Press, Princeton, New Jersey, 1963.
set Plants;
set Markets;
# Capacity of plant p in cases
param Capacity{p in Plants};
# Demand at market m in cases
param Demand{m in Markets};
# Distance in thousands of miles
param Distance{Plants, Markets};
# Freight in dollars per case per thousand miles
param Freight;
# Transport cost in thousands of dollars per case
param TransportCost{p in Plants, m in Markets} :=
Freight * Distance[p, m] / 1000;
# Shipment quantities in cases
var shipment{Plants, Markets} >= 0;
# Total transportation costs in thousands of dollars
minimize cost:
sum{p in Plants, m in Markets} TransportCost[p, m] * shipment[p, m];
# Observe supply limit at plant p
s.t. supply{p in Plants}: sum{m in Markets} shipment[p, m] <= Capacity[p];
# Satisfy demand at market m
s.t. demand{m in Markets}: sum{p in Plants} shipment[p, m] >= Demand[m];
data;
set Plants := seattle sandiego;
set Markets := newyork Chicago topeka;
param Capacity :=
seattle 350
sandiego 600;
param Demand :=
newyork 325
Chicago 300
topeka 275;
param Distance : newyork Chicago topeka :=
seattle 2.5 1.7 1.8
sandiego 2.5 1.8 1.4;
param Freight := 90;
Solvers
Here is an incomplete list of solvers supported by AMPL:^{[13]}
Solver

Supported problem types

APOPT

mixed integer nonlinear programming

Bonmin

mixed integer nonlinear programming

BPMPD

linear and quadratic programming

CBC

mixed integer programming

CLP

linear programming

CONOPT

nonlinear programming

Couenne^{[14]}

mixedinteger nonlinear programming (MINLP)

CPLEX

linear, quadratic, secondorder cone and mixed integer programming

CPLEX CP Optimizer^{[15]}

constraint programming

FILTER

nonlinear programming

FortMP

linear, quadratic and mixed integer programming

Gecode^{[16]}

constraint programming

Gurobi

linear, quadratic, secondorder cone and mixed integer programming

IPOPT

nonlinear programming

JaCoP^{[17]}

constraint programming

KNITRO

linear, quadratic and nonlinear programming

LGO^{[18]}

global and local nonlinear optimization

LocalSolver^{[19]}

mixed integer nonlinear programming

lp_solve^{[20]}

linear and mixed integer programming

MINOS

linear and nonlinear programming

MINTO

mixed integer programming

MOSEK

linear, mixed integer linear, quadratic, mixed integer quadratic, quadratically constrained, conic and convex nonlinear programming

SCIP

mixed integer programming

SNOPT

nonlinear programming

Sulum^{[21]}

linear and mixed integer programming

WORHP

nonlinear programming

XA

linear and mixed integer programming

Xpress

linear, quadratic and mixed integer linear programming

See also
References

^ ^{a} ^{b}

^

^ ^{a} ^{b}

^

^ ^{a} ^{b}

^

^

^

^

^ http://groups.google.com/group/ampl

^

^

^

^ https://projects.coinor.org/Couenne

^

^

^

^

^

^

^
External links
This article was sourced from Creative Commons AttributionShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, EGovernment Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a nonprofit organization.