Most natural optimization problems, including those arising in important application areas, are NP-hard. Therefore, under the widely believed conjecture that PNP, their exact solution is prohibitively time consuming. Charting the landscape of approximability of these problems, via polynomial-time algorithms, therefore becomes a compelling subject of scientific inquiry in computer science and mathematics. This book presents the theory of approximation algorithms.
This book is divided into three parts. Part I covers combinatorial algorithms for a number of important problems, using a wide variety of algorithm design techniques. Part II presents linear programming based algorithms. These are categorized under two fundamental techniques: rounding and the primal-dual schema. Part III covers four important topics: the first is the problem of finding a shortest vector in a lattice; the second is the approximability of counting, as opposed to optimization, problems; the third topic is centered around recent breakthrough results, establishing hardness of approximation for many key problems, and giving new legitimacy to approximation algorithms as a deep theory; and the fourth topic consists of the numerous open problems of this young field.
This book is suitable for use in advanced undergraduate and graduate-level courses on approximation algorithms. An undergraduate course in algorithms and the theory of NP-completeness should suffice as a prerequisite for most of the chapters. This book can also be used as supplementary text in basic undergraduate and graduate algorithms courses.