Preface to the Second Edition |
|
xii | |
Preface to the First Edition |
|
xiii | |
Abbreviations and Notation |
|
xvii | |
About the Companion Website |
|
xix | |
|
|
1 | (24) |
|
|
1 | (2) |
|
1.2 What Is an Integer Program? |
|
|
3 | (2) |
|
1.3 Formulating IPs and BIPs |
|
|
5 | (3) |
|
1.4 The Combinatorial Explosion |
|
|
8 | (1) |
|
1.5 Mixed Integer Formulations |
|
|
9 | (3) |
|
1.6 Alternative Formulations |
|
|
12 | (3) |
|
1.7 Good and Ideal Formulations |
|
|
15 | (3) |
|
|
18 | (1) |
|
|
19 | (6) |
|
2 OptimaLity, Relaxation, and Bounds |
|
|
25 | (18) |
|
2.1 Optimality and Relaxation |
|
|
25 | (2) |
|
2.2 Linear Programming Relaxations |
|
|
27 | (1) |
|
2.3 Combinatorial Relaxations |
|
|
28 | (1) |
|
2.4 Lagrangian Relaxation |
|
|
29 | (1) |
|
|
30 | (2) |
|
2.6 Linear Programming and Polyhedra |
|
|
32 | (2) |
|
2.7 Primal Bounds: Greedy and Local Search |
|
|
34 | (4) |
|
|
38 | (1) |
|
|
38 | (5) |
|
|
43 | (20) |
|
3.1 Properties of Easy Problems |
|
|
43 | (1) |
|
3.2 IPs with Totally Unimodular Matrices |
|
|
44 | (2) |
|
3.3 Minimum Cost Network Flows |
|
|
46 | (2) |
|
3.4 Special Minimum Cost Flows |
|
|
48 | (2) |
|
|
48 | (1) |
|
|
49 | (1) |
|
|
50 | (4) |
|
3.6 Submodularity and Matroids |
|
|
54 | (3) |
|
3.7 Two Harder Network Flow Problems |
|
|
57 | (2) |
|
|
59 | (1) |
|
|
60 | (3) |
|
4 Matchings and Assignments |
|
|
63 | (16) |
|
4.1 Augmenting Paths and Optimality |
|
|
63 | (2) |
|
4.2 Bipartite Maximum Cardinality Matching |
|
|
65 | (2) |
|
4.3 The Assignment Problem |
|
|
67 | (6) |
|
4.4 Matchings in Nonbipartite Graphs |
|
|
73 | (1) |
|
|
74 | (1) |
|
|
75 | (4) |
|
|
79 | (16) |
|
5.1 Some Motivation: Shortest Paths |
|
|
79 | (1) |
|
5.2 Uncapacitated Lot-Sizing |
|
|
80 | (3) |
|
5.3 An Optimal Subtree of a Tree |
|
|
83 | (1) |
|
|
84 | (5) |
|
5.4.1 0-1 Knapsack Problems |
|
|
85 | (1) |
|
5.4.2 Integer Knapsack Problems |
|
|
86 | (3) |
|
5.5 The Cutting Stock Problem |
|
|
89 | (2) |
|
|
91 | (1) |
|
|
92 | (3) |
|
6 Complexity and Problem Reductions |
|
|
95 | (18) |
|
|
95 | (1) |
|
6.2 Decision Problems, and Classes NT and P |
|
|
96 | (2) |
|
6.3 Polynomial Reduction and the Class NTC |
|
|
98 | (5) |
|
6.4 Consequences of V = NT or P # VP |
|
|
103 | (1) |
|
6.5 Optimization and Separation |
|
|
104 | (1) |
|
6.6 The Complexity of Extended Formulations |
|
|
105 | (1) |
|
6.7 Worst-Case Analysis of Heuristics |
|
|
106 | (3) |
|
|
109 | (1) |
|
|
110 | (3) |
|
|
113 | (26) |
|
|
113 | (1) |
|
|
114 | (2) |
|
7.3 Branch and Bound: an Example |
|
|
116 | (4) |
|
7.4 LP-Based Branch and Bound |
|
|
120 | (3) |
|
7.5 Using a Branch-and-Bound/Cut System |
|
|
123 | (6) |
|
7.6 Preprocessing or Presolve |
|
|
129 | (5) |
|
|
134 | (1) |
|
|
135 | (4) |
|
8 Cutting Plane Algorithms |
|
|
139 | (28) |
|
|
139 | (1) |
|
8.2 Some Simple Valid Inequalities |
|
|
140 | (3) |
|
|
143 | (4) |
|
8.4 A Priori Addition of Constraints |
|
|
147 | (2) |
|
8.5 Automatic Reformulation or Cutting Plane Algorithms |
|
|
149 | (1) |
|
8.6 Gomory's Fractional Cutting Plane Algorithm |
|
|
150 | (3) |
|
|
153 | (5) |
|
8.7.1 The Basic Mixed Integer Inequality |
|
|
153 | (2) |
|
8.7.2 The Mixed Integer Rounding (MIR) Inequality |
|
|
155 | (1) |
|
8.7.3 The Gomory Mixed Integer Cut |
|
|
155 | (1) |
|
|
156 | (2) |
|
8.8 Disjunctive Inequalities and Lift-and-Project |
|
|
158 | (3) |
|
|
161 | (1) |
|
|
162 | (5) |
|
9 Strong Valid Inequalities |
|
|
167 | (28) |
|
|
167 | (1) |
|
|
168 | (7) |
|
9.3 0-1 Knapsack Inequalities |
|
|
175 | (4) |
|
|
175 | (1) |
|
9.3.2 Strengthening Cover Inequalities |
|
|
176 | (2) |
|
9.3.3 Separation for Cover Inequalities |
|
|
178 | (1) |
|
9.4 Mixed 0-1 Inequalities |
|
|
179 | (4) |
|
9.4.1 Flow Cover Inequalities |
|
|
179 | (2) |
|
9.4.2 Separation for Flow Cover Inequalities |
|
|
181 | (2) |
|
9.5 The Optimal Subtour Problem |
|
|
183 | (3) |
|
9.5.1 Separation for Generalized Subtour Constraints |
|
|
183 | (3) |
|
|
186 | (3) |
|
|
189 | (1) |
|
|
190 | (5) |
|
|
195 | (18) |
|
10.1 Lagrangian Relaxation |
|
|
195 | (5) |
|
10.2 The Strength of the Lagrangian Dual |
|
|
200 | (2) |
|
10.3 Solving the Lagrangian Dual |
|
|
202 | (3) |
|
10.4 Lagrangian Heuristics |
|
|
205 | (2) |
|
10.5 Choosing a Lagrangian Dual |
|
|
207 | (2) |
|
|
209 | (1) |
|
|
210 | (3) |
|
11 Column (and Row) Generation Algorithms |
|
|
213 | (22) |
|
|
213 | (2) |
|
11.2 The Dantzig-Wolfe Reformulation of an IP |
|
|
215 | (1) |
|
11.3 Solving the LP Master Problem: Column Generation |
|
|
216 | (3) |
|
11.4 Solving the Master Problem: Branch-and-Price |
|
|
219 | (3) |
|
|
222 | (3) |
|
11.5.1 Handling Multiple Subproblems |
|
|
222 | (1) |
|
11.5.2 Partitioning/Packing Problems with Additional Variables |
|
|
223 | (1) |
|
11.5.3 Partitioning/Packing Problems with Identical Subsets |
|
|
224 | (1) |
|
11.6 Computational Issues |
|
|
225 | (1) |
|
11.7 Branch-Cut-and-Price: An Example |
|
|
226 | (1) |
|
11.7.1 A Capacitated Vehicle Routing Problem |
|
|
226 | (3) |
|
11.7.2 Solving the Subproblems |
|
|
229 | (1) |
|
11.7.3 The Load Formulation |
|
|
230 | (1) |
|
|
230 | (2) |
|
|
232 | (3) |
|
|
235 | (16) |
|
|
235 | (1) |
|
12.2 Benders' Reformulation |
|
|
236 | (4) |
|
12.3 Benders' with Multiple Subproblems |
|
|
240 | (2) |
|
12.4 Solving the Linear Programming Subproblems |
|
|
242 | (2) |
|
12.5 Integer Subproblems: Basic Algorithms |
|
|
244 | (3) |
|
12.5.1 Branching in the (x, η,y)-Space |
|
|
244 | (2) |
|
12.5.2 Branching in (x, η)-Space and "No-Good" Cuts |
|
|
246 | (1) |
|
|
247 | (1) |
|
|
248 | (3) |
|
|
251 | (18) |
|
|
251 | (1) |
|
13.2 Greedy and Local Search Revisited |
|
|
252 | (3) |
|
13.3 Improved Local Search Heuristics |
|
|
255 | (4) |
|
|
255 | (1) |
|
13.3.2 Simulated Annealing |
|
|
256 | (1) |
|
13.3.3 Genetic Algorithms |
|
|
257 | (2) |
|
13.4 Heuristics Inside MIP Solvers |
|
|
259 | (3) |
|
13.4.1 Construction Heuristics |
|
|
259 | (2) |
|
13.4.2 Improvement Heuristics |
|
|
261 | (1) |
|
13.5 User-Defined MIP heuristics |
|
|
262 | (3) |
|
|
265 | (1) |
|
|
266 | (3) |
|
14 From Theory to Solutions |
|
|
269 | (22) |
|
|
269 | (1) |
|
14.2 Software for Solving Integer Programs |
|
|
269 | (3) |
|
14.3 How Do We Find an Improved Formulation? |
|
|
272 | (5) |
|
14.4 Multi-item Single Machine Lot-Sizing |
|
|
277 | (5) |
|
14.5 A Multiplexer Assignment Problem |
|
|
282 | (3) |
|
14.6 Integer Programming and Machine Learning |
|
|
285 | (2) |
|
|
287 | (1) |
|
|
287 | (4) |
References |
|
291 | (20) |
Index |
|
311 | |