he book is organized around several 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 who are interested in the heuristic solution of discrete optimization problems. |