|
|
xiii | |
|
|
xv | |
Preface |
|
xvii | |
Contributing Authors |
|
xxiii | |
Introduction |
|
xxix | |
|
|
Part I Theoretical and Practical Concepts of Modeling Languages |
|
|
|
Mathematical Optimization and the Role of Modeling Languages |
|
|
3 | (22) |
|
|
Mathematical Optimization |
|
|
3 | (3) |
|
Classes of Problems in Mathematical Optimization |
|
|
6 | (11) |
|
A Deterministic Standard MINLP Problem |
|
|
7 | (2) |
|
Constraint Satisfaction Problems |
|
|
9 | (1) |
|
Multi-Objective Optimization |
|
|
9 | (1) |
|
|
10 | (1) |
|
Semi-Infinite Programming |
|
|
11 | (1) |
|
Optimization Involving Differential Equations |
|
|
12 | (1) |
|
|
12 | (1) |
|
Optimization Under Uncertainty |
|
|
13 | (1) |
|
Approaches to Optimization Under Uncertainty |
|
|
13 | (2) |
|
|
15 | (1) |
|
Beyond Stochastic Programming |
|
|
16 | (1) |
|
The History of Modeling Languages in Optimization |
|
|
17 | (7) |
|
Conventions and Abbreviations |
|
|
24 | (1) |
|
Models and the History of Modeling |
|
|
25 | (12) |
|
|
|
25 | (3) |
|
|
28 | (1) |
|
|
29 | (2) |
|
|
31 | (6) |
|
The Importance of Good Modeling Practice |
|
|
32 | (3) |
|
Making Mathematical Models Accessible for Computers |
|
|
35 | (2) |
|
Mathematical Model Building |
|
|
37 | (8) |
|
|
Why Mathematical Modeling? |
|
|
37 | (1) |
|
|
38 | (1) |
|
|
39 | (1) |
|
|
40 | (1) |
|
|
41 | (1) |
|
|
42 | (1) |
|
|
43 | (2) |
|
Theoretical Concepts and Design of Modeling Languages |
|
|
45 | (18) |
|
|
|
45 | (11) |
|
Algebraic Modeling Languages |
|
|
46 | (5) |
|
Non-algebraic Modeling Languages |
|
|
51 | (3) |
|
Integrated Modeling Environments |
|
|
54 | (1) |
|
Model-Programming Languages |
|
|
55 | (1) |
|
|
55 | (1) |
|
|
56 | (3) |
|
|
57 | (1) |
|
Algebraic Modeling Languages and Global Optimization |
|
|
58 | (1) |
|
A Vision --- What the Future Needs to Bring |
|
|
59 | (4) |
|
|
59 | (1) |
|
|
60 | (1) |
|
|
60 | (1) |
|
Object Oriented Modeling --- Derived Models |
|
|
61 | (1) |
|
|
61 | (1) |
|
|
62 | (1) |
|
Open Model Exchange Format |
|
|
62 | (1) |
|
The Importance of Modeling Languages for Solving Real-World Problems |
|
|
63 | (8) |
|
|
|
Modeling Languages and Real World Problems |
|
|
64 | (1) |
|
Requirements from Practitioners towards Modeling Languages and Modeling Systems |
|
|
65 | (6) |
|
Part II The Modeling Languages in Detail |
|
|
|
The Modeling Language AIMMS |
|
|
71 | (34) |
|
|
|
AIMMS Design Philosophy, Features and Benefits |
|
|
72 | (6) |
|
AIMMS Outer Approximation (AOA) Algorithm |
|
|
78 | (6) |
|
|
79 | (1) |
|
|
79 | (2) |
|
|
81 | (2) |
|
Alternative Uses of the Open Approach |
|
|
83 | (1) |
|
|
84 | (4) |
|
|
86 | (1) |
|
|
87 | (1) |
|
|
87 | (1) |
|
|
88 | (5) |
|
|
90 | (1) |
|
|
90 | (2) |
|
Data Conversion of Time-Dependent Identifiers |
|
|
92 | (1) |
|
The AIMMS Excel Interface |
|
|
93 | (3) |
|
Excel as the Main Application |
|
|
94 | (1) |
|
AIMMS as the Main Application |
|
|
94 | (2) |
|
|
96 | (5) |
|
|
96 | (1) |
|
|
97 | (2) |
|
Agent-Related Concepts in AIMMS |
|
|
99 | (2) |
|
Agent Construction Support |
|
|
101 | (1) |
|
|
101 | (4) |
|
|
103 | (1) |
|
|
103 | (1) |
|
|
103 | (1) |
|
Mathematical Programming Features |
|
|
103 | (1) |
|
End-User Interface Features |
|
|
103 | (1) |
|
Connectivity and Deployment Features |
|
|
104 | (1) |
|
|
104 | (1) |
|
Design Principles and New Developments in the AMPL Modeling Language |
|
|
105 | (32) |
|
|
|
|
Background and Early History |
|
|
106 | (1) |
|
The McDonald's Diet Problem |
|
|
107 | (4) |
|
The Airline Fleet Assignment Problem |
|
|
111 | (3) |
|
|
114 | (4) |
|
|
114 | (1) |
|
|
115 | (3) |
|
|
118 | (1) |
|
|
118 | (10) |
|
|
119 | (1) |
|
|
120 | (3) |
|
Combinatorial Optimization |
|
|
123 | (3) |
|
|
126 | (2) |
|
Communicating with Other Systems |
|
|
128 | (7) |
|
Relational Database Access |
|
|
128 | (1) |
|
Internet Optimization Services |
|
|
129 | (4) |
|
Communication with Solvers via Suffixes |
|
|
133 | (2) |
|
|
135 | (1) |
|
|
135 | (2) |
|
General Algebraic Modeling System (GAMS) |
|
|
137 | (22) |
|
|
|
Background and Motivation |
|
|
138 | (1) |
|
Design Goals and Changing Focus |
|
|
139 | (2) |
|
A User's View of Modeling Languages |
|
|
141 | (8) |
|
|
141 | (4) |
|
|
145 | (2) |
|
|
147 | (2) |
|
|
149 | (10) |
|
|
150 | (1) |
|
Selected Language Features |
|
|
150 | (1) |
|
|
151 | (1) |
|
|
151 | (1) |
|
GAMS versus Fortran Matrix Generators |
|
|
152 | (1) |
|
|
153 | (6) |
|
The Lingo Algebraic Modeling Language |
|
|
159 | (14) |
|
|
|
|
159 | (1) |
|
|
160 | (11) |
|
Simplified Syntax for Small Models |
|
|
160 | (2) |
|
|
162 | (1) |
|
|
163 | (3) |
|
Model Class Identification |
|
|
166 | (1) |
|
Automatic Linearization and Global Optimization |
|
|
167 | (1) |
|
|
168 | (2) |
|
|
170 | (1) |
|
|
171 | (2) |
|
The LPL Modeling Language |
|
|
173 | (12) |
|
|
|
173 | (2) |
|
|
175 | (1) |
|
|
176 | (2) |
|
The Cutting Stock Problem |
|
|
178 | (3) |
|
|
181 | (1) |
|
|
182 | (1) |
|
|
183 | (2) |
|
The Minopt Modeling Language |
|
|
185 | (26) |
|
|
|
|
186 | (3) |
|
|
186 | (2) |
|
|
188 | (1) |
|
Model Types and Solution Algorithms |
|
|
189 | (15) |
|
Mixed-Integer Nonlinear Program (MINLP) |
|
|
190 | (1) |
|
Generalized Benders Decomposition (GBD) |
|
|
190 | (2) |
|
Outer Approximation/Equality Relaxation/Augmented Penalty (OA/ER/AP) |
|
|
192 | (3) |
|
Nonlinear Program with Differential and Algebraic Constraints (NLP/DAE) |
|
|
195 | (2) |
|
Mixed-Integer Nonlinear Program with Differential and Algebraic Constraints (MINLP/DAE) |
|
|
197 | (3) |
|
Optimal Control Problem (OCP) and Mixed Integer Optimal Control |
|
|
200 | (4) |
|
|
204 | (1) |
|
|
204 | (5) |
|
|
205 | (1) |
|
MINLP Problem-Nonconvex Portfolio Optimization Problem |
|
|
205 | (2) |
|
Optimal Control Problem--Dow Batch Reactor |
|
|
207 | (2) |
|
|
209 | (2) |
|
Mosel: A Modular Environment for Modeling and Solving Optimization Problems |
|
|
211 | (28) |
|
|
|
|
|
211 | (2) |
|
|
212 | (1) |
|
|
212 | (1) |
|
|
213 | (1) |
|
|
213 | (1) |
|
|
213 | (7) |
|
|
214 | (1) |
|
Types and Data Structures |
|
|
215 | (2) |
|
Initialization of Data/Data File Access |
|
|
217 | (1) |
|
|
218 | (1) |
|
|
218 | (1) |
|
|
219 | (1) |
|
|
219 | (1) |
|
|
220 | (1) |
|
|
220 | (2) |
|
|
222 | (8) |
|
|
223 | (1) |
|
QP Example with Graphical Output |
|
|
224 | (1) |
|
Example of a Solution Algorithm |
|
|
225 | (5) |
|
|
230 | (8) |
|
Defining a New Subroutine |
|
|
231 | (2) |
|
|
233 | (1) |
|
|
234 | (1) |
|
Type Creation and Deletion |
|
|
235 | (1) |
|
Type Transformation to and from String |
|
|
235 | (1) |
|
Overloading of Arithmetic Operators |
|
|
236 | (2) |
|
|
238 | (1) |
|
|
239 | (28) |
|
|
|
Maximal Software and Its History |
|
|
239 | (2) |
|
Algebraic Modeling Languages |
|
|
241 | (4) |
|
Comparison of Modeling Languages |
|
|
242 | (1) |
|
|
243 | (1) |
|
|
243 | (1) |
|
|
243 | (1) |
|
|
244 | (1) |
|
|
244 | (1) |
|
|
244 | (1) |
|
|
245 | (1) |
|
|
245 | (1) |
|
|
245 | (1) |
|
|
245 | (1) |
|
|
245 | (5) |
|
MPL Integrated Model Development Environment |
|
|
246 | (1) |
|
|
247 | (1) |
|
View the Solution Results |
|
|
248 | (1) |
|
Display Graph of the Matrix |
|
|
249 | (1) |
|
|
250 | (1) |
|
|
250 | (12) |
|
Sparse Index and Data Handling |
|
|
251 | (1) |
|
|
252 | (1) |
|
Structure of the MPL Model File |
|
|
252 | (1) |
|
Sample Model in MPL: A Production Planning Model |
|
|
253 | (1) |
|
Going Through the Model File |
|
|
254 | (3) |
|
|
257 | (2) |
|
Reading Data from Text Files |
|
|
259 | (1) |
|
Connecting to Excel Spreadsheets |
|
|
259 | (1) |
|
Optimization Solvers Supported by MPL |
|
|
260 | (2) |
|
Deployment into Applications |
|
|
262 | (5) |
|
Deployment Phase: Creating End-User Applications |
|
|
263 | (1) |
|
OptiMax 2000 Component Library Application Building Features |
|
|
263 | (4) |
|
The Optimization Systems MPSX and OSL |
|
|
267 | (12) |
|
|
|
267 | (1) |
|
MPSX from its Origins to the Present |
|
|
268 | (11) |
|
Initial Stages Leading to MPSX/370 |
|
|
268 | (2) |
|
The Role of the IBM Scientific Centers |
|
|
270 | (1) |
|
An Important Product: Airline Crew Scheduling |
|
|
271 | (1) |
|
MPSX Management in White Plains and Transition to Paris |
|
|
272 | (1) |
|
A Major Growth Period in LP and MIP: MPSX/370; 1972-1985 |
|
|
272 | (1) |
|
MPSX as an Engine in Research and Applications |
|
|
273 | (1) |
|
Case A: Algorithmic Tools for Solving Difficult Models |
|
|
273 | (1) |
|
Case B: New Solver Programs with ECL |
|
|
274 | (1) |
|
Case C: Application Packages -- Precursors to Modeling |
|
|
275 | (1) |
|
|
276 | (1) |
|
Changes in Computing, Development and Marketing Groups |
|
|
277 | (1) |
|
|
277 | (2) |
|
The NOP-2 Modeling Language |
|
|
279 | (14) |
|
|
|
|
279 | (1) |
|
|
280 | (2) |
|
|
282 | (9) |
|
Specifying Structure --- The Element Concept |
|
|
283 | (3) |
|
|
286 | (1) |
|
|
287 | (1) |
|
|
288 | (2) |
|
Stochastic and Multistage Programming |
|
|
290 | (1) |
|
Recursive Modeling and Other Components |
|
|
291 | (1) |
|
|
291 | (2) |
|
|
293 | (14) |
|
|
OMNI Features as they Developed Historically |
|
|
293 | (6) |
|
|
293 | (3) |
|
Activities Versus Equations |
|
|
296 | (1) |
|
Recent and Current Trends |
|
|
297 | (2) |
|
Omni Features to Meet Applications Needs |
|
|
299 | (1) |
|
|
300 | (5) |
|
|
305 | (1) |
|
|
306 | (1) |
|
The OPL Studio Modeling System |
|
|
307 | (44) |
|
|
|
|
|
|
308 | (2) |
|
|
310 | (1) |
|
|
311 | (2) |
|
|
313 | (1) |
|
|
314 | (5) |
|
|
319 | (3) |
|
|
322 | (3) |
|
|
325 | (6) |
|
|
331 | (7) |
|
|
338 | (5) |
|
|
343 | (8) |
|
Appendix: Advanced Models |
|
|
344 | (1) |
|
A Round-Robin Model for Sport-Scheduling |
|
|
344 | (3) |
|
The Complete Trolley Model |
|
|
347 | (4) |
|
PCOMP: A Modeling Language for Nonlinear Programs with Automatic Differentiation |
|
|
351 | (18) |
|
|
|
351 | (2) |
|
Automatic Differentiation |
|
|
353 | (3) |
|
|
356 | (4) |
|
|
360 | (1) |
|
Case Study: Interactive Data Fitting with Easy-Fit |
|
|
361 | (6) |
|
|
367 | (2) |
|
The Tomlab Optimization Environment |
|
|
369 | (10) |
|
|
|
|
369 | (1) |
|
Matlab as a Modeling Language |
|
|
370 | (1) |
|
|
371 | (1) |
|
|
372 | (4) |
|
Structure Input and Output |
|
|
372 | (1) |
|
Description of the Input Problem Structure |
|
|
372 | (2) |
|
Defining an Optimization Problem |
|
|
374 | (1) |
|
Solving Optimization Problems |
|
|
375 | (1) |
|
A Nonlinear Programming Example |
|
|
376 | (3) |
|
Part III The Future of Modeling Systems |
|
|
|
The Future of Modeling Languages and Modeling Systems |
|
|
379 | (4) |
|
References |
|
383 | (20) |
Index |
|
403 | |