nemhauserllrc.mcast.edu.mt/digitalversion/table_of_contents...xii 6. polyhedral ties between linear...
TRANSCRIPT
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. Introduction 2. Duality 3. The Primal and Dual Simplex Algorithms 4. Subgradient Optimization 5. Notes
1.3 Graphs and Networks
1. Introduction 2. The Minimum-Weight or Shortest-Path Problem 3. The Minimum-Weight Spanning Tree Problem 4. The Maximum-Flow and Minimum-Cut Problems 5. The Transportation Problem: A Primal-Dual Algorithm 6. A Primal Simplex Algorithm for Network Flow Problems 7. Notes
1.4 Polyhedral Theory
1. Introduction and Elementary Linear Algebra 2. Definitions of Polyhedra and Dimension 3. Describing Polyhedra by Facets 4. Describing Polyhedra by Extreme Points and Extreme Rays 5. Polarity
xii
6. Polyhedral Ties Between Linear and Integer Programs 7. Notes 8. Exercises
Contents
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 Nondeterministic Polynomial-Time Algorithms and N 9 Problems The Most Difficult NP Problems: The Class N9% Complexity and Polyhedra Notes Exercises
1.6 Polynomial-Time Algorithms for Linear Programming 146
1. Introduction 146 2. The Ellipsoid Algorithm 147 3. The Polynomial Equivalence of Separation and Optimization 16 1 4. A Projective Algorithm 164 5. A Strongly Polynomial Algorithm for Combinatorial Linear Programs 172 6. Notes 180
Integer Lattices
1. Introduction 2. The Euclidean Algorithm 3. Continued Fractions 4. Lattices and Hermite Normal Form 5. Reduced Bases 6. Notes 7. Exercises
PART 11. GENERAL INTEGER PROGRAMMING
11.1 The Theory of Valid Inequalities
1. Introduction 2. Generating All Valid Inequalities 3. Gomory's Fractional Cuts and Rounding 4. Superadditive Functions and Valid Inequalities 5. A Polyhedral Description of Superadditive Valid Inequalities for
Independence Systems 6. Valid Inequalities for Mixed-Integer Sets 7. Superadditivity for Mixed-Integer Sets 8. Notes 9. Exercises
Contents
11.2 Strong Valid Inequalities and Facets for Structured Integer Programs
1. Introduction 2. Valid Inequalities for the 0-1 Knapsack Polytope 3. Valid Inequalities for the Symmetric Traveling Salesman Polytope 4. Valid Inequalities for Variable Upper-Bound Flow Models 5. Notes 6. Exercises
11.3 Duality and Relaxation
1. Introduction 2. Duality and the Value Function 3. Superadditive Duality 4. The Maximum-Weight Path Formulation and Superadditive Duality 5. Modular Arithmetic and the Group Problem 6. Lagrangian Relaxation and Duality 7. Benders' Reformulation 8. Notes 9. 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-Purpose Algorithms
1. Introduction 2. A Cutting-Plane Algorithm Using Strong Valid Inequalities 3. Primal and Dual Heuristic Algorithms 4. Decomposition Algorithms 5. Dynamic Programming 6. Notes 7. Exercises
11.6 Applications of Special-Purpose Algorithms
1. Knapsack and Group Problems 2. 0-1 Integer Programming Problems 3. The Symmetric Traveling Salesman Problem 4. Fixed-Charge Network Flow Problems 5. Applications of Basis Reduction 6. Notes 7. 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 608
1. Introduction 2. Maximum-Cardinality Matching 3. Maximum-Weight Matching 4. Additional Results on Matching and Related Problems 5. Notes 6. Exercises
DP.3 Mratroid and Submodular Function Optimization 659
1. Introduction 659 2. Elementary Properties 662 3. Maximum-Weight Independent Sets 666 4. . Matroid Intersection 67 1 5. Weighted Matroid Intersection 678 6. Polymatroids, Separation, and Submodular Function Minimization 688 7. Algorithms To Minimize a Submodular Function 694 8. Covering with Independent Sets and Matroid Partition 702 9. Submodular Function Maximization 708
10. Notes 712 11. Exercises 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, 482- 483
1-tree, subgradient optimization, branch-and- bound, 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 %.
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
i 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
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
Subject Index
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, 11 1 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, 125- 128
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
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
c, 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
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
Su' Subject Index
I
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
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, 281-
290 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