Randomized Algorithms RAJEEV MOTWANI Department of Computer Science, Stanford University, Stanford, California PRABHAKAR RAGHAVAN IBM Almaden Research Center, San Jose, California Randomized algorithms, once viewed as a tool in computational number theory, have by now found widespread application. Growth has been fueled by the two major benefits of randomization: simplicity and speed. For many applications a randomized algorithm is the fastest algorithm available, or the simplest, or both. A randomized algorithm is an algorithm that uses random numbers to influence the choices it makes in the course of its computation. Thus its behavior (typically quantified as running time or quality of output) varies from one execution to another even with a fixed input. In the analysis of a randomized algorithm we establish bounds on the expected value of a performance measure (e.g., the running time of the algorithm) that are valid for every input; the distribution of the performance measure is on the random choices made by the algorithm based on the random bits provided to it. Caveat: The analysis of randomized algorithms should be distinguished from the probabilistic or average-case analysis of an algorithm, in which it is assumed that the input is chosen from a probability
/lp/association-for-computing-machinery/randomized-algorithms-PTKRu8EgkE