On randomization in sequential and distributed algorithms

  • Authors:
  • Rajiv Gupta;Scott A. Smolka;Shaji Bhaskar

  • Affiliations:
  • GE Corporate R & D, K1-5C39, Schenectady, NY;Department of Computer Science, SUNY at Stony Brook, Stony Brook, NY;Bell Northern Research, 35 Davis Drive, Research Triangle Park, NC

  • Venue:
  • ACM Computing Surveys (CSUR)
  • Year:
  • 1994

Quantified Score

Hi-index 0.01

Visualization

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 (a classical problem in number theory), 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.