For many applications, a randomized algorithm is either the simplest or the fastest algorithm available, and sometimes both. This book introduces the basic concepts in the design and analysis of randomized algorithms. The first part of the text presents basic tools such as probability theory and probabilistic analysis that are frequently used in algorithmic applications. Algorithmic examples are also given to illustrate the use of each tool in a concrete setting. In the second part of the book, each chapter focuses on an important area to which randomized algorithms can be applied, providing a comprehensive and representative selection of the algorithms that might be used in each of these areas. Although written primarily as a text for advanced undergraduates and graduate students, this book should also prove invaluable as a reference for professionals and researchers.
Part I. Tools and Techniques: 1. Introduction; 2. Game-theoretic techniques; 3. Moments and deviations; 4. Tail inequalities; 5. The probabilistic method; 6. Markov chains and random walks; 7. Algebraic techniques; Part II. Applications: 8. Data structures; 9. Geometric algorithms and linear programming; 10. Graph algorithms; 11. Approximate counting; 12. Parallel and distributed algorithms; 13. Online algorithms; 14. Number theory and algebra; Appendix A: notational index; Appendix B: mathematical background; Appendix C: basic probability theory.
"The techniques described by Rajeev Motwani and Prabhaker Raghavan are wide-ranging and powerful, so this book is an important one...We are particularly lucky, therefore, that this excellent volume does us so proud!...clearly written and well thought out, with an interesting collection of exercises and applications, and shows the comprehensive breadth and valuable insights of a mature text...I would recommend the book both to newcomers to the field and to more seasoned practitioners...It is a pleasure to read." John H. Halton, American Scientist
"...the first comprehensive account of the current state of this burgeoning subject...Every aspect of this book...shows evidence of ample thoughtfulness...an essential acquisition..." D.V. Feldman, Choice
"Randomization has come to be recognized as a fundamental tool for the construction of simple and efficient algorithms. Motwani and Raghavan provide an excellent overview of randomized techniques in algorithm construction, demonstrating their impact on virtually every domain in which computation is done. This book will surely exert a powerful influence on the way algorithm design is practiced and taught." Richard M. Karp
"This is an authoritative work by researchers active in the field. The book is welcome as a reference work, as a source book for algorithmic ideas, and as a graduate-level course text....In the latter role, the book is greatly enhanced by the provision of numerous exercises scattered throughout the text (to test and deepen the reader's understanding), together with extensive selections of harder problems at the end of each chapter. The continued attention of seasoned researchers is assured by the inclusion of a number of open research problems. This is very much an active research area, and if newcomers are attracted into it through reading this book, then it will have served an additional useful purpose." Mark R. Jerrum, Mathematical Reviews
"The book can serve as an excellent basis for a graduate course. It is also highly recommended for students and researchers who wish to deepen their knowledge of the subject." Y. Aumann, Computing Reviews
"...carefully written, with exact definitions and complete proofs.... I believe that the book, with its vast coverage, will be an invaluable source for active researchers in the field." Y. Aumann, Theory of Computation