Integer and Combinatorial Optimization WILEY-INTERSCIENCE SERIES IN DISCRETE MATHEMATICS AND OPTIMIZATION ADVISORY EDITORS RONALD L. GRAHAM AT & T Laboratories. Florham Park. New Jersey, US.A. JAN KAREL LENSTRA Department ofM athematics and Computer Science, Eindhoven University ofT echnology, Eindhoven, The Netherlands ROBERT E. TARJAN Princeton University, New Jersey, and NEC Research Institute. Princeton, New Jersey. US.A. A complete list of titles in this series appears at the end of this volume. Integer and Combinatorial Optimization GEORGE NEMHAUSER School of Industrial and Systems Engineering Georgia Institute of Technology Atlanta, Georgia LAURENCE WOLSEY Center for Operations Research and Econometrics Universite Catholique de Louvain Louvain-Ia-Neuve, Belgium A Wiley-Interscience Publication JOHN WILEY & SONS, INC. New York • Chichester • Weinheim • Brisbane • Singapore • Toronto To our parents Preface The explosion of new results in integer and combinatorial optimization that began about fifteen years ago inspired us to write a book that would unify theory and algorithms and could serve as a graduate text and reference for researchers and practitioners. We have been very excited about many of the new developments that have made it possible to solve large-scale integer programming problems and that have opened up new areas of research which surely will yield more robust and efficient algorithms. Little did we realize the enormity of the task. Both of us worked steadily on this project for more than four years. The end result was a manuscript of nearly 1400 typewritten pages which, although it does not come close to covering all of the literature, covers those topics that we believe constitute the most significant theoretical and algorithmic developments. Optimization means to maximize (or minimize) a function of many variables subject to constraints. The distinguishing feature of discrete, combinatorial, or integer optimization is that some of the variables are required to belong to a discrete set, typically a subset of integers. These discrete restrictions allow the mathematical representation of phenomena or alternatives where indivisibility is required or where there is not a continuum of alternati ves. Discrete optimization problems abound in everyday life. An important and widespread area of applications concerns the management and efficient use of scarce resources to increase productivity. These applications include operational problems such as the distri bution of goods, production scheduling, and machine sequencing. They also include planning problems such as capital budgeting, facility location and portfolio selection, and design problems such as telecommunication and transportation network design, VLSI circuit design and the design of automated production systems. Discrete optimization problems also arise in statistics (data analysis), physics (determination of minimum energy states), cryptography (designing unbreakable codes), politics (selecting fair election districts), and mathematics (as a powerful technique for proving combinatorial theorems). Moreover, applications of discrete optimization are in a period of rapid development because of the widespread use of microcomputers and the data provided by information systems. This is particularly relevant in the manufacturing sector of the economy where increased competition and flexibility provided by new technology make it imperative to seek better solutions from larger and more complex sets of alternatives. This book is about the mathematics of discrete optimization, which includes the representation of problems by mathematical models and, especially, the solution of the models. The focus is on understanding the mathematical underpinnings of the algorithms that make it possible to solve (exactly or approximately) the large and complex models that arise in practical applications. Chapter I.l discusses problem formulation, which is important not only to demonstrate the scope of applications, but also because the structure of the formulation is of crucial vii viii Preface importance to solving the model. Chapter 1.1 gives a comprehensive treatment of this subject. The remainder of Part I presents mathematics and algorithms that are the foundations for the discrete optimization theory and techniques of Parts II and III. There are chapters on well-established subjects including linear programming (Chapter 1.2), graphs and networks (Chapter 1.3), and computational complexity (Chapter 1.5). The presentation of polyhedral theory (Chapter 1.4) begins with basic results from linear algebra and then emphasizes precisely those results that are essential to a fundamental understanding of the algebra and geometry of the convex hull of a discrete set. Chapter 1.6 gives new algorithms and results on linear programming and, in particular, establishes the fundamental connection between separation and optimization. Chapter I. 7 presents a modern treat ment of the classical problem of solving linear equations in integers and also includes an introduction to the recent work on reduced bases for integer lattices. Parts II and III present basic approaches and algorithms for solving discrete optimiza tion problems. Part II deals with general problems and those that contain some structure. These are the problems that are hard to solve but, for the most part, they are the ones that arise in practical applications. Chapters 11.1 and 11.2 treat the problem of describing the set of feasible solutions to an integer program by a set of linear inequalities. It begins with elementary ideas, but also includes a thorough development of advanced topics such as superadditive valid inequali ties and the use of structure to obtain facet-defining inequalities. Objective functions for integer programs are introduced in Chapter 11.3 where the fundamental approaches of relaxation and duality are developed for the purpose of obtaining upper bounds on the optimal value. Most of the advanced material in these chapters has appeared only in research articles and monographs, but is essential for the development of future genera tion algorithms for solving integer programs. Algorithms are presented in Chapters 11.4, 11.5 and 11.6. Chapter 11.4 presents classical branch-and-bound and cutting plane algorithms. Specialized algorithms that use varying degrees of structure to obtain exact or approximate solutions are presented in Chapters 11.5 and 11.6. Here we study and illustrate a number of techniques that, for the most part, have been developed over the last decade and are not covered in the currently available textbooks. These include strong cutting plane algorithms, primal and dual heuristic analysis, decomposition and reduced bases, and their applications to 0-1 integer programs, the traveling salesman problem and fixed-charge network flow problems. Part III treats highly structured combinatorial optimization problems for which elegant results are known. Chapter 111.1 studies polyhedra with integral extreme points. It includes classical results on total unimodularity and recent results on totally balanced, balanced, and perfect matrices and on the blocking and antiblocking theory of polyhedra. Chapters 111.2 and 111.3 are on the classical combinatorial problems of matching and matroids, respectively. In both of these chapters the emphasis is on optimization algorithms, polyhedral combinatorics and duality. Chapter 111.3 also introduces the significant role of submodular and supermodular functions in combinatorial optimization. Notes appear at the end of each chapter. Their purpose is to reference our source materials, and to comment briefly on extensions and related topics that are not discussed in the body of the text. The citations and references are selective. With the exception of Chapter 1.1, in Part I our objective is to provide foundation material, and thus the notes are limited to a small number of references that cover the corresponding topics in much greater detail than is done here. However, in Parts II and III we have attempted to cite the original papers in which the material appears as well as some other influential works. The book can be used as a graduate text or for self-guided reading in several ways. Since we cannot imagine a reader who would want to undertake a straight cover-to-cover Preface ix reading and since our experience has shown that it is not possible to cover the whole book in even a two-semester, graduate level course, it is necessary to be selective in a first reading. For graduate students in mathematical programming, especially those planning to undertake research in discrete optimization, we suggest a full academic year course (course AY). Three one-semester options are: a course emphasizing practical algorithms (course PA), a course emphasizing general theory (course GT), and a course in polyhedral combinatorics (course PC). Each course should begin with some exposure to Chapter 1.1 on model formulation, which is important not only to demonstrate the scope of applications, but also because the structure of the formulation is of crucial importance in solving the model. Chapters 1.2 and 1.3 are only for review, since it is wise for any reader of the book to have studied linear programming as a prerequisite. But a typical linear programming course, unfortunately, does not cover polyhedral theory. Therefore, all courses should cover Chapter 104. In course PA, just enough of the first four sections should be covered (without proofs) for the student to understand the concept of facets of polyhedra and the idea of Theorem 6.1 on the convex hull of a discrete set of points. The coverage of Chapter 1.5 on computational complexity will depend on the students' backgrounds and the instructor's taste; but at the very least, students in all courses should be introduced to the concepts of polynomial computation and NP-completeness. Simi larly, students in all courses should be introduced to the concept of separation and the polynomial equivalence of separation and optimization (Section 1.6.3). This should be done very informally in course PA. Sections 1.6.2, 1.604 and 1.6.5 are independent reading and should be omitted in a first reading of the book. Chapter 1.7, and then Section 11.6.5, might be covered only in courses AY and GT ift ime permits at the end of the course. They can also be omitted in a first reading. Courses PA and GT focus on different parts of Part II. Course PC can omit Part II altogether, but would be more interesting if Sections 11.1.1, 11.1.2 (first-half), 11.2.1, 11.2.3, and 1I.6.3 also were included. The following sections from Part II are common to courses AY, PA, and GT: 11.1.1, 11.2.1, 11.2.2, 1I.3.l, 11.3.6, 11.3.7, 1104.1, 11.5.1, 11.5.2 and 11.5.3. Course PA should also cover Sections 1104.2, 11.504, 11.5.5, 11.6.1 (knapsack problem) and 11.6.2, and, if time permits, Sections 11.204 and 11.6.4. The instructor may find some time for the important class of problems and algorithms discussed in the later two sections by omitting or only sketching some proofs from the earlier sections. Course GT should also cover Sections 11.1.2 (leaving out the subsection on bounded integer variables), 11.1.3, 11.1.4, 11.1.5, 11.2.3, 11.3.2, and 11.3.3, and the first two sections of Chapter 111.1. If time permits, additional theoretical material could be selected from Sections 11.1.6, 11.1.7, 11.304, 11.3.5, or some algorithms could be studied from Sections 11.4.3,11.5.4 and the first three sections of Chapter 11.6. With respect to Part II, course AY is the union of the material covered in courses PC and GT. From Part III, course AY should also cover sections 111.1.1, 111.1.2, 111.1.4 and the first three sections of Chapter 111.2. Any remaining time could be spent on either sections 111.1.5, 111.1.6, or the first few sections of Chapter 111.3. The material to be selected from Part III for course PC can vary according to taste. We suggest all of Chapter 111.1 except for Section 111.1.3, the first 3 sections of Chapter 111.2 and the first 5 sections of Chapter 111.3. This book could not have been written without the tremendous support that we received from the Center for Operations Research and Econometrics (CORE) of the Universite Catholique de Louvain, and thus we are extremely grateful to Jacques Dreze, the founder and intellectual leader of CORE. x Preface We met at CORE in the winter of 1970. Nelnhauser spent the academic year 1969-1970 at CORE and Wolsey presented a seminar on his early work on the group-theoretic approach to integer programming. Subsequently, Wolsey became a permanent member of CORE and Nemhauser returned to CORE for the period 1975-1977 as Research Director. During this period, the authors collaborated extensively on research in the analysis of heuristics and other topics in integer and combinatorial optimization stimu lated by an active research group that included Jack Edmonds, Bob Bland, Guy de Ghellinck, Rick Giles, Bob Jeroslow, Tom Magnanti, Bill Pulleyblank, Mike Ball and Gerard Cornuejols. All of these people, as well as our Dutch neighbors, Jan-Karel Lenstra and Alexander Rinnooy Kan, contributed to our understanding of the subject and motivation to write a book. A NATO research grant made it possible for us to continue our research collaboration through the late seventies and early eighties, and we began to draft the manuscript earnestly during Nemhauser's fourth year at CORE in 1983-1984. During the writing of the book we benefitted from numerous discussions with our friends and professional colleagues including Egon Balas, Vasek Chvatal, Marshall Fisher, Martin Grotschel, Ellis Johnson, Manfred Padberg. Lex Schrijver, Jorgen Tind and Les Trotter. We are particu larly grateful to Gerard Cornuejols who read Parts I and II and provided extensive comments and suggestions and to Bill Pulleyblank who did the same for Part III. We are also thankful for the comments we received on various drafts of the text from Jorgen Tind, Bob Jeroslow, Alan Goldman, Anton Kolen, Jan-Karel Lenstra, Lex Schrijver, Donna Crystal Llewellyn, Martin Dyer, Mike Todd, Jean-Philippe Vial and John Vande Vate. Our students in courses given at CORE, Cornell and Georgia Tech found typos and other mistakes that otherwise would have been missed~ special thanks are due to Ronny Aboudi, Yves Pochet and Gabriele Sigismondi. The chores of deciphering our untidy handwritten drafts and of retyping endless revisions were done graciously and with utmost care and patience by the late Elizabeth Pecquereau, formerly a secretary at CORE. We are very sad that we will not be able to share the joy of seeing the final product with our dear friend Elizabeth. Fabienne Henry of CORE and Yvonne Kissi of Georgia Tech also did excellent jobs in typing parts of the manuscript. Sheila Verkaren of CORE always managed to spare some of Elizabeth's or Fabienne's time for our book, even though we were using far more than our fair share of CORE's secretarial resources. Over a period of four years, Ellen Nemhauser and Marguerite Wolsey were frequently ignored while their husbands spent evenings and weekends writing, and occasionally were imposed upon by a boarder who ate and slept at their house, but otherwise was too involved in mathematics to engage in civil conversation or to wash the dishes. We thank them for their love and patience and hope to make amends. GEORGE L. NEMHAUSER LAURENCE A. WOLSEY Allan/a, Georgia, USA Louvain-Ia-Neuve, Belgium February, 1988. Contents PART I. FOUNDATIONS 1 1.1 The Scope of Integer and Combinatorial Optimization 3 1. Introduction 3 2. Modeling with Binary Variables I: Knapsack, Assignment and Matching, Covering, Packing and Partitioning 5 3. Modeling with Binary Variables II: Facility Location, Fixed-Charge Network Flow, and Traveling Salesman 7 4. Modeling with Binary Variables III: Nonlinear Functions and Disjunctive Constraints 10 5. Choices in Model Formulation 14 6. Preprocessing 17 7. Notes 20 8. Exercises 22 1.2 Linear Programming 27 1. Introduction 27 2. Duality 28 3. The Primal and Dual Simplex Algorithms 30 4. Subgradient Optimization 41 5. Notes 49 1.3 Graphs and Networks 50 1. Introduction 50 2. The Minimum-Weight or Shortest-Path Problem 55 3. The Minimum-Weight Spanning Tree Problem 60 4. The Maximum-Flow and Minimum-Cut Problems 62 5. The Transportation Problem: A Primal-Dual Algorithm 68 6. A Primal Simplex Algorithm for Network Flow Problems 76 7. Notes 82 1.4 Polyhedral Theory 83 1. Introduction and Elementary Linear Algebra 83 2. Definitions of Polyhedra and Dimension 85 3. Describing Polyhedra by Facets 88 4. Describing Polyhedra by Extreme Points and Extreme Rays 92 5. Polarity 98 xi
Description: