In
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, hardware and softw ...
, a Monte Carlo algorithm is a
randomized algorithm
A randomized algorithm is an algorithm that employs a degree of randomness as part of its logic or procedure. The algorithm typically uses uniformly random bits as an auxiliary input to guide its behavior, in the hope of achieving good performan ...
whose output may be incorrect with a certain (typically small)
probability
Probability is a branch of mathematics and statistics concerning events and numerical descriptions of how likely they are to occur. The probability of an event is a number between 0 and 1; the larger the probability, the more likely an e ...
. Two examples of such algorithms are the
Karger–Stein algorithm and the Monte Carlo algorithm for
minimum feedback arc set.
The name refers to the
Monte Carlo casino in the
Principality of Monaco
Monaco, officially the Principality of Monaco, is a sovereign city-state and microstate on the French Riviera a few kilometres west of the Italian region of Liguria, in Western Europe, on the Mediterranean Sea. It is a semi-enclave borde ...
, which is well-known around the world as an icon of gambling. The term "Monte Carlo" was first introduced in 1947 by
Nicholas Metropolis.
Las Vegas algorithm
In computing, a Las Vegas algorithm is a randomized algorithm that always gives Correctness (computer science), correct results; that is, it always produces the correct result or it informs about the failure. However, the runtime of a Las Vegas alg ...
s are a
dual of Monte Carlo algorithms and never return an incorrect answer. However, they may make random choices as part of their work. As a result, the time taken might vary between runs, even with the same input.
If there is a procedure for verifying whether the answer given by a Monte Carlo algorithm is correct, and the probability of a correct answer is bounded above zero, then with probability one, running the algorithm repeatedly while testing the answers will eventually give a correct answer. Whether this process is a Las Vegas algorithm depends on whether halting with probability one is considered to satisfy the definition.
One-sided vs two-sided error
While the answer returned by a
deterministic algorithm is always expected to be correct, this is not the case for Monte Carlo algorithms. For
decision problem
In computability theory and computational complexity theory, a decision problem is a computational problem that can be posed as a yes–no question on a set of input values. An example of a decision problem is deciding whether a given natura ...
s, these algorithms are generally classified as either false-biased or true-biased. A false-biased Monte Carlo algorithm is always correct when it returns false; a true-biased algorithm is always correct when it returns true. While this describes algorithms with ''one-sided errors'', others might have no bias; these are said to have ''two-sided errors''. The answer they provide (either true or false) will be incorrect, or correct, with some bounded probability.
For instance, the
Solovay–Strassen primality test is used to determine whether a given number is a
prime number
A prime number (or a prime) is a natural number greater than 1 that is not a Product (mathematics), product of two smaller natural numbers. A natural number greater than 1 that is not prime is called a composite number. For example, 5 is prime ...
. It always answers true for prime number inputs; for composite inputs, it answers false with probability at least and true with probability less than . Thus, false answers from the algorithm are certain to be correct, whereas the true answers remain uncertain; this is said to be a ''-correct false-biased algorithm''.
Amplification
For a Monte Carlo algorithm with one-sided errors, the failure probability can be reduced (and the success probability amplified) by running the algorithm ''k'' times. Consider again the Solovay–Strassen algorithm which is ''-correct false-biased''. One may run this algorithm multiple times returning a false answer if it reaches a false response within ''k'' iterations, and otherwise returning true. Thus, if the number is prime then the answer is always correct, and if the number is composite then the answer is correct with probability at least 1−(1−)
''k'' = 1−2
''−k''.
For Monte Carlo decision algorithms with two-sided error, the failure probability may again be reduced by running the algorithm ''k'' times and returning the
majority function of the answers.
Complexity classes
The
complexity class
In computational complexity theory, a complexity class is a set (mathematics), set of computational problems "of related resource-based computational complexity, complexity". The two most commonly analyzed resources are time complexity, time and s ...
BPP describes
decision problem
In computability theory and computational complexity theory, a decision problem is a computational problem that can be posed as a yes–no question on a set of input values. An example of a decision problem is deciding whether a given natura ...
s that can be solved by polynomial-time Monte Carlo algorithms with a bounded probability of two-sided errors, and the complexity class
RP describes problems that can be solved by a Monte Carlo algorithm with a bounded probability of one-sided error: if the correct answer is false, the algorithm always says so, but it may answer false incorrectly for some instances where the correct answer is true.
In contrast, the complexity class
ZPP describes problems solvable by polynomial expected time Las Vegas algorithms. , but it is not known whether any of these complexity classes is distinct from each other; that is, Monte Carlo algorithms may have more computational power than Las Vegas algorithms, but this has not been proven.
Another complexity class,
PP, describes decision problems with a polynomial-time Monte Carlo algorithm that is more accurate than flipping a coin but where the error probability cannot necessarily be bounded away from .
Classes of Monte Carlo and Las Vegas algorithms
Randomized algorithms are primarily divided by its two main types, Monte Carlo and Las Vegas, however, these represent only a top of the hierarchy and can be further categorized.
* Las Vegas
** Sherwood—"performant and effective special case of Las Vegas"
**
Numerical—"numerical Las Vegas"
* Monte Carlo
**
Atlantic City—"bounded error special case of Monte Carlo"
** Numerical—"numerical approximation Monte Carlo"
"Both Las Vegas and Monte Carlo are dealing with decisions, i.e., problems in their
decision version."
"This however should not give a wrong impression and confine these algorithms to such problems—both types of
randomized algorithm
A randomized algorithm is an algorithm that employs a degree of randomness as part of its logic or procedure. The algorithm typically uses uniformly random bits as an auxiliary input to guide its behavior, in the hope of achieving good performan ...
s can be used on numerical problems as well, problems where the output is not simple ‘yes’/‘no’, but where one needs to receive a result that is numerical in nature."
Previous table represents a general framework for Monte Carlo and Las Vegas randomized algorithms.
Instead of the mathematical symbol
one could use
, thus making probabilities in the worst case equal.
Applications in computational number theory and other areas
Well-known Monte Carlo algorithms include the Solovay–Strassen primality test, the
Baillie–PSW primality test, the
Miller–Rabin primality test
The Miller–Rabin primality test or Rabin–Miller primality test is a probabilistic primality test: an algorithm which determines whether a given number is likely to be prime, similar to the Fermat primality test and the Solovay–Strassen pr ...
, and certain fast variants of the
Schreier–Sims algorithm
The Schreier–Sims algorithm is an algorithm in computational group theory, named after the mathematicians Otto Schreier and Charles Sims. This algorithm can find the order of a finite permutation group, determine whether a given permutati ...
in
computational group theory
In mathematics, computational group theory is the study of
group (mathematics), groups by means of computers. It is concerned
with designing and analysing algorithms and
data structures to compute information about groups. The subject
has attracte ...
.
For algorithms that are a part of
Stochastic Optimization (SO) group of algorithms, where probability is not known in advance and is empirically determined, it is sometimes possible to merge Monte Carlo and such an algorithm "to have both probability bound calculated in advance and a Stochastic Optimization component."
"Example of such an algorithm is
Ant Inspired Monte Carlo."
In this way, "drawback of SO has been mitigated, and a confidence in a solution has been established."
See also
*
Monte Carlo method
Monte Carlo methods, or Monte Carlo experiments, are a broad class of computational algorithms that rely on repeated random sampling to obtain numerical results. The underlying concept is to use randomness to solve problems that might be ...
s, algorithms used in physical simulation and
computational statistics
Computational statistics, or statistical computing, is the study which is the intersection of statistics and computer science, and refers to the statistical methods that are enabled by using computational methods. It is the area of computational ...
based on taking random samples
*
Atlantic City algorithm
*
Las Vegas algorithm
In computing, a Las Vegas algorithm is a randomized algorithm that always gives Correctness (computer science), correct results; that is, it always produces the correct result or it informs about the failure. However, the runtime of a Las Vegas alg ...
References
Citations
Sources
*
*
*
{{refend
Randomized algorithms