related topics
{math, number, function}
{system, computer, user}
{government, party, election}
{school, student, university}

In computational complexity theory, BPP (bounded-error probabilistic polynomial time) is the class of decision problems solvable by a probabilistic Turing machine in polynomial time, with an error probability of at most 1/3 for all instances.

Informally, a problem is in BPP if there is an algorithm for it that has the following properties:

  • It is allowed to flip coins and make random decisions
  • It is guaranteed to run in polynomial time
  • On any given run of the algorithm, it has a probability of at most 1/3 of giving the wrong answer, whether the answer is YES or NO.



BPP is one of the largest practical classes of problems, meaning most problems of interest in BPP have efficient probabilistic algorithms that can be run quickly on real modern machines. For this reason it is of great practical interest which problems and classes of problems are inside BPP. BPP also contains P, the class of problems solvable in polynomial time with a deterministic machine, since a deterministic machine is a special case of a probabilistic machine.

In practice, an error probability of 1/3 might not be acceptable, however, the choice of 1/3 in the definition is arbitrary. It can be any constant between 0 and 1/2 (exclusive) and the set BPP will be unchanged. It does not even have to be constant: the same class of problems is defined by allowing error as high as 1/2 − nc on the one hand, or requiring error as small as 2nc on the other hand, where c is any positive constant, and n is the length of input. The idea is that there is a probability of error, but if the algorithm is run many times, the chance that the majority of the runs are wrong drops off exponentially as a consequence of the Chernoff bound.[1] This makes it possible to create a highly accurate algorithm by merely running the algorithm several times and taking a "majority vote" of the answers. For example, if one defined the class with the restriction that the algorithm can be wrong with probability at most 1/2100, this would result in the same class of problems.


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, the machine M is required to run for polynomial time on all inputs, regardless of the outcome of the random coin flips.

Full article ▸

related documents
Euler's criterion
Partial fractions in integration
Alternative algebra
Regular space
Real line
Intersection (set theory)
Decision problem
Polynomial time
Algebraic number
T1 space
Heaviside step function
CLU (programming language)
Stirling number
Whittaker–Shannon interpolation formula
Dyadic rational
Magma (algebra)
Separated sets
Cayley's theorem
Syntactic sugar
Magma computer algebra system
Twin prime conjecture
Topological ring
Goldbach's weak conjecture
Kernel (category theory)
Category (mathematics)
Nowhere dense set
Amicable number