Figure slides available upon qualifying course adoption
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.
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.
Polynomial-Time Algorithms: Exercises
Introduction to Complexity
On the complexity to compute xn
Asymptotic notations: O, o, Θ, and Ω
Motivating example: the sports hall
Designing greedy algorithms
Theory of matroids
The coin changing problem
The knapsack problem
Designing dynamic-programming algorithms
Methods for amortized analysis
Exercises, Solutions, and Bibliographic Notes appear at the end of each chapter in this section.
NP-Completeness and Beyond
A practical approach to complexity theory
NP-complete problems and reduction theory
Examples of NP-complete problems and reductions
Importance of problem definition
Why does it matter?
Exercises on NP-Completeness
About graph coloring
More involved reductions
2-PARTITION is NP-complete
Polynomial problem instances
Branch-and-bound and backtracking
Exercises Going beyond NP-Completeness
Dealing with NP-complete problems
Reasoning on Problem Complexity
Reasoning to Assess a Problem Complexity
Set of problems with polynomial-time algorithms
Set of NP-complete problems
Optimal algorithms for homogeneous resources
Variants of the problem
Extension to a clique of heterogeneous resources
Replica Placement in Tree Networks
Variants of the replica placement problem
MEDP: Maximum edge-disjoint paths
PRVP: Packet routing with variable-paths
Matrix Product, or Tiling the Unit Square
A guaranteed heuristic
Flow time optimization
Yves Robert, École Normale Supérieure de Lyon, Institut Universitaire de France, and Université de Lyon, France
Anne Benoit and Frederic Vivien, École Normale Supérieure de Lyon, France
"This book is unique among texts on algorithmics in its emphasis on how to ‘think algorithmically’ rather than just how to solve specific (classes of) algorithmic problems. The authors skillfully engage the reader in a journey of algorithmic self-discovery as they cover a broad spectrum of issues, from the very basic (computing powers, coin changing) through the quite advanced (NP-completeness, polynomial-time approximation schemes). The authors emphasize algorithmic topics that have proven useful in ‘applied’ situations … . I shall be very happy to have this text on my bookshelf as a reference on methods as well as results."
—Arnold L. Rosenberg, Research Professor, Northeastern University, and Distinguished University Professor Emeritus, University of Massachusetts Amherst
"This book presents a well-balanced approach to theory and algorithms and introduces difficult concepts using rich motivating examples. It demonstrates the applicability of fundamental principles and analysis techniques to practical problems facing computer scientists and engineers. You do not have to be a theoretician to enjoy and learn from this book."
—Rami Melhem, Professor of Computer Science, University of Pittsburgh