AMPL is a language and system for formulating, solving, and helping
understand mathematical programming problems (of minimizing or
maximizing a function subject to constraints). The AMPL book
explains AMPL in much more detail and provides many examples:
AMPL: A Modeling Language for Mathematical Programming
Robert Fourer (Dept. of Industrial Engineering, Northwestern University)
David M. Gay, Brian W. Kernighan (Bell Laboratories)
(C) 1993; 351 + xvi pp.
ISBN 0-534-50983-5 (3.5" disk)
The book is published by The Scientific Press, which became an
imprint of Boyd & Fraser Publishing Co. (part of the Thomson
publishing empire), which was subsequently folded into the
Duxbury Press (another part of the Thomson publishing empire and
currently an imprint of Brooks/Cole Publishing Company/ITP).
It should be possible to send orders to
Thomson Publishing Company
7625 Empire Drive
Florence, KY 41042
Phone: 1-800-865-5840
FAX: 1-606-647-5013
E-mail: americas-info@list.thomson.com
Web: http://www.thomson.com/duxbury/
or (outside the U.S.A.)
Thomson Publishing Company
Cheriton House
North Way
Andover SP10 5BE
England UK
Phone: +44-1264-342799
FAX: +44-1264-342787
E-mail: row-info@list.thomson.com
or (from some web browsers) to
https://wwws.thomson.com/pub/duxbury/order_se.htm
and requests for review copies to
http://www.duxbury.com/catalog/review.htm
or
Curt Hinrichs
Duxbury Press
10 Davis Drive
Belmont, CA 94002
Phone: 415-637-7536
FAX: 415-637-7544
E-mail: curt_hinrichs@wadsworth.com
The book comes with a Microsoft Windows student version of AMPL, a Windows
front-end called AMPL Plus, several solvers (MINOS, CPLEX, GRG2, XLSOL),
and a 100-page guide to using the student edition (all included in the
price).
Duxbury seems to change the price of the book frequently and without
notice to the authors. Prices shown during the fall of 1997 in the
parent company's catalog (click on "catalog" in http://www.thomson.com/
and search for "AMPL") include $73.95, $67.95 and $76.95. In June 1998
it was $79.85. Last known price (June 1999) was $85.95.
For people teaching courses with AMPL, a 130+ page instructor's guide,
with answers to all exercises, is available (currently as a draft-for-
comment).
Academic and commercial versions of AMPL and solvers for a variety of
workstations and mainframes are available. Student versions are
limited to 300 variables and 300 constraints.
Supported solvers include CONOPT, CPLEX, GRG2/LSGRG, LAMPS, LOQO, MINOS,
NPSOL/NPOPT, OSL, PATH, SNOPT, XA, XLSOL/LS-XLSOL, and XPRESS-MP.
In some cases it may be necessary to deal directly with the solver vendor
(who may or may not offer a special academic version).
The following solver vendors also sell AMPL for various platforms, along
with versions of their solvers that work with AMPL. Both Dash
Optimization and Optimal Solution Technologies also sell stand-alone
AMPL binaries; the other vendors require you to buy one of their
solvers as well.
Compass Modeling Solutions, Inc.
-- bought by ILOG; see ILOG Direct below.
Dash Optimization
115 River Road, Suite 1203
Edgewater, NJ 07020
U.S.A.
Phone +1-201-313-5297 Fax +1-201-313-5299
E-mail: info@dashopt.com
Web: http://www.dashopt.com/
ILOG Direct
Suite 200
889 Alder Avenue
Incline Village, NV 89451
U.S.A.
Phone: +1-775-831-7744 Fax: +1-775-831-7755
E-mail: sales@cplex.com
Web: http://www.cplex.com
Optimal Solution Technologies
4740 Brainard Road
Chagrin Falls, OH 44022
U.S.A.
Phone: +1-440-349-5878 Fax: +1-440-349-5878
E-mail: info@optimize.com
Web: http://www.optimize.com
SAITECH Inc.
1301 Highway 36
Hazlet, NJ 07730
U.S.A.
1-732-264-4700 FAX 1-732-264-6015
E-mail: saitech@monmouth.com
Information on interfacing AMPL to other solvers and examples of interface
code are available by ftp or from netlib. A substantial revision of
the AMPL/solver interface library is about to become available; for now,
ask dmg@bell-labs.com for a "draft for comment" of the updated
"Hooking Your Solver to AMPL".
Much more information about AMPL is available from the AMPL web site:
http://www.ampl.com/ampl
Book outline:
Introduction
Chapter 1. Production Models: Maximizing Profits
1.1 A two-variable linear program
1.2 The two-variable linear program in AMPL
1.3 A linear programming model
1.4 The linear programming model in AMPL
1.5 Adding lower bounds to the model
1.6 Adding resource constraints to the model
Chapter 2. Diets, Blending and Scheduling: Minimizing Costs
2.1 A linear program for the diet problem
2.2 An AMPL model for the diet problem
2.3 Using the AMPL diet model
2.4 Generalizations for blending and scheduling
Chapter 3. Transportation, Assignment and Minimum-Cost Flows
3.1 A linear program for the transportation problem
3.2 An AMPL model for the transportation problem
3.3 Other interpretations of the transportation model
Chapter 4. Building Larger Models
4.1 A multicommodity transportation model
4.2 A multiperiod production model
4.3 A model of production and transportation
Chapter 5. Simple Sets and Indexing
5.1 Unordered sets
5.2 Sets of numbers
5.3 Set operations
5.4 Set membership operations and functions
5.5 Indexing expressions
5.6 Ordered sets
5.7 Syntax summary
Chapter 6. Compound Sets and Indexing
6.1 Sets of ordered pairs
6.2 Subsets and slices of ordered pairs
6.3 Sets of longer tuples
6.4 Operations on sets of tuples
6.5 Indexed collections of sets
6.6 Syntax summary
Chapter 7. Parameters and Expressions
7.1 Parameter declarations
7.2 Arithmetic expressions
7.3 Logical and conditional expressions
7.4 Restrictions on parameters
7.5 Computed parameters
7.6 Logical and symbolic parameters
7.7 Syntax summary
Chapter 8. Linear Programs: Variables, Objectives and Constraints
8.1 Variables
8.2 Linear expressions
8.3 Objectives
8.4 Constraints
8.5 Syntax summary
Chapter 9. Specifying Data
9.1 Set data
9.2 Parameter data
9.3 Variable data
9.4 Syntax summary
Chapter 10. Command Environment
10.1 General principles
10.2 Setting up and solving models
10.3 Browsing through results: the display command
10.4 Formatting options for display
10.5 Numeric options for display
10.6 Other output commands
10.7 Related solution values
10.8 Modifying and re-solving
10.9 Batch operation
Chapter 11. Network Linear Programs
11.1 Minimum-cost transshipment models
11.2 Other network models
11.3 Declaring network models by node and arc
11.4 Rules for node and arc declarations
11.5 Solving network linear programs
Chapter 12. Columnwise Formulations
12.1 An input-output model
12.2 A scheduling model
12.3 General rules
Chapter 13. Nonlinear Programs
13.1 Sources of nonlinearity
13.2 Nonlinear variables
13.3 Nonlinear expressions
13.4 Pitfalls of nonlinear programming
Chapter 14. Piecewise-Linear Programs
14.1 Cost terms
14.2 Common two-piece and three-piece terms
14.3 Other piecewise-linear functions
14.4 Guidelines for piecewise-linear optimization
Chapter 15. Integer Linear Programs
15.1 Integer variables
15.2 Zero-one variables and logical conditions
15.3 Practical considerations in integer programming
Appendix A. AMPL Reference Manual
A.1 Lexical rules
A.2 Set members
A.3 Indexing expressions and subscripts
A.4 Expressions
A.5 Declarations of model entities
A.6 Set declarations
A.7 Parameter declarations
A.8 Variable declarations
A.9 Constraint declarations
A.10 Objective declarations
A.11 Suffix notation for auxiliary values
A.12 Standard data format
A.13 Command language
A.14 Imported functions
A.15 Defined variables
A.16 Reserved and predefined words
A.17 Synonyms
Index
---------------------------------
AMPL-related material from netlib
---------------------------------
The "send ..." lines below are messages that you can send to the E-mail
address netlib@netlib.bell-labs.com to request various files by E-mail.
Such requests are answered automatically. (For more information on
netlib, send netlib the two-word message "send index".) This material
is also available by anonymous ftp from netlib.bell-labs.com; look in
the subdirectory of /netlib specified by "from ...", and append .gz
or .Z to the file name, as the ftp files are compressed. For example,
"NEW_CMDS from ampl/looping" is in directory /netlib/ampl/looping .
Be sure to specify "binary" before getting .gz or .Z files.
------------
New commands
------------
For information on new AMPL features and examples of their use, see
http://www.ampl.com/ampl/NEW
---------------------------
AWK for AMPL pipe functions
---------------------------
You can get an awk that flushes buffers appropriately for use
in AMPL pipe functions by
1. Asking netlib to "send awk.bundle from research"
or using anonymous ftp (in binary mode) to get
ftp://netlib.bell-labs.com/netlib/research/awk.bundle.gz
2. Editing lib.c to insert
if (inf == stdin)
fflush(stdout);
at the beginning of function readrec().
3. Compiling the resulting source ("make") and
installing the resulting a.out as awk.
--------------------
Change notifications
--------------------
Send the E-mail message
subscribe ampl
to netlib@netlib.bell-labs.com to request notification of new and
changed files in netlib's ampl directory or its subdirectories.
(Beware that automatically sent change notifications may reach
you before changes have reached
ftp://netlib.bell-labs.com/netlib/ampl or other netlib servers.)
Send the E-mail message
unsubscribe ampl
to recant your notification request.