1.1 The Scope of Integer and Combinatorial Optimization. 1. Introduction. 2. ... Modeling with Binary Variables 111: Nonlinear Functions and. Disjunctive ... Introduction. 2. Maximum-Cardinality Matching .... Chordal graph, 576-578 strong, 605.
Integer and Combinatorial Optimization
GEORGE NEMHAUSER School of Industrial and Systems Engineering Georgia Institute of Technology Atlanta, Georgia
LAURENCE WBESEY Center for Operations Research and Econometrics Universitt Catholique de Louvain Louvain-la-Neuve, Belgium
A Wiley-Interscience Publication JOHN WILEY & SONS, INC. NewYork a Chichester Weinheim
Brisbane * Singapore
a
Toronto
Contents PART I. FOUNDATIONS 1.1 The Scope of Integer and Combinatorial Optimization 1. Introduction 2. Modeling with Binary Variables I: Knapsack, Assignment and Matching, Covering, Packing and Partitioning 3. Modeling with Binary Variables 11: Facility Location, Fixed-Charge Network Flow, and Traveling Salesman 4. Modeling with Binary Variables 111: Nonlinear Functions and Disjunctive Constraints 5. Choices in Model Formulation 6. Preprocessing 7. Notes 8. Exercises 1.2 Linear Programming 1. 2. 3. 4. 5.
Introduction Duality The Primal and Dual Simplex Algorithms Subgradient Optimization Notes
1.3 Graphs and Networks 1. Introduction The Minimum-Weight or Shortest-PathProblem The Minimum-Weight Spanning Tree Problem The Maximum-Flow and Minimum-Cut Problems The Transportation Problem: A Primal-Dual Algorithm A Primal Simplex Algorithm for Network Flow Problems 7. Notes
2. 3. 4. 5. 6.
1.4 Polyhedral Theory 1. 2. 3. 4. 5.
Introduction and Elementary Linear Algebra Definitions of Polyhedra and Dimension Describing Polyhedra by Facets Describing Polyhedra by Extreme Points and Extreme Rays Polarity
Contents
xii
6. Polyhedral Ties Between Linear and Integer Programs 7. Notes 8. Exercises 1.5 Computational Complexity
114 I
Introduction Measuring Algorithm Efficiency and Problem Complexity Some Problems Solvable in Polynomial Time Remarks on 0-1 and Pure-Integer Programming NondeterministicPolynomial-Time Algorithms and N 9 Problems The Most Difficult NP Problems: The Class N 9 % Complexity and Polyhedra Notes Exercises 1.6 Polynomial-Time Algorithms for Linear Programming 1. 2. 3. 4. 5. 6.
Introduction The Ellipsoid Algorithm The Polynomial Equivalence of Separation and Optimization A Projective Algorithm A Strongly Polynomial Algorithm for CombinatorialLinear Programs Notes
Integer Lattices 1. 2. 3. 4. 5. 6. 7.
Introduction The Euclidean Algorithm Continued Fractions Lattices and Hermite Normal Form Reduced Bases Notes Exercises
PART 11. GENERAL INTEGER PROGRAMMING 11.1 The Theory of Valid Inequalities 1. 2. 3. 4. 5.
6. 7. 8. 9.
Introduction Generating All Valid Inequalities Gomory's Fractional Cuts and Rounding Superadditive Functions and Valid Inequalities A Polyhedral Description of Superadditive Valid Inequalities for Independence Systems Valid Inequalities for Mixed-Integer Sets Superadditivityfor Mixed-Integer Sets Notes Exercises
146 146 147 161 164 172 180
Contents
11.2 Strong Valid Inequalities and Facets for Structured Integer Programs
1. 2. 3. 4. 5. 6.
Introduction Valid Inequalities for the 0-1 Knapsack Polytope Valid Inequalities for the Symmetric Traveling Salesman Polytope Valid Inequalities for Variable Upper-Bound Flow Models Notes Exercises
11.3 Duality and Relaxation
1. 2. 3. 4. 5. 6. 7. 8. 9.
Introduction Duality and the Value Function Superadditive Duality The Maximum-Weight Path Formulation and Superadditive Duality Modular Arithmetic and the Group Problem Lagrangian Relaxation and Duality Benders' Reformulation Notes Exercises
11.4 General Algorithms 1. Introduction 2. Branch-and-Bound Using Linear Programming Relaxations 3. General Cutting-Plane Algorithms 4. Notes 5: Exercises
11.5 Special-PurposeAlgorithms
1. 2. 3. 4. 5. 6. 7.
Introduction A Cutting-Plane Algorithm Using Strong Valid Inequalities
Primal and Dual Heuristic Algorithms Decomposition Algorithms Dynamic Programming Notes Exercises
11.6 Applications of Special-PurposeAlgorithms
1. 2. 3. 4. 5. 6. 7.
Knapsack and Group Problems 0-1 Integer Programming Problems The Symmetric Traveling Salesman Problem Fixed-Charge Network Flow Problems Applications of Basis Reduction Notes Exercises
xiv
Contents
PART HII. COMBINATOUL OPTIMIZATION
533
111.1 Integral Polyhedra
535
Introduction Totally Unimodular Matrices Network Matrices Balanced and Totally Balanced Matrices Node Packing and Perfect Graphs Blocking and Integral Polyhedra Notes Exercises m.2 Matching 1. 2. 3. 4. 5. 6.
608
Introduction Maximum-Cardinality Matching Maximum-Weight Matching Additional Results on Matching and Related Problems Notes Exercises
DP.3 Mratroid and Submodular Function Optimization 1. Introduction 2. Elementary Properties 3. Maximum-Weight Independent Sets 4. . Matroid Intersection 5. Weighted Matroid Intersection 6. Polymatroids, Separation, and Submodular Function Minimization 7. Algorithms To Minimize a Submodular Function 8. Covering with Independent Sets and Matroid Partition 9. Submodular Function Maximization 10. Notes 11. Exercises
659 659 662 666 67 1 678 688 694 702 708 712 714
References
721
Author Index
749
Subject Index
'
SUBJECT INDEX Adjacency matrix, 52, 118 Affine: function, 325 independence, 192 transformation, 150 Algorithm, see also specific entries balanced matrix, totally, recognition, 570 basis, reduced, 514 of lattice, 199 Bellman-Ford, 58 branch-and-bound, 355, 363, 482, 484, 497 constraint generation, 411, 413 cutting-plane, 498, 710 /branch-and-bound, 388, 459, 463, 485, 489, 502 fractional, 351, 367,373, 386 general, 367 Gomory, 368 mixed-integer, 374 primal, 374 strong, 386 decomposition, 409-417 for DFC and FC for row inclusion matrices, 566 for DFNP and FNP for chordal graphs, 577-585 dual descent, greedy, 397-388 dual simplex, 37 lexicographic, 371 efficiency, 117 ellipsoid, 124, 147-162, 698 euclidean, 184-187 feasibility, 179 fixed-charge, branch-and-bound, 497 greedy, 60, 666-667, 679, 689, 712 group, increasing, 448 Hermite normal form, 193 heuristic, 393-409 analysis, 399 probabilistic, 408 worst-case, 399 dual, 400 dual descent, 397 greedy, see Greedy, heuristic interchange, 394, 397, 406-407, 477-478 nearest insertion, 477-478 nearest neighbor, 475, 477,494 primal, 452
primal-dual, 395 randomized, 407-409 scalinglrounding, 442-443 simplex-based, for BIP, 457-459 knapsack problem, 0-1 separation, 462 linear programming, polynomial-time, 146-181 ellipsoid, 147-160 projective, 164-172 strongly polynomial for combinatorial problems, 172-180 linear programming relaxation, 451-452 matching: cardinality, 618, 625 bipartite, 612 weighted, 628 matrix, totally balanced, recognition, 570 matroid, greedy, for maximum-weight independent sets, 666-671 intersection: maximum cardinality, 677, 706 weighted, 684 mixed-integer, cutting-plane, 374 minimum-weight path, Dijkstra's, 56-58 network flow problem, primal simplex, 76-81 nondeterministic, 128, 131 objective rounding, 177 path: augmenting, 65 minimum-cost , 75-76 minimum-weight, Dijkstra's, 56-58 polynomial-time, 119 strong, combinatorial for linear programs, 172-180 primal, simplex, 33, 76 primal-dual, 69-70 projective, 164-172 for recognizing an EPT matrix, 555-561 for recognizing TB matrices, 570-573 reduced basis of lattice, 199 relaxation, 349, 482 assignment problemibranch-and-bound, 482483 1-tree, subgradient optimization, branch-andbound, 484-485 FCPlbranch-and-bound, 485 separation, 412, 462, 487
Subject Index Algorithm (Continued) simplex: dual, 37 primal, 33 simple upper bounds, 39 sliding objective function approximate ellipsoid, 155. See also Ellipsoid spanning-tree, construction, 60-61 special purpose, 383,433 subgradient, 46, 410, 484 submodular, function maximization, greedy, 712 superadditive, dual, 435 transportation problem, primal-dual, 68-76 Alphabet, 118 Annealing, see Simulated annealing Antiblocker, 102 Antiblocking: clutter, 594 matrix, 102 Antihole, 575 Approximation scheme: fully polynomial, 401 polynomial, 402 Arc, 54 forward, 64 reverse, 64 saturated, 63 slack, 309 variable j, 309, 313 Artificial variable, 36 Ascent, steepest, 43 Assignment problem, 5, 68, 332, 482 generalized, 346 Augmenting path, see Path Backtracking, 358 Balanced matrix, 563, 564, 573 totally, 563-565, 570-573, 576 recognition algorithm, 570 Basic solution, 30 feasible, 31 Basis, 30 adjacent, 31 degenerate, 32 dual feasible, 31, 37, 321 matroid, see Matroid nondegenerate, 34 orthogonal, 196 reduced, see Reduced basis of lattice Bellman-Ford algorithm, 58 Benders' decomposition, 412,508 Benders' reformulation, 337-341, 710 Binary: alphabet, 118 digits, 157 representation, 72 search, 128 string, 119 variable, 5-13 Bipartite, 50, 54, 544, 575, 593, 612, 651
Blocker, 101 Blocking, 586 clutter, 587, 650 matrix, 103 pair, 103, 590 polyhedron, 101, 586-598 Blossom, 616 base of, 616 shrinking, 616 Boolean: function, 695 implications, 215 Bounded, 107 Bounds, tightening, 18 Branch-and-bound, 354-367, 454 algorithm, 355,363,482, 484,497 node selection, 358 adaptive rules, 358 best estimate, 359 best upper bound, 359 quick improvement, 359 a priori rules, 358 variable selection, 359 degradation, 359 integer infeasibility, 360 penalties, 359 Branching, 55, 661 problem, 532, 680 scheme, 365 Breadth-first search. see Search Capital budgeting, 3 Certificate of feasibility, 114, 128 Certificate of optimality, 114, 124 C-G: function, 306 inequality, 210, 220-225, 228, 232 Characteristic vector, 118, 259 Checking stage, 129 Chord, 575 Chordal graph, 576-578 strong, 605 Chromatic: index, 651 number, 582 Claw, 585 Claw-free, 585 Clique, 260, 573 cover, 298 matrix, 574, 576 perfect graph, 583 problem, maximum weight, 163 Closest vector problem, 182 Closure, 664 elementary, 225 Clutter, 562, 574, 576, 583, 587 Coloring, 582, 651 Column operation, elementary, 192 Comb, 277 inequality, 277-280 generalized, 280
subject Index %.
i
combinatorid optimization problem, 4 complementarity condition, 330 complementary slackness, 29, 305 complexity, 114, 117, 139 Component, 53, 555 Concave function, 11;~42-43 Cone, 86, 156, 164 polyhedral, 99 connected, 53, 552 strongly, 55 CoNP, 130, 141 Constraint generation algorithm, 411, 413 Constraints: adding, 39, 358 disjunctive, 12 complicating, 323, 329, 337, 512 generalized upper-bound, 365 nice, 323 redundant, 19 Continued fractions, 187-189 Convergence, finite, 370, 378 Convex, 150 combination, 83 function, 11, 329 hull, 83, 106, 125, 127, 206, 241 set, 86 Cost-splitting, 3341 Cover, 299 inequality, 459 extended, 461, 498 minimal, 463 Covering, 6 by edges, 538, 586, 588, 639 fractional, 103 by independent sets, 702, 707 problem, 6, 144,464,571, 589, 702, 709 fractional, 562,566 greedy heuristic, 466 Cramer's rule, 123 Cryptography, 513 Cut, 62 capacity, 63 clutter, 587 edge, 551 proper, 551 function, 660 Gomory fractional, 368 minimum weight, 62, 63, 586-587, 592 primal, 376 -set equality, 486 T-, see T-cut Cutting-plane algorithm, 498, 710 ibranch-and-bound, 388, 459, 463, 485, 489, 502 fractional, 351, 367, 373, 386 general, 367 Gomory, 368 mixed-integer, 374 primal, 374 strong, 386 Cycle, 52, 78
directed, 54 negative weight, 59 odd, 583 Cycling, 34 Data, 4, 115 Data structures, 82 Davis-Putnam procedure, 256 Decision problem, 127 Decomposition, 556 algorithms, 409-417 integral, 595 Degree, 51, 608 constraints, 272, 470 Demand nodes, 596 Dependent set, 265,283, 659 extension, 266 minimal, 266 Depth-first search, see Search Determinant, 123, 196, 540 Dicut, 535 Digraph, 54, 320, 496, 546 Dijkstra's algorithm, 56,446, 592 Dimension, 86, 92, 108 full, 86-87 D-inequality, 213, 218, 220 Diophantine a~proximation,184, 187, 189, 200 Dipath, 55, 535, 675, 682 Disjunctive: constraints, 12, 212 procedure, 213 Distribution, 3 , Division, 352, 355, 356 Dominance, 207, 247 Dual, 28, 296-341 cost-splitting, 334 feasible basis, 371 gap, 299, 329 heuristic, 400 integral, totally, 537-539,562, 638, 690-691 Lagrangian, 323-337,409-411, 484, 494 linear programming, 28-30 matroid, 665 optimal solution, 175, 176 problem, 28, 97 restricted, 336 simplex algorithm, 37 lexicographic, 371 strong, 29, 299, 301, 305, 672, 677 superadditive, 304-312 general integer programming, 304 mixed-integer programming, 308 surrogate, 334 weak, 28,299,304, 672 Dynamic programming, 417-424,433, 440 Edge, 50 coloring, 651-654 coverings, 639 end, 551 shrinking, 487
Subject Index
Ellipsoid, 147 algorithm, 124, 147-162, 698 property, 148 volume, 148 Enumeration tree, 352 Epsilon-approximate solution, 174, 331 EPT matrix, see Tree Equality-constrained subgraph, 627 Equality set, 86, 91 Euclidean: algorithm, 184-187 distance, 45 Euler cycle, 478, 609 Exchange property, see Matroid Exponential, 120 Extreme point, 93, 95, 123, 125, 158 Extreme ray, 94-95, 123 Face, 88, 108 proper, 88 Facet, 89-91, 127 validity, 141 Facet-defining inequality, 158 Facility location, 3, 7, 15, 17, 287 capacitated, 8, 347 median problem, 408 uncapacitated, 8, 340, 384,416,496, 509, 709 dual descent, 397 FCPA with separation, 387 greedy heuristic, 393 L'agrangian dual, 409 p-, 402-406, 411 primal-dual heuristic, 398 strong formulation, 384 weak formulation, 385 Farkas' lemma, 30, 97 integer version, 191 FCPA, see Cutting-plane algorithm, fractional Feasibility: algorithm, 179 problem, 127 homogeneous, 164 integer programming, 127-129, 133 linear equations integer variables, 182 lower bound, 127, 139, 141 property, strict, 148 Feasible: region, 4 solution, 4 Fibonacci number, 186 Finitely generated, 104 Fixed-charge: network flow problem, 8, 18, 423, 495-513 branch-and-bound algorithm, 497 fractional cutting-plane algorithm, 498 multi-source, 506, 508 single-source, 496, 506 uncapacitated, 496 transportation problem, 502 Fixed cost, 18,496
Flow, 62 blocking, 63 cover inequalities generalized, 499 extended, 501 feasible integral, 596 maximum, 62-68, 487, 695 minimum-cut theorem, 63 problem with budget constraints, 332 Forest, 53, 648 Formulation, 15, 217, 338, 384 Fourier-Motzkin elimination, 111 Function, separable, 11 Gaussian elimination, 121, 179 gcd, see Greatest common divisor Generalized upper-bound, see GUB Gomory cut, 212 fractional, 227-229, 236 mixed integer, 249-250 Good characterization, 124 Gradient, 43 Gram-Schmidt orthogonalization, 196 Graph, 50-82 acyclic, 52 bipartite, see Bipartite chordal, see Chordal graph comparability, 606 complement, 52, 578 complete, 51, 270 component, 53 connected, 53 directed, see Digraph intersection, 117 interval, 605 line, 584 perfect, see Perfect planar, 582 random, 408 reduced, 488, 616 simple, 51 underlying, 54 Greatest common divisor, 183 Greedy: algorithm, 60, 666-667, 679, 689 heuristic, 393, 397, 400, 403, 428, 440, 452, 466, 476, 712 Group, 315 algorithm, increasing, 448 problem, 312-322, 444 GUB (generalized upper-bound): constraints, 365 dichotomy, 356 Hadamard inequality, 197 Hamiltonian cycle, 129, 270 problem, 129 directed, 144 Nermite normal form, 184, 189-195 algorithm, 193
Idt
Im Im Im In1
Subject Index
Heuristic algorithms, 393-409 analysis, 399 probabilistic, 408 worst-case, 399 dual, 400 dual-descent, 397 greedy, see Greedy, heuristic interchange, 394, 397, 406-407, 477-478 nearest insertion, 477-478 nearest neighbor, 475, 477, 494 primal-dual, 395 randomized, 407-409 Hole, 575 odd, 261, 575 Hypersphere, 147, 158, 517 Identity transformation, 132 Imperfect, 584 Implicit enumeration, 354 Impossible to solve, 121 Incidence matrix, 76 neighborhood subtree-neighborhood subtree, 573 node-edge, 51 node-arc, 54 Incidence vector, see Characteristic vector Independence: affine, 84, 108 linear, 83, 84 system, 237, 659, 663 test, 666 Independent set, 265, 281,659 Inequality: . dominating, 207 equivalent, 91 max-min, 103 min-max, 104 set, 86 stronger, 207 valid, see Valid inequality Inner point, 86-87 Instance, 4, 115 feasible, 127 size, 118 Integer programming feasibility problem, 129, 515-520 Integer programming problem, 4, 104, 115, 125128 0-1, 456-469 FCPIbranch-and-bound, 459 simplex heuristic, 457 fixed number of variables, 520 Integer round down, 595-598,708 Integer rounding, see Rounding Interior point, 86-87, 101 Interval matrix, 544, 549 Job processing, 689-694,704 Join, see T-join
Knapsack problem: 0-1, 5, 265-270, 418, 420-422, 450-464 branch-and-bound, 454 linear programming relaxation, 451 primal heuristic, 452 separation algorithm, 462 integer, 125, 312 dynamic programming, 433 heuristics, 440, 442 multiple choice, 527 superadditive dual, 435 lower bound feasibility, 136 multidimensional, 5 Lagrangian: dual, 323-337,409 relaxation, 323-337 Lattice, 182, 518 basis of, 190, 197 Leaf, 53 Lexicographic, 34, 371-373 totally reverse, 568 LIFO (last in, first out), 358 Lifting, 261-267 heuristic for, 461 Linear algebra, 83 Linear equations problem, 121 integer feasibility, 182 Linear programming, 4, 27-49, 115, 122-124, 131 polynomial-time algorithms, 146-181 ellipsoid algorithm, 147-160 projective algorithm, 164-172 strongly polynomial for combinatorial problems, 172-180 Line Graph, 584 Logical inequalities, 19 Lot-sizing, 16 capacitated, 347 uncapacitated, 218, 288-290, 418, 422-424, 508-513 backlogging, 431 Matching, 226, 608-657 I-, 608 2-, 273, 469, 641, 647 fractional, 471, 494 inequality, 276, 490, 495 integer, 471, 483 algorithm: cardinality, 618, 625 bipartite, 612 weighted, 628 b-, 608, 640-648 0-1, 608, 647, 702 integer, 608, 643 perfect, 644 bonds, 144 perfect, 480, 638, 649 polytope, 633, 636-640
Subject Index
c,
Matching (Continued) problem, 5, 400, 608 cardinality, 608, 611-626 weighted, 124, 608, 627-636 separation, 658 Matroid, 659-703 basis, 664 binary, 714 circuit, 664 cographic, 665, 667 covering with inaependent sets, 702 dual, 665 exchange property, 664 graphic, 660, 665 greedy algorithm for maximum-weight independent sets, 666-671 intersection, 671-678, 692 algorithm: maximum cardinality, 677, 706 weighted, 684 k-, 661, 709 polytope, 688 problem, 671 weighted, 678-688 matric, 660, 665 optimization problem, 661 partition, 660, 704 polytope, 668 rank function, 665 representation, 666 span, 664 sum, 704 union, 705-706 Max-min equality, 591 strong, 592 Membership problem, 139, 141 extreme point, 141 strict, 148 Minkowski's theorem, 96 MIR inequality, see Mixed-integer, rounding Mixed-integer: cutting-plane algorithm, 374 programming problem, 3, 115, 338, 374, 413 dual, 308 rounding, 244-246 set, 242-254 Model formulation, 5-17 choices in, 14 valid inequalities, 217 Modular arithmetic, 212, 236, 312 Multigraph, 478
Neighborhood, 407 subtree, 571 Neighbors, 576 Network: design, 3
flow problem, 8, 62, 76, 549 fixed-charge, see Fixed-charge primal simplex algorithm, 76-81 matrix, 546-561 Node, 50 conservation, 62 cover, 144 covering by edges, 608 demand, 62 duplication, 582 even, 612 exposed, 611 induced subgraph, 52, 579-580 intermediate, 52 isolated, 53 minimal, 675 odd, 612 partition, 537 selection, see Branch-and-bound simplicial, 576 supply, 62 Node-arc incidence matrix, 54 Node-edge incidence matrix, 51 Node-induced subgraph, 575, 582 Node-neighborhood subtree incidence matrix, 572 Node packing, 115-117, 216, 297, 307, 467-468, 573-585, 594 polytope, 141, 163, 259-261, 574 unweighted, lower bound feasibility, 133 Node-star incidence matrix, 571 Nondecreasing, 229, 660 Nondeterministic: algorithm, 128, 131 polynomial, 127, 129, 141 Nondifferentiable optimization, 41 Nonlinear function, 10 Nonsingular, 150 NP, see Nondeterministic NP-complete, 131 strongly, 138 NP-hard, 138 Objective function, 4 nonlinear, 11 Objective rounding algorithm, 177 Objective value, 107 Odd-set constraints, 124, 610 O() notation, 57, .Optimal: solution, 4, 94-95, 536 value, 4, 107 Optimality conditions, 296 Optimization, 161 Orthonormal matrix, 150 Packing, 6, 115, 117, 299, 394, 401, 464 fractional, 103, 562, 571 Partition, 6, 352, 704 feasibility, 134-135
Subject Index
Path, 52 alternating, 611 augmenting, 64, 66, 75, 611-612 algorithm, 65 shortest, 67 clutter, 587 directed, 54 maximum weight, 308, 320 minimum weight, 56, 58, 121, 444, 511, 535, 586-587,592 shortest, 55-59 Perfect, 573-585 elimination scheme, 576 graph, 574 conjecture, 576 theorem, 582 matching, see Matching Performance guarantee, 399, 477 Perturbation lemma, 168 Phase I, 36, 78 Piecewise linear function, 11,329, 366 Pivot element, 33 Polar, 99, 139, 206 I-, 100, 163, 239 Polarity, 98-104 Polyhedron, 85-98, 139, 161 bounded, 86 dual, 108 full-dimensional, 86 integral, 535-607, 638, 669 minimal representation, 91, 539 projection of, 97-98 rational, 85 volume, 148 . Polyrnatroid, 688-694 polytope, 690 rank function, 688 calculation of, 693 separation, 693 Polynomial: equivalence, 161, 163, 387, 592 function, 127 normalization, 176 reduction, 132 space, 121 -time, 146, 162-163 algorithm, 119 strong, 172 combinatorial algorithm for linear programs, 172-180 transformation, 131 Polytope, 86 full-dimensional, 100 integral, 562 master, 238, 241 round, 515 Portfolio analysis, 3 Positive definite, 147, 150 Positive homogeneity, 247
Postman problem, 609, 648 Precision, finite, 157, 159 Preprocessing, 17-20 Primal: -dual algorithm,.69-70 heuristic, 452, 475 problem, 28, 97 simplex algorithm, 33, 76 Principle of optimality, 419 Priorities, 359 Probabilistic analysis, 408 Problem, 115 Production planning, 290 Production scheduling, 3, 16 Projection, 49, 85, 98, 164 Projective algorithm, 164-172 Pruning, 352-357 Pseudonode, 616 Pseudopolynomial, 137,421 Pure integer programming problem, see Integer programming problem Quadratic Boolean function, 695, 697, 701, 711 Radius, 571 Rank, 76, 84,226 bounded, 227 Rational: approximation problem, 183 number, 120, 183 polyhedron, 85 Ray, 93, 164 epsilon-approximate, 166 extreme, see Extreme ray integer, 104 Recognition problem, 127, 550, 555, 565, 570 Reduced basis of a lattice, 184, 195-201, 518 algorithm, 199 applications, 513 heuristic, 514 Reduced price, 20, 32, 392 Reduced problem, 453 Reduction, 132 Reformulation, see Formulation Relative error, 399 Relatively prime, 183 Relaxation, 296-300, 353 adding variables, 299 algorithm, 349, 482 dual, 300 choice of, 383 group, 298 Lagrangian, 298, 323-337, 410 linear programming, 298, 355, 451 state space, 431 surrogate, 334 Representation, 88 Restriction, 344 Rotation, 151
Subject Index
Round, 515 Rounding, 160, 227 heuristic, 440 integer, 209, 232-233, 594-598 method, 210 Row inclusion matrix, 565-566 Row intersection graph, 550 Running time, 119 Satisfiability problem, 133 Scaling, 72 heuristic, 441 Scheduling, 3, 13, 287, 347 Search: breadth-first, 67, 359 depth-first, 358 feasibility, 457 local improvement, 458 Separable, see Function, separable; Set, separable Separation, 161-164 algorithm, 412, 462, 487 problem, 161, 387, 459, 499, 693 Sequential decision process, 417 Set: dependent, 265, 283, 659 extension, 266 minimal, 266 independent, 265, 281, 659 separable, 670 Set-covering problem, see Covering Set-function maximization, 393 Set-packing problem, see Packing Set-partitioning problem, see Partition Short, 124 Shortest path problem, see Path, shortest Shortest vector problem, 182, 197, 200 Shrinking, 487, 616 Simplex, 516 algorithm: dual, 37 primal, 33 simple upper bounds, 39 Simplex-based heuristic, 457 Simplicial, 576 Simulated annealing, 407 Single source problem, 496, 506 Size of problem instance, 118 Sliding objective function, 155 Smith normal form, 195, 319 Space requirements, 121 Sphere, 147 Star, 551 minimum weight, 586 State, 417 Steepest ascent, 43 Steiner branching problem, 496, 507 Subdifferential, 45 Subgradient, 45, 409 algorithm, 46, 410, 484 optimization, 41-49, 409
Subgraph, 52 induced, 52 spanning, 52 Submodular, 144, 403, 660, 662-663 function maximization, 708-712 greedy algorithm, 712 function minimization, 693-702 Subset sum problem, 136, 513 Subspace, 85 orthogonal, 85 Subtour, 10,273 elimination constraints, 273-275, 470, 487 Superadditive, 229-237, 300, 316, 320 dual algorithm, 435 duality, 304-312 dual problem, 304 valid inequality, 230, 237-242 mixed-integer, 246-254 Supermodular, 660 Supply-demand vector, 596 Supply nodes, 596 Support, 88 TB , see Balanced matrix T-cut, 649-651 TDI, see Dual, integral T-join, 648-651, 702 Tour, 10, 270,469, 588 Transformation, 131 Transportation problem, 62, 68, 122 primal-dual algorithm, 68-76 Transpose, 540, 564 Transversal, 714 Traveling salesman: polytope, 270-281 dimension, 272 Traveling salesman problem, 9, 16, 586 symmetric, 469-495 branch-and-bound, 482 1-tree, subgradient, 484 assignment problem, 482 PCP, 485 heuristics, 475 double spanning tree, 479 greedy feasible, 476 interchange, 477 nearest insertion, 477 nearest neighbor, 475 spanning tree, perfect matching, 480 relaxations, 469 2-matching, 469, 475 1-tree, 470,473 fractional, 471 integer, 471 Tree, 53 I-, 470, 484, 494 directed, 55, 546 edge-path incidence matrix, 550-559 recognition algorithm, 555 polytope, 669, 698
Su' I
Subject Index spanning, 55, 77, 546 minimum weight, 60-61 Triangle inequality, 478 TU, see Unimodular matrix
UFL, see Facility location, uncapacitated ULS, see Lot-sizing, uncapacitated Unary, 137 Unbounded, 4, 95, 107 Unimodular matrix, 189,319 totally, 540-546, 549, 561, 574 Valid inequality, 88, 205-295 generating all, 217-227 knapsack, 0-1, 265-270 mixed integer sets, 242-246 node packing, 259-261 rank, 226-227 representing a face, 88 strong, 259-290, 386 superadditive, 230, 237-242, 249, 252 supporting, 88 traveling salesman, 270-281 variable upper bound flow model, 281290 Validity problem, 139, 141 Value dominance, 352
Value function, 300 Variable, 4 adding of, 39 artificial, 36 bounded, 222 branching, see Branch-and-bound complicating, 323 decision, 417 dichotomy, 356 fixing, 19, 452, 468 regular, 457 slack, 37 selection in branching, 359 Variable upper bound, 281 Vizing's theorem, 652 Walk, 52, 313 closed, 52 directed, 54 even, 54 length of, 52 odd, 54 Weyl's theorem, 98 Wheel, 110 Worst-case: analysis, 119, 399 performance, 399