In complexity theory, RP ("randomized polynomial time") is the complexity class of problems for which a probabilistic Turing machine exists with these properties:
 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 algorithm 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 languages.
If the correct answer is YES and the algorithm is run n times with the result of each run statistically independent of the others, then it will return YES at least once with probability at least 1 − 2^{−n}. 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.^{[citation needed]} 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.
Contents
Related complexity classes
The definition of RP says YES is always right and NO is usually right. The complexity class coRP 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 coRP. The intersection of the sets RP and coRP is called ZPP. Just as RP may be called R, some authors use the name coR rather than coRP.
Connection to P and NP
P is a subset of RP, which is a subset of NP. Similarly, P is a subset of coRP which is a subset of coNP. It is not known whether these inclusions are strict. However, if the commonly believed conjecture P = BPP is true, then RP, coRP, 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 = coRP, or whether RP is a subset of the intersection of NP and coNP, though this would be implied by P = BPP.
Full article ▸
