The design of approximation algorithms /

Saved in:
Bibliographic Details
Author / Creator:Williamson, David P.
Imprint:New York : Cambridge University Press, 2011.
Description:xi, 504 p. : ill. ; 26 cm.
Language:English
Subject:
Format: Print Book
URL for this record:http://pi.lib.uchicago.edu/1001/cat/bib/8391831
Hidden Bibliographic Details
Other authors / contributors:Shmoys, David Bernard.
ISBN:9780521195270 (hardback)
0521195276 (hardback)
Notes:Includes bibliographical references and indexes.
Summary:"Discrete optimization problems are everywhere, from traditional operations research planning problems, such as scheduling, facility location, and network design; to computer science problems in databases; to advertising issues in viral marketing. Yet most such problems are NP-hard. Thus unless P = NP, there are no efficient algorithms to find optimal solutions to such problems. This book shows how to design approximation algorithms: efficient algorithms that find provably near-optimal solutions. The book is organized around central algorithmic techniques for designing approximation algorithms, including greedy and local search algorithms, dynamic programming, linear and semidefinite programming, and randomization. Each chapter in the first part of the book is devoted to a single algorithmic technique, which is then applied to several different problems. The second part revisits the techniques but offers more sophisticated treatments of them. The book also covers methods for proving that optimization problems are hard to approximate. Designed as a textbook for graduate-level algorithms courses, the book will also serve as a reference for researchers interested in the heuristic solution of discrete optimization problems"--
Table of Contents:
  • Preface
  • I. An Introduction to the Techniques
  • 1. An Introduction to Approximation Algorithms
  • 1.1. The Whats and Whys of Approximation Algorithms
  • 1.2. An Introduction to the Techniques and to Linear Programming: The Set Cover Problem
  • 1.3. A Deterministic Rounding Algorithm
  • 1.4. Rounding a Dual Solution
  • 1.5. Constructing a Dual Solution: The Primal-Dual Method
  • 1.7. A Randomized Rounding Algorithm
  • Exercises
  • Chapter Notes
  • 2. Greedy Algorithms and Local Search
  • 2.1. Scheduling Jobs with Deadlines on a Single Machine
  • 2.2. The k-Center Problem
  • 2.3. Scheduling Jobs on Identical Parallel Machines
  • 2.4. The Traveling Salesman Problem
  • 2.5. Maximizing Float in Bank Accounts
  • 2.6. Finding Minimum-Degree Spanning Trees
  • 2.7. Edge Coloring
  • Exercises
  • Chapter Notes
  • 3. Rounding Data and Dynamic Programming
  • 3.1. The Knapsack Problem
  • 3.2. Scheduling Jobs on Identical Parallel Machines
  • 3.3. The Bin-Packing Problem
  • Exercises
  • Chapter Notes
  • 4. Deterministic Rounding of Linear Programs
  • 4.1. Minimizing the Sum of Completion Times on a Single Machine
  • 4.2. Minimizing the Weighted Sum of Completion Times on a Single Machine
  • 4.3. Solving Large Linear Programs in Polynomial Time via the Ellipsoid Method
  • 4.4. The Prize-Collecting Steiner Tree Problem
  • 4.5. The Uncapacitated Facility Location Problem
  • 4.6. The Bin-Packing Problem
  • Exercises
  • Chapter Notes
  • 5. Random Sampling and Randomized Rounding of Linear Programs
  • 5.1. Simple Algorithms for MAX SAT and MAX CUT
  • 5.2. Derandomization
  • 5.3. Flipping Biased Coins
  • 5.4. Randomized Rounding
  • 5.5. Choosing the Better of Two Solutions
  • 5.6. Nonlinear Randomized Rounding
  • 5.7. The Prize-Collecting Steiner Tree Problem
  • 5.8. The Uncapacitated Facility Location Problem
  • 5.9. Scheduling a Single Machine with Release Dates
  • 5.10. Chernoff Bounds
  • 5.11. Integer Multicommodity Flows
  • 5.12. Random Sampling and Coloring Dense 3-Colorable Graphs
  • Exercises
  • Chapter Notes
  • 6. Randomized Rounding of Semidefinite Programs
  • 6.1. A Brief Introduction to Semidefinite Programming
  • 6.2. Finding Large Cuts
  • 6.3. Approximating Quadratic Programs
  • 6.4. Finding a Correlation Clustering
  • 6.5. Coloring 3-Colorable Graphs
  • Exercises
  • Chapter Notes
  • 7. The Primal-Dual Method
  • 7.1. The Set Cover Problem: A Review
  • 7.2. Choosing Variables to Increase: The Feedback Vertex Set Problem in Undirected Graphs
  • 7.3. Cleaning Up the Primal Solution: The Shortest s-t Path Problem
  • 7.4. Increasing Multiple Variables at Once: The Generalized Steiner Tree Problem
  • 7.5. Strengthening Inequalities: The Minimum Knapsack Problem
  • 7.6. The Uncapacitated Facility Location Problem
  • 7.7. Lagrangean Relaxation and the k-Median Problem
  • Exercises
  • Chapter Notes
  • 8. Cuts and Metrics
  • 8.1. The Multiway Cut Problem and a Minimum-Cut-Based Algorithm
  • 8.2. The Multiway Cut Problem and an LP Rounding Algorithm
  • 8.3. The Multicut Problem
  • 8.4. Balanced Cuts
  • 8.5. Probabilistic Approximation of Metrics by Tree Metrics
  • 8.6. An Application of Tree Metrics: Buy-at-Bulk Network Design
  • 8.7. Spreading Metrics, Tree Metrics, and Linear Arrangement
  • Exercises
  • Chapter Notes
  • II. Further Uses of the Techniques
  • 9. Further Uses of Greedy and Local Search Algorithms
  • 9.1. A Local Search Algorithm for the Uncapacitated Facility Location Problem
  • 9.2. A Local Search Algorithm for the k-Median Problem
  • 9.3. Minimum-Degree Spanning Trees
  • 9.4. A Greedy Algorithm for the Uncapacitated Facility Location Problem
  • Exercises
  • Chapter Notes
  • 10. Further Uses of Rounding Data and Dynamic Programming
  • 10.1. The Euclidean Traveling Salesman Problem
  • 10.2. The Maximum Independent Set Problem in Planar Graphs
  • Exercises
  • Chapter Notes
  • 11. Further Uses of Deterministic Rounding of Linear Programs
  • 11.1. The Generalized Assignment Problem
  • 11.2. Minimum-Cost Bounded-Degree Spanning Trees
  • 11.3. Survivable Network Design and Iterated Rounding
  • Exercises
  • Chapter Notes
  • 12. Further Uses of Random Sampling and Randomized Rounding of Linear Programs
  • 12.1. The Uncapacitated Facility Location Problem
  • 12.2. The Single-Source Rent-or-Buy Problem
  • 12.3. The Steiner Tree Problem
  • 12.4. Everything at Once: Finding a Large Cut in a Dense Graph
  • Exercises
  • Chapter Notes
  • 13. Further Uses of Randomized Rounding of Semidefinite Programs
  • 13.1. Approximating Quadratic Programs
  • 13.2. Coloring 3-Colorable Graphs
  • 13.3. Unique Games
  • Exercises
  • Chapter Notes
  • 14. Further Uses of the Primal-Dual Method
  • 14.1. The Prize-Collecting Steiner Tree Problem
  • 14.2. The Feedback Vertex Set Problem in Undirected Graphs
  • Exercises
  • Chapter Notes
  • 15. Further Uses of Cuts and Metrics
  • 15.1. Low-Distortion Embeddings and the Sparsest Cut Problem
  • 15.2. Oblivious Routing and Cut-Tree Packings
  • 15.3. Cut-Tree Packings and the Minimum Bisection Problem
  • 15.4. The Uniform Sparsest Cut Problem
  • Exercises
  • Chapter Notes
  • 16. Techniques in Proving the Hardness of Approximation
  • 16.1. Reductions from NP-Complete Problems
  • 16.2. Reductions that Preserve Approximation
  • 16.3. Reductions from Probabilistically Checkable Proofs
  • 16.4. Reductions from Label Cover
  • 16.5. Reductions from Unique Games
  • Chapter Notes
  • 17. Open Problems
  • Appendix A. Linear Programming
  • Appendix B. NP-Completeness
  • Bibliography
  • Author Index
  • Subject Index