“Combines the theoretical and practical aspects of linear and integer programming. Provides practical case studies and techniques, including rounding-off, column-generation, game theory, multiobjective optimization, and goal programming, as well as real-world solutions to the transportation and transshipment problem, project scheduling, and decentralization.”
Available at amazon.com, amazon.co.uk, crcpress.com, Google Play and bol.com.
A preview is available on Google Books.
Features
- Reflects modern approaches and new applications.
- Extends prototype examples to more realistic settings.
- Introduces the elementary theory of linear and integer optimization.
- Uses real-world case studies to illustrate application of the theory.
Summary
Presenting a strong and clear relationship between theory and practice, Linear and Integer Optimization: Theory and Practice is divided into two main parts. The first covers the theory of linear and integer optimization, including both basic and advanced topics. Dantzig’s simplex algorithm, duality, sensitivity analysis, integer optimization models, and network models are introduced.
More advanced topics also are presented including interior point algorithms, the branch-and-bound algorithm, cutting planes, complexity, standard combinatorial optimization models, the assignment problem, minimum cost flow, and the maximum flow/minimum cut theorem.
The second part applies theory through real-world case studies. The authors discuss advanced techniques such as column generation, multiobjective optimization, dynamic optimization, machine learning (support vector machines), combinatorial optimization, approximation algorithms, and game theory.
Besides the fresh new layout and completely redesigned figures, this new edition incorporates modern examples and applications of linear optimization. The book now includes computer code in the form of models in the GNU Mathematical Programming Language (GMPL). The models and corresponding data files are available for download and can be readily solved using the provided online solver.
This new edition also contains appendices covering mathematical proofs, linear algebra, graph theory, convexity, and nonlinear optimization. All chapters contain extensive examples and exercises. This textbook is ideal for courses for advanced undergraduate and graduate students in various fields including mathematics, computer science, industrial engineering, operations research, and management science.
About the authors
Gerard Sierksma is an emeritus professor of Quantitative Logistics and Sports Statistics at the Faculty of Economics and Business of the University of Groningen, the Netherlands. He is an R&D advisor ORTEC/Sports and the Dutch Olympic Committee, and a fellow of the Canadian Institute of Combinatorics and its Applications. He was elected as Vice Chairperson of INFORMS on SpORts In 2008. He obtained a PhD degree in mathematics in 1976. After his PhD, his attention shifted towards practical applications of mathematical techniques, especially to logistics. In the past years he specialized in the design of decision support computer systems for industry and professional sports.
Yori Zwols is a senior research engineer at DeepMind, working on machine learning and artificial intelligence. He holds a PhD in Industrial Engineering and Operation Research from Columbia University, focusing on combinatorial optimization and graph theory. He also has an MA in Economics from Brown University.
Online resources
- Table of contents.
- A solution manual (with solutions to selected exercises) is available upon request via email.
- Errata (Last updated on February 17, 2019). If you find any new typos/mistakes/inaccuracies, we would be grateful to hear about them through email.
Online optimizer
To assist teaching students hands-on optimization and modeling skills,
we provide an online linear optimization solver app.
This web application:
- Solves linear and integer optimization models through an in-browser version of the GNU GLPK optimizer.
- Has several built-in example models.
- Performs sensitivity analysis.
- Graphs the feasible region (for two-dimensional models).
- Integrates with Google Drive.
Source code and data files
All source code in this book and on this website is licensed under the MIT License.Chapter 1: Basic concepts of linear optimization
- GMPL models: Model ‘Dovetail’, Model ‘Dovetail*’, Diet problem, Portfolio optimization, Data envelopment analysis.
- Data files: Exercise 1.8.20.
Chapter 6: Large-scale linear optimization
- GMPL model: Auxiliary model for Model ‘Dovetail’ (for initialization).
- Python code for the interior path algorithm: Interior path algorithm, code to solve Model ‘Dovetail’. This Python code requires NumPy.
Chapter 7: Integer linear optimization
- GMPL models: Model ‘Knapsack problem’, Model ‘Machine scheduling problem’, Model ‘Decentralization problem’.
- Data files: Exercise 7.5.26, Exercise 7.5.27.
Chapter 8: Linear network models
- GMPL models: Project scheduling problem.
- Still to add: minimum cost flow problem, maximum flow/minimum cut problem.
Chapter 10: Designing a reservoir for irrigation
- GMPL model: reservoir.mod
Chapter 11: Classifying documents by language
- GMPL model: model
- Data: Microsoft Excel, comma-separated value (CSV) file.
Chapter 12: Production planning: a single product case
- GMPL models: model (PP1), model (PP2), model (PP3), model (PP4), model (PP5).
Chapter 13: Production of coffee machines
- GMPL models: coffee1.mod, coffee2.mod, coffee3.mod.
- Data: inventory.txt (initial inventory si0), demand.txt (demands dit).
Chapter 14: Conflicting objectives: producing versus importing
- GMPL model: model (O1), model (O2), feasible region, model (O3), model (O4), model (O5).
Chapter 15: Coalition formation and profit distribution
- GMPL model: coalition model.
Chapter 16: Minimizing trimloss when cutting cardboard
- Knapsack GMPL model: knapsack.mod
- Gilmore-Gomory algorithm (python): trimloss.py (requires pyglpk).
Chapter 17: Off-shore helicopter routing
-
C++ code on GitHub
This code runs on GNU C++ version 4.3 or higher.
- Platform data:
platform.txt
The first three lines contain N, R, and C, respectively. The N subsequent lines are of the form “i xi yi”, where i is the platform number, and xi and yi are the x- and y-coordinates of platform Pi, respectively.
- Demand data:
demand-1.txt
demand-2.txt
demand-3.txt
demand-4.txt
demand-5.txt
demand-6.txt
demand-7.txt
demand-8.txt
demand-9.txt
demand-10.txt
demand-11.txt
demand-12.txt
demand-13.txt
demand-14.txt
demand-15.txt
or download them all in a zip file.
Each line in each file is of the form “i Di”, where i is the platform number and Di is the number of crew exchanges demanded at platform Pi.
Chapter 18: The catering service problem
- GMPL model: napkin.mod
Appendix E: Writing LP-models in GNU MathProg
- Listings: Listing E.1, Listing E.2.