BQP Complexity Class
Understanding Bounded-error Quantum Polynomial Time and its role in quantum algorithms.
🔠 Start LearningWhat is BQP?
BQP stands for Bounded-error Quantum Polynomial Time. It represents the class of decision problems solvable by a quantum computer in polynomial time, with a probability of at least 2/3.
Key Aspects
- ✔ Polynomial time quantum algorithm
- ✔ Bounded two-sided error ≤ 1/3
- ✔ Can outperform classical algorithms
- ✔ Fundamental to quantum supremacy
BQP vs Classical Complexity Classes
P
Problems solvable in polynomial time by classical deterministic Turing machines.
Includes sorting, graph traversal
NP
Problems for which a solution can be verified in polynomial time by a classical computer.
Subset sum, boolean satisfiability
BQP
Problems solvable efficiently with bounded error probability by quantum computers.
Factoring, search, quantum simulations
Complexity Class Hierarchy
Shor's algorithm shows P ⊊ BQP assuming P ≠ NP
BQP Applications
Cryptography
BQP algorithms threaten modern encryption schemes like RSA and ECC by solving integer factorization exponentially faster.
Quantum Simulation
BQP captures problems of simulating quantum mechanical systems which classical computers struggle to handle.
Optimization
BQP algorithms can solve optimization problems with exponential speedups compared to classical counterparts.
Shor's Algorithm Illustration
# Quantum algorithm for integer factorization (Shor's Algorithm)
def shors_algorithm(n):
for a in range(3, n):
if gcd(a, n) != 1:
continue
r = quantum_period_finding(a, n) # Quantum subroutine
if r % 2 == 0:
x = pow(a, r//2, n)
p = gcd(x-1, n)
q = gcd(x+1, n)
return p, q
def quantum_period_finding(a, n):
# Quantum circuit to find period of f(x) = a^x mod n
return find_quantum_period()
This algorithm runs in polynomial time on a quantum computer, placing factoring of integers in BQP.