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.