Book contents
- Frontmatter
- Contents
- Preface
- I An Introduction to the Techniques
- 1 An Introduction to Approximation Algorithms
- 2 Greedy Algorithms and Local Search
- 3 Rounding Data and Dynamic Programming
- 4 Deterministic Rounding of Linear Programs
- 5 Random Sampling and Randomized Rounding of Linear Programs
- 6 Randomized Rounding of Semidefinite Programs
- 7 The Primal-Dual Method
- 8 Cuts and Metrics
- II Further Uses of the Techniques
- Appendix A Linear Programming
- Appendix B NP-Completeness
- Bibliography
- Author Index
- Subject Index
4 - Deterministic Rounding of Linear Programs
from I - An Introduction to the Techniques
Published online by Cambridge University Press: 05 June 2012
- Frontmatter
- Contents
- Preface
- I An Introduction to the Techniques
- 1 An Introduction to Approximation Algorithms
- 2 Greedy Algorithms and Local Search
- 3 Rounding Data and Dynamic Programming
- 4 Deterministic Rounding of Linear Programs
- 5 Random Sampling and Randomized Rounding of Linear Programs
- 6 Randomized Rounding of Semidefinite Programs
- 7 The Primal-Dual Method
- 8 Cuts and Metrics
- II Further Uses of the Techniques
- Appendix A Linear Programming
- Appendix B NP-Completeness
- Bibliography
- Author Index
- Subject Index
Summary
In the introduction, we said that one of the principal theses of this book is the central role played by linear programming in the design and analysis of approximation algorithms. In the previous two chapters, we have not used linear programming at all, but starting with this chapter we will be using it extensively.
In this chapter, we will look at one of the most straightforward uses of linear programming. Given an integer programming formulation of a problem, we can relax it to a linear program. We solve the linear program to obtain a fractional solution, then round it to an integer solution via some process.
The easiest way to round the fractional solution to an integer solution in which all values are 0 or 1 is to take variables with relatively large values and round them up to 1, while rounding all other variables down to 0. We saw this technique in Section 1.3 applied to the set cover problem, in which we chose sets whose corresponding linear programming variables were sufficiently large. We will see another application of this technique when we introduce the prize-collecting Steiner tree problem in Section 4.4. We will revisit this problem several times in the course of the book. For this problem we give an integer programming relaxation in which there are 0-1 variables for both nodes and edges. We round up the node variables that are sufficiently large in order to decide which nodes should be spanned in a solution; we then find a tree spanning these nodes.
- Type
- Chapter
- Information
- The Design of Approximation Algorithms , pp. 73 - 98Publisher: Cambridge University PressPrint publication year: 2011