In
complexity theoryComputational complexity theory is a branch of the theory of computation in theoretical computer science and mathematics that focuses on classifying computational problems according to their inherent difficulty, and relating those classes to each other...
,
RP ("randomized polynomial time") is the
complexity classIn computational complexity theory, a complexity class is a set of problems of related resource-based complexity. A typical complexity class has a definition of the form:...
of problems for which a
probabilistic Turing machineIn computability theory, a probabilistic Turing machine is a non-deterministic Turing machine which randomly chooses between the available transitions at each point according to some probability distribution....
exists with these properties:
| RP algorithm (1 run) |
|
Answer produced |
Correct answer |
YES |
NO |
| YES |
≥ 1/2 |
≤ 1/2 |
| NO |
0 |
1 |
| RP algorithm (n runs) |
|
Answer produced |
Correct answer |
YES |
NO |
| YES |
≥ 1 − 2−n |
≤ 2−n |
| NO |
0 |
1 |
| co-RP algorithm (1 run) |
|
Answer produced |
Correct answer |
YES |
NO |
| YES |
1 |
0 |
| NO |
≤ 1/2 |
≥ 1/2 |
- It always runs in polynomial time in the input size
- If the correct answer is NO, it always returns NO
- If the correct answer is YES, then it returns YES with probability at least 1/2 (otherwise, it returns NO).
In other words, the
algorithmIn mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...
is allowed to flip a truly random coin while it is running. The only case in which the algorithm can return YES is if the actual answer is YES; therefore if the algorithm terminates and produces YES, then the correct answer is definitely YES; however, the algorithm can terminate with NO
regardless of the actual answer. That is, if the algorithm returns NO, it might be wrong.
Some authors call this class
R, although this name is more commonly used for the class of
recursive languageIn mathematics, logic and computer science, a formal language is called recursive if it is a recursive subset of the set of all possible finite sequences over the alphabet of the language...
s.
If the correct answer is YES and the algorithm is run
n times with the result of each run
statistically independentIn probability theory, to say that two events are independent intuitively means that the occurrence of one event makes it neither more nor less probable that the other occurs...
of the others, then it will return YES at least once with probability at least . So if the algorithm is run 100 times, then the chance of it giving the wrong answer every time is lower than the chance that cosmic rays corrupted the memory of the computer running the algorithm. In this sense, if a source of random numbers is available, most algorithms in
RP are highly practical.
The fraction 1/2 in the definition is arbitrary. The set
RP will contain exactly the same problems, even if the 1/2 is replaced by any constant nonzero probability less than 1; here constant means independent of the input to the algorithm.
Related complexity classes
The definition of
RP says that a YES answer is always right and that a NO answer is usually right. The complexity class
co-RP is similarly defined, except that NO is always right and YES is usually right. In other words, it accepts all YES instances but can either accept or reject NO instances. The class
BPP describes algorithms that can give incorrect answers on both YES and NO instances, and thus contains both
RP and
co-RP. The intersection of the sets
RP and
co-RP is called
ZPP. Just as
RP may be called
R, some authors use the name
co-R rather than
co-RP.
Connection to P and NP
PIn computational complexity theory, P, also known as PTIME or DTIME, is one of the most fundamental complexity classes. It contains all decision problems which can be solved by a deterministic Turing machine using a polynomial amount of computation time, or polynomial time.Cobham's thesis holds...
is a subset of
RP, which is a subset of
NPIn computational complexity theory, NP is one of the most fundamental complexity classes.The abbreviation NP refers to "nondeterministic polynomial time."...
. Similarly,
P is a subset of
co-RP which is a subset of
co-NP. It is not known whether these inclusions are strict. However, if the commonly believed conjecture
P =
BPP is true, then
RP,
co-RP, and
P collapse (are all equal). Assuming in addition that
P ≠
NP, this then implies that
RP is strictly contained in
NP. It is not known whether
RP =
co-RP, or whether
RP is a subset of the intersection of
NP and
co-NP, though this would be implied by
P =
BPP.
A natural example of a problem in
co-RP currently not known to be in
P is
Polynomial Identity TestingIn mathematics, the Schwartz–Zippel lemma is a tool commonly used in probabilistic polynomial identity testing, i.e. in the problem of determining whether a given multivariate polynomial is the...
, the problem of deciding whether a given multivariate arithmetic expression over the integers is the zero-polynomial. For instance, is the zero-polynomial while
is not.
An alternative characterization of
RP that is sometimes easier to use is the set of problems recognizable by nondeterministic Turing machines where the machine accepts if and only if at least some constant fraction of the computation paths, independent of the input size, accept.
NP on the other hand, needs only one accepting path, which could constitute an exponentially small fraction of the paths. This characterization makes the fact that
RP is a subset of
NP obvious.
External links