Next: COSY
Up: Contents
Previous:
ADOL-C
SYNOPSIS:
AMPL is a language and computing environment for working
with mathematical programming problems (i.e., constrained optimization).
AMPL can be viewed as a means of obtaining expression
graphs. Separate C or C++ programs can read expression-graph files
translated by AMPL and evaluate the expressions and their derivatives
for arbitrary purposes. The AMPL/solver interface library has routines
for computing first derivatives by backwards automatic differentiation
(AD); routines for computing Hessians and Hessian-vector products are
forthcoming.
WHOM TO CONTACT:
David M. Gay
Bell Labs, Lucent Technologies
Room 2C-463
600 Mountain Avenue
Murray Hill, NJ 07974-0636
U.S.A.
Tel.: 1-908-582-5623
FAX: 1-908-582-5857
WWW: http://www.cs.bell-labs.com/~dmg
e-mail: dmg@research.bell-labs.com
DOCUMENTS:
- WWW:
- book:
- R. Fourer, D. M. Gay, and B. W. Kernighan,
AMPL: A Modeling Language for Mathematical Programming, ISBN
0-89426-232-7, The Scientific Press (now an imprint of Boyd &
Fraser Publishing Company), 1993.
- papers:
-
D. M. Gay, Automatic differentiation of nonlinear AMPL models,
A. Griewank and G. Corliss (eds.), Automatic Differentiation of
Algorithms: Theory, Implementationand Application, ,SIAM, 1991,
pp. 61--73.
- D. M. Gay, Hooking Your Solver to AMPL,
AT&T Bell Laboratories, Numerical Analysis Manuscript 93--10,
1993; http://www.ampl.com/ampl/hooking.html.
FUNCTIONALITY:
AMPL is both a language and a computing environment for expressing,
solving, and analyzing mathematical programming problems (minimizing or
maximizing a function of decision variables, subject to constraints on
the variables). AMPL does not solve problems by itself. Instead, it
translates problems to a sparse matrix (for the linear parts of constraints
and objectives) and expression graphs (for the nonlinear parts),
and invokes separate solver programs, which compute solutions (if they
can) and return them to AMPL for possible further manipulation.
A library of routines for interfacing solvers with AMPL is available
from netlib (see below), as are examples and a report,
``Hooking Your Solver to AMPL'', that discusses various details.
The solver interface library offers routines that compute first
derivatives of nonlinear expressions by backward automatic
differentiation (AD). We intend to augment the solver interface
library with routines that recognize partially separable structure and
compute Hessian matrices (second derivatives) and Hessian times vector
products; this is work in progress.
AMPL can be viewed as a means of obtaining expression graphs. AMPL
passes problems to solvers by writing files, and it is easy to use
the solver interface routines in C or C++ programs that read AMPL
expression files and evaluate the expressions and their derivatives
for arbitrary purposes. It is also possible to convert the expression
files into C or Fortran subroutines that evaluate the expressions and
their derivatives. Source for a program, nlc, that makes this
conversion, is available from netlib.
AVAILABILITY:
AMPL and modeling are described in detail in the AMPL book,
details of which appear above. An MS-DOS student version of
AMPL accompanies the book, and the Web pages shown above
have pointers to vendors of commercial versions of AMPL that
run on various platforms. The AMPL/solver interface routines
are freely available from netlib. For details, send
the e-mail message
send readme from ampl
to netlib@research.bell-labs.com.
This material is also available at
ftp://netlib.bell-labs.com/netlib/ampl
and its subdirectories.
Next: COSY
Up: Contents
Previous:
ADOL-C