Providing a comprehensive set of problem studies that builds on the authors' expertise and class-tested material, this useful manual offers a guided exploration of methods and techniques to assess problem complexity in the study and design of algorithms. The first part of the text presents background material on the study of algorithms and algorithm design, addressing such basic paradigms as divide-and-conquer, dynamic programming, and greedy algorithms. It also covers NP-completeness and beyond NP-completeness, including approximation results. The second part of the text is devoted to case studies that exploit tools and techniques for assessing problem complexity.
Table of Contents:
Polynomial-Time Algorithms: Exercises: Introduction to Complexity. Divide-and-Conquer. Greedy Algorithms. Dynamic Programming. Amortized Analysis. NP-Completeness and Beyond: NP-Completeness. Exercises on NP-Completeness. Beyond NP-Completeness. Exercises Going beyond NP-Completeness. Reasoning on Problem Complexity: Reasoning to Assess a Problem Complexity. Chains-on-Chains Partitioning. Replica Placement in Tree Networks. Packet Routing. Matrix Product, or Tiling the Unit Square. Online Scheduling. Bibliography. Index.
About the Author :
Yves Robert, Ecole Normale Superieure de Lyon, Institut Universitaire de France, and Universite de Lyon, France Anne Benoit and Frederic Vivien, Ecole Normale Superieure de Lyon, France
Review :
"This well-written book takes a fresh look at a classical subject, with features that will please both instructors and students. The book provides an insightful introduction to algorithm design with detailed coverage of a broad range of topics. The nice selection of exercises and the well-chosen case studies will be very useful for teachers of undergraduate courses. The sections devoted to the methodology of algorithm design should help students acquire a deeper understanding of advanced notions in complexity theory and approximation. A really nice job in both scope and style!"
—Denis Trystram, Distinguished Professor, Grenoble Institute of Technology
"Graduate students and instructors alike will find this book an invaluable resource. The subject matter is presented following a logical progression that makes students understand not only the principles behind algorithm design and analysis, but also the raison d’etre and the practical relevance of these principles. And yet, the book can also be used as a compendium of knowledge that provides the practitioner a quiver of algorithmic arrows. Finally, the extensive sets of motivating examples and exercises will prove instrumental for any instructor willing to develop an engaging course on advanced algorithms."
—Henri Casanova, Associate Professor, Department of Information and Computer Sciences, University of Hawai'i at Manoa
"This book is a great technical arsenal for every graduate student and post-graduate researcher. By providing a treasure trove of concrete algorithmic examples, the book trains the reader to recognize clues that indicate the complexity of a broad range of algorithmic problems, while supplying a battery of techniques for solving a particular problem in hand. The book is also a true source of inspiration for instructors looking for a material to teach advanced algorithms courses."
—Umit Catalyurek, Professor, Ohio State University
"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