ABSTRACT

Presenting a complementary perspective to standard books on algorithms, A Guide to Algorithm Design: Paradigms, Methods, and Complexity Analysis provides a roadmap for readers to determine the difficulty of an algorithmic problem by finding an optimal solution or proving complexity results. It gives a practical treatment of algorithmic complexity and guides readers in solving algorithmic problems.

Divided into three parts, the book offers a comprehensive set of problems with solutions as well as in-depth case studies that demonstrate how to assess the complexity of a new problem.

  • Part I helps readers understand the main design principles and design efficient algorithms.
  • Part II covers polynomial reductions from NP-complete problems and approaches that go beyond NP-completeness.
  • Part III supplies readers with tools and techniques to evaluate problem complexity, including how to determine which instances are polynomial and which are NP-hard.

Drawing on the authors’ classroom-tested material, this text takes readers step by step through the concepts and methods for analyzing algorithmic complexity. Through many problems and detailed examples, readers can investigate polynomial-time algorithms and NP-completeness and beyond.

part I|2 pages

I Polynomial-time algorithms: Exercises

chapter 1|30 pages

Introduction to complexity

chapter 2|20 pages

Divide-and-conquer

chapter 3|28 pages

Greedy algorithms

chapter 4|24 pages

Dynamic programming

chapter 5|18 pages

Amortized analysis

part II|2 pages

II NP-completeness and beyond

chapter 6|24 pages

NP-completeness

chapter 7|30 pages

Exercises on NP-completeness

chapter 8|32 pages

Beyond NP-completeness

chapter 9|28 pages

Exercises going beyond NP-completeness

part III|2 pages

III Reasoning on problem complexity

chapter 10|8 pages

Reasoning to assess a problem complexity

chapter 11|12 pages

Chains-on-chains partitioning

chapter 12|26 pages

Replica placement in tree networks

chapter 13|16 pages

Packet routing

chapter 14|18 pages

Matrix product, or tiling the unit square

chapter 15|28 pages

Online scheduling