language-icon Old Web
English
Sign In

Randomized algorithm

A randomized algorithm is an algorithm that employs a degree of randomness as part of its logic. The algorithm typically uses uniformly random bits as an auxiliary input to guide its behavior, in the hope of achieving good performance in the 'average case' over all possible choices of random bits. Formally, the algorithm's performance will be a random variable determined by the random bits; thus either the running time, or the output (or both) are random variables. Pr [ f i n d   a ] = 1 − ( 1 / 2 ) k {displaystyle Pr=1-(1/2)^{k}} ∏ i = 1 m Pr ( C i ≠ C ) = ∏ i = 1 m ( 1 − Pr ( C i = C ) ) . {displaystyle prod _{i=1}^{m}Pr(C_{i} eq C)=prod _{i=1}^{m}(1-Pr(C_{i}=C)).} A randomized algorithm is an algorithm that employs a degree of randomness as part of its logic. The algorithm typically uses uniformly random bits as an auxiliary input to guide its behavior, in the hope of achieving good performance in the 'average case' over all possible choices of random bits. Formally, the algorithm's performance will be a random variable determined by the random bits; thus either the running time, or the output (or both) are random variables. One has to distinguish between algorithms that use the random input so that they always terminate with the correct answer, but where the expected running time is finite (Las Vegas algorithms, for example Quicksort), and algorithms which have a chance of producing an incorrect result (Monte Carlo algorithms, for example the Monte Carlo algorithm for the MFAS problem) or fail to produce a result either by signaling a failure or failing to terminate. In the second case, random performance and random output, the term 'algorithm' for a procedure is somewhat questionable. In the case of random output, it is no longer formally effective.However, in some cases, probabilistic algorithms are the only practical means of solving a problem. In common practice, randomized algorithms are approximated using a pseudorandom number generator in place of a true source of random bits; such an implementation may deviate from the expected theoretical behavior. As a motivating example, consider the problem of finding an ‘a’ in an array of n elements. Input: An array of n≥2 elements, in which half are ‘a’s and the other half are ‘b’s. Output: Find an ‘a’ in the array. We give two versions of the algorithm, one Las Vegas algorithm and one Monte Carlo algorithm.

[ "Algorithm", "Combinatorics", "Discrete mathematics", "Mathematical optimization", "LP-type problem", "least median of squares regression", "Las Vegas algorithm", "Yao's principle", "Interpolative decomposition" ]
Parent Topic
Child Topic
    No Parent Topic