Abstract
Probabilistic, or randomized, algorithms are fast becoming as commonplace as conventional deterministic algorithms. This survey presents five techniques that have been widely used in the design of randomized algorithms. These techniques are illustrated using 12 randomized algorithms—both sequential and distributed— that span a wide range of applications, including:primality testing 1994, interactive probabilistic proof systems (a new method of program testing), dining philosophers (a classical problem in distributed computing), and Byzantine agreement (reaching agreement in the presence of malicious processors). Included with each algorithm is a discussion of its correctness and its computational complexity. Several related topics of interest are also addressed, including the theory of probabilistic automata, probabilistic analysis of conventional algorithms, deterministic amplification, and derandomization of randomized algorithms. Finally, a comprehensive annotated bibliography is given. © 1994, ACM. All rights reserved.
Author supplied keywords
- Analysis of Algorithms
- Byzantine agreement
- CSP
- computational complexity
- dining philosophers problem
- distributed algorithms
- graph isomorphism
- hashing
- interactive probabilistic proof systems
- leader election
- message routing
- nearest-neighbors problem
- perfect hashing
- primality testing
- probabilistic techniques
- randomized or probabilistic algorithms
- randomized quicksort
- sequential algorithms
- transitive tournaments
- universal hashing
Cite
CITATION STYLE
Gupta, R., Smolka, S. A., & Bhaskar, S. (1994). On Randomization in Sequential and Distributed Algorithms. ACM Computing Surveys (CSUR), 26(1), 7–86. https://doi.org/10.1145/174666.174667
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.