"The book gives an introduction to (design and analysis of) randomized algorithms. It is a self-contained textbook primarily for students. ... The proofs are precise and contain all details. This makes the book perfect for self-study. ... A student ... will be happy to find everything defined precisely and explained in detail." (Benjamin Doerr, Zentralblatt MATH, Vol. 1083, 2006)
"Theory of Computing community (especially those who work on Algorithm Design) is well acquainted with the concept of Randomization. ... this book still gives a fresh and interesting point of view to Randomization and Randomized Algorithms. ... This is a very good to excellent textbook on the Design and Analysis of Randomized Algorithms. Its unique ... feature is that it explicitly isolates and promotes the most important design techniques; this is really a great experience for the incoming theorist to specialize on Randomized Algorithms." (Marios Mavronicolas, SIGACT News, Vol. 40 (2), 2009)
Fundamentals.- Foiling the Adversary.- Fingerprinting.- Success Amplification and Random Sampling.- Abundance of Witnesses.- Optimization and Random Rounding.
Randomness is a powerful tool for solving various problems in all areas of computer applications. Randomized algorithms are often more efficient, simpler (and so easier to implement), and surprisingly also more reliable than their best deterministic counterparts. This book does not only systematically teach the paradigmic algorithm design methods, such as foiling an adversary, abundance of witnesses, fingerprinting, amplification, and random sampling, but it also provides a deep insight into the nature of the success of randomization. Taking sufficient space for presenting motivation and for developing reader's intuition. It is an ideal introduction to the subject.
Randomness is a powerful phenomenon that can be harnessed to solve various problems in all areas of computer science. Randomized algorithms are often more efficient, simpler and, surprisingly, also more reliable than their deterministic counterparts. Computing tasks exist that require billions of years of computer work when solved using the fastest known deterministic algorithms, but they can be solved using randomized algorithms in a few minutes with negligible error probabilities.
Introducing the fascinating world of randomness, this book systematically teaches the main algorithm design paradigms – foiling an adversary, abundance of witnesses, fingerprinting, amplification, and random sampling, etc. – while also providing a deep insight into the nature of success in randomization. Taking sufficient time to present motivations and to develop the reader's intuition, while being rigorous throughout, this text is a very effective and efficient introduction to this exciting field.