| |
| |
Introduction | |
| |
| |
| |
Production Models: Maximizing Profits | |
| |
| |
| |
A two-variable linear program | |
| |
| |
| |
The two-variable linear program in AMPL | |
| |
| |
| |
A linear programming model | |
| |
| |
| |
The linear programming model in AMPL | |
| |
| |
The basic model | |
| |
| |
An improved model | |
| |
| |
Catching errors | |
| |
| |
| |
Adding lower bounds to the model | |
| |
| |
| |
Adding resource constraints to the model | |
| |
| |
| |
AMPL interfaces | |
| |
| |
| |
Diet and Other Input Models: Minimizing Costs | |
| |
| |
| |
A linear program for the diet problem | |
| |
| |
| |
An AMPL model for the diet problem | |
| |
| |
| |
Using the AMPL diet model | |
| |
| |
| |
Generalizations to blending, economics and scheduling | |
| |
| |
| |
Transportation and Assignment Models | |
| |
| |
| |
A linear program for the transportation problem | |
| |
| |
| |
An AMPL model for the transportation problem | |
| |
| |
| |
Other interpretations of the transportation model | |
| |
| |
| |
Building Larger Models | |
| |
| |
| |
A multicommodity transportation model | |
| |
| |
| |
A multiperiod production model | |
| |
| |
| |
A model of production and transportation | |
| |
| |
| |
Simple Sets and Indexing | |
| |
| |
| |
Unordered sets | |
| |
| |
| |
Sets of numbers | |
| |
| |
| |
Set operations | |
| |
| |
| |
Set membership operations and functions | |
| |
| |
| |
Indexing expressions | |
| |
| |
| |
Ordered sets | |
| |
| |
Predefined sets and interval expressions | |
| |
| |
| |
Compound Sets and Indexing | |
| |
| |
| |
Sets of ordered pairs | |
| |
| |
| |
Subsets and slices of ordered pairs | |
| |
| |
| |
Sets of longer tuples | |
| |
| |
| |
Operations on sets of tuples | |
| |
| |
| |
Indexed collections of sets | |
| |
| |
| |
Parameters and Expressions | |
| |
| |
| |
Parameter declarations | |
| |
| |
| |
Arithmetic expressions | |
| |
| |
| |
Logical and conditional expressions | |
| |
| |
| |
Restrictions on parameters | |
| |
| |
| |
Computed parameters | |
| |
| |
| |
Randomly generated parameters | |
| |
| |
| |
Logical parameters | |
| |
| |
| |
Symbolic parameters | |
| |
| |
| |
Linear Programs: Variables, Objectives and Constraints | |
| |
| |
| |
Variables | |
| |
| |
| |
Linear expressions | |
| |
| |
| |
Objectives | |
| |
| |
| |
Constraints | |
| |
| |
| |
Specifying Data | |
| |
| |
| |
Formatted data: the data command | |
| |
| |
| |
Data in lists | |
| |
| |
Lists of one-dimensional sets and parameters | |
| |
| |
Lists of two-dimensional sets and parameters | |
| |
| |
Lists of higher-dimensional sets and parameters | |
| |
| |
Combined lists of sets and parameters | |
| |
| |
| |
Data in tables | |
| |
| |
Two-dimensional tables | |
| |
| |
Two-dimensional slices of higher-dimensional data | |
| |
| |
Higher-dimensional tables | |
| |
| |
Choice of format | |
| |
| |
| |
Other features of data statements | |
| |
| |
Default values | |
| |
| |
Indexed collections of sets | |
| |
| |
Initial values for variables | |
| |
| |
| |
Reading unformatted data: the read command | |
| |
| |
| |
Database Access | |
| |
| |
| |
General principles of data correspondence | |
| |
| |
| |
Examples of table-handling statements | |
| |
| |
| |
Reading data from relational tables | |
| |
| |
Reading parameters only | |
| |
| |
Reading a set and parameters | |
| |
| |
Establishing correspondences | |
| |
| |
Reading other values | |
| |
| |
| |
Writing data to relational tables | |
| |
| |
Writing rows inferred from the data specifications | |
| |
| |
Writing rows inferred from a key specification | |
| |
| |
| |
Reading and writing the same table | |
| |
| |
Reading and writing using two table declarations | |
| |
| |
Reading and writing using the same table declaration | |
| |
| |
| |
Indexed collections of tables and columns | |
| |
| |
Indexed collections of tables | |
| |
| |
Indexed collections of data columns | |
| |
| |
| |
Standard and built-in table handlers | |
| |
| |
Using the standard ODBC table handler | |
| |
| |
Using the standard ODBC table handler with Access and Excel | |
| |
| |
Built-in table handlers for text and binary files | |
| |
| |
| |
Modeling Commands | |
| |
| |
| |
General principles of commands and options | |
| |
| |
Commands | |
| |
| |
Options | |
| |
| |
| |
Setting up and solving models and data | |
| |
| |
Entering models and data | |
| |
| |
Solving a model | |
| |
| |
| |
Modifying data | |
| |
| |
Resetting | |
| |
| |
Resampling | |
| |
| |
The let command | |
| |
| |
| |
Modifying models | |
| |
| |
Removing or redefining model components | |
| |
| |
Changing the model: fix, unfix; drop, restore | |
| |
| |
Relaxing integrality | |
| |
| |
| |
Display Commands | |
| |
| |
| |
Browsing through results: the display command | |
| |
| |
Displaying sets | |
| |
| |
Displaying parameters and variables | |
| |
| |
Displaying indexed expressions | |
| |
| |
| |
Formatting options for display | |
| |
| |
Arrangement of lists and tables | |
| |
| |
Control of line width | |
| |
| |
Suppression of zeros | |
| |
| |
| |
Numeric options for display | |
| |
| |
Appearance of numeric values | |
| |
| |
Rounding of solution values | |
| |
| |
| |
Other output commands: print and printf | |
| |
| |
The print command | |
| |
| |
The printf command | |
| |
| |
| |
Related solution values | |
| |
| |
Objective functions | |
| |
| |
Bounds and slacks | |
| |
| |
Dual values and reduced costs | |
| |
| |
| |
Other display features for models and instances | |
| |
| |
Displaying model components: the show command | |
| |
| |
Displaying model dependencies: the xref command | |
| |
| |
Displaying model instances: the expand command | |
| |
| |
Generic synonyms for variables, constraints and objectives | |
| |
| |
Resource listings | |
| |
| |
| |
General facilities for manipulating output | |
| |
| |
Redirection of output | |
| |
| |
Output logs | |
| |
| |
Limits on messages | |
| |
| |
| |
Command Scripts | |
| |
| |
| |
Running scripts: include and commands | |
| |
| |
| |
Iterating over a set: the for statement | |
| |
| |
| |
Iterating subject to a condition: the repeat statement | |
| |
| |
| |
Testing a condition: the if-then-else statement | |
| |
| |
| |
Terminating a loop: break and continue | |
| |
| |
| |
Stepping through a script | |
| |
| |
| |
Manipulating character strings | |
| |
| |
String functions and operators | |
| |
| |
String expressions in AMPL commands | |
| |
| |
| |
Interactions with Solvers | |
| |
| |
| |
Presolve | |
| |
| |
Activities of the presolve phase | |
| |
| |
Controlling the effects of presolve | |
| |
| |
Detecting infeasibility in presolve | |
| |
| |
| |
Retrieving results from solvers | |
| |
| |
Solve results | |
| |
| |
Solver statuses of objectives and problems | |
| |
| |
Solver statuses of variables | |
| |
| |
Solver statuses of constraints | |
| |
| |
AMPL statuses | |
| |
| |
| |
Exchanging information with solvers via suffixes | |
| |
| |
User-defined suffixes: integer programming directives | |
| |
| |
Solver-defined suffixes: sensitivity analysis | |
| |
| |
Solver-defined suffixes: infeasibility diagnosis | |
| |
| |
Solver-defined suffixes: direction of unboundedness | |
| |
| |
Defining and using suffixes | |
| |
| |
| |
Alternating between models | |
| |
| |
| |
Named problems | |
| |
| |
Defining named problems | |
| |
| |
Using named problems | |
| |
| |
Displaying named problems | |
| |
| |
Defining and using named environments | |
| |
| |
| |
Network Linear Programs | |
| |
| |
| |
Minimum-cost transshipment models | |
| |
| |
A general transshipment model | |
| |
| |
Specialized transshipment models | |
| |
| |
Variations on transshipment models | |
| |
| |
| |
Other network models | |
| |
| |
Maximum flow models | |
| |
| |
Shortest path models | |
| |
| |
Transportation and assignment models | |
| |
| |
| |
Declaring network models by node and arc | |
| |
| |
A general transshipment model | |
| |
| |
A specialized transshipment model | |
| |
| |
Variations on transshipment models | |
| |
| |
Maximum flow models | |
| |
| |
| |
Rules for node and arc declarations | |
| |
| |
node declarations | |
| |
| |
arc declarations | |
| |
| |
Interaction with objective declarations | |
| |
| |
Interaction with constraint declarations | |
| |
| |
Interaction with variable declarations | |
| |
| |
| |
Solving network linear programs | |
| |
| |
| |
Columnwise Formulations | |
| |
| |
| |
An input-output model | |
| |
| |
Formulation by constraints | |
| |
| |
A columnwise formulation | |
| |
| |
Refinements of the columnwise formulation | |
| |
| |
| |
A scheduling model | |
| |
| |
| |
Rules for columnwise formulations | |
| |
| |
| |
Piecewise-Linear Programs | |
| |
| |
| |
Cost terms | |
| |
| |
Fixed numbers of pieces | |
| |
| |
Varying numbers of pieces | |
| |
| |
| |
Common two-piece and three-piece terms | |
| |
| |
Penalty terms for "soft" constraints | |
| |
| |
Dealing with infeasibility | |
| |
| |
Reversible activities | |
| |
| |
| |
Other piecewise-linear functions | |
| |
| |
| |
Guidelines for piecewise-linear optimization | |
| |
| |
Forms for piecewise-linear expressions | |
| |
| |
Suggestions for piecewise-linear models | |
| |
| |
| |
Nonlinear Programs | |
| |
| |
| |
Sources of nonlinearity | |
| |
| |
Dropping a linearity assumption | |
| |
| |
Achieving a nonlinear effect | |
| |
| |
Modeling an inherently nonlinear process | |
| |
| |
| |
Nonlinear variables | |
| |
| |
Initial values of variables | |
| |
| |
Automatic substitution of variables | |
| |
| |
| |
Nonlinear expressions | |
| |
| |
| |
Pitfalls of nonlinear programming | |
| |
| |
Function range violations | |
| |
| |
Multiple local optima | |
| |
| |
Other pitfalls | |
| |
| |
| |
Complementarity Problems | |
| |
| |
| |
Sources of complementarity | |
| |
| |
A complementarity model of production economics | |
| |
| |
Complementarity for bounded variables | |
| |
| |
Complementarity for price-dependent demands | |
| |
| |
Other complementarity models and applications | |
| |
| |
| |
Forms of complementarity constraints | |
| |
| |
| |
Working with complementarity constraints | |
| |
| |
Related solution values | |
| |
| |
Presolve | |
| |
| |
Generic synonyms | |
| |
| |
| |
Integer Linear Programs | |
| |
| |
| |
Integer variables | |
| |
| |
| |
Zero-one variables and logical conditions | |
| |
| |
Fixed costs | |
| |
| |
Zero-or-minimum restrictions | |
| |
| |
Cardinality restrictions | |
| |
| |
| |
Practical considerations in integer programming | |
| |
| |
| |
AMPL Reference Manual | |
| |
| |
| |
Lexical rules | |
| |
| |
| |
Set members | |
| |
| |
| |
Indexing expressions and subscripts | |
| |
| |
| |
Expressions | |
| |
| |
| |
Built-in functions | |
| |
| |
| |
Strings and regular expressions | |
| |
| |
| |
Piecewise-linear terms | |
| |
| |
| |
Declarations of model entities | |
| |
| |
| |
Set declarations | |
| |
| |
| |
Cardinality and arity functions | |
| |
| |
| |
Ordered sets | |
| |
| |
| |
Intervals and other infinite sets | |
| |
| |
| |
Parameter declarations | |
| |
| |
| |
Check statements | |
| |
| |
| |
Infinity | |
| |
| |
| |
Variable declarations | |
| |
| |
| |
Defined variables | |
| |
| |
| |
Constraint declarations | |
| |
| |
| |
Complementarity constraints | |
| |
| |
| |
Objective declarations | |
| |
| |
| |
Suffix notation for auxiliary values | |
| |
| |
| |
Suffix declarations | |
| |
| |
| |
Statuses | |
| |
| |
| |
Standard data format | |
| |
| |
| |
Set data | |
| |
| |
| |
Parameter data | |
| |
| |
| |
Database access and tables | |
| |
| |
| |
Command language overview | |
| |
| |
| |
Options and environment variables | |
| |
| |
| |
Redirection of input and output | |
| |
| |
| |
Printing and display commands | |
| |
| |
| |
Reading data | |
| |
| |
| |
Modeling commands | |
| |
| |
| |
The solve command | |
| |
| |
| |
The solution command | |
| |
| |
| |
The write command | |
| |
| |
| |
Auxiliary files | |
| |
| |
| |
Changing a model: delete, purge, redeclare | |
| |
| |
| |
The drop, restore and objective commands | |
| |
| |
| |
The fix and unfix commands | |
| |
| |
| |
Named problems and environments | |
| |
| |
| |
Modifying data: reset, update, let | |
| |
| |
| |
Examining models | |
| |
| |
| |
The show command | |
| |
| |
| |
The xref command | |
| |
| |
| |
The expand command | |
| |
| |
| |
Generic names | |
| |
| |
| |
The check command | |
| |
| |
| |
Scripts and control flow statements | |
| |
| |
| |
The for, repeat and if-then-else statements | |
| |
| |
| |
Stepping through commands | |
| |
| |
| |
Computational environment | |
| |
| |
| |
The shell command | |
| |
| |
| |
The cd command | |
| |
| |
| |
The quit, exit and end commands | |
| |
| |
| |
Built-in timing parameters | |
| |
| |
| |
Logging | |
| |
| |
| |
Imported functions | |
| |
| |
| |
AMPL invocation | |
| |
| |
Index | |