Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
BPP (complexity)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Definition == A language ''L'' is in '''BPP''' if and only if there exists a [[probabilistic Turing machine]] ''M'', such that * ''M'' runs for polynomial time on all inputs * For all ''x'' in ''L'', ''M'' outputs 1 with probability greater than or equal to 2/3 * For all ''x'' not in ''L'', ''M'' outputs 1 with probability less than or equal to 1/3 Unlike the complexity class '''[[ZPP (complexity)|ZPP]]''', the machine ''M'' is required to run for polynomial time on all inputs, regardless of the outcome of the random coin flips. Alternatively, '''BPP''' can be defined using only deterministic Turing machines. A language ''L'' is in '''BPP''' if and only if there exists a polynomial ''p'' and deterministic Turing machine ''M'', such that * ''M'' runs for polynomial time on all inputs * For all ''x'' in ''L'', the fraction of strings ''y'' of length ''p''(|''x''|) which satisfy {{tmath|1=M(x,y) = 1}} is greater than or equal to 2/3 * For all ''x'' not in ''L'', the fraction of strings ''y'' of length ''p''(|''x''|) which satisfy {{tmath|1=M(x,y) = 1}} is less than or equal to 1/3 In this definition, the string ''y'' corresponds to the output of the random coin flips that the probabilistic Turing machine would have made. For some applications this definition is preferable since it does not mention probabilistic Turing machines. In practice, an error probability of 1/3 might not be acceptable; however, the choice of 1/3 in the definition is arbitrary. Modifying the definition to use any [[mathematical constant|constant]] between 0 and 1/2 (exclusive) in place of 1/3 would not change the resulting set '''BPP'''. For example, if one defined the class with the restriction that the algorithm can be wrong with probability at most 1/2<sup>100</sup>, this would result in the same class of problems. The error probability does not even have to be constant: the same class of problems is defined by allowing error as high as 1/2 β ''n''<sup>β''c''</sup> on the one hand, or requiring error as small as 2<sup>β''n<sup>c</sup>''</sup> on the other hand, where ''c'' is any positive constant, and ''n'' is the length of input. This flexibility in the choice of error probability is based on the idea of running an error-prone algorithm many times, and using the majority result of the runs to obtain a more accurate algorithm. The chance that the majority of the runs are wrong [[exponential decay|drops off exponentially]] as a consequence of the [[Chernoff bound]].<ref>Valentine Kabanets, [http://www.cs.sfu.ca/~kabanets/cmpt710/lec16.pdf CMPT 710 - Complexity Theory: Lecture 16], October 28, 2003</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)