Pseudorandomness learning notes.
The Power of Randomness
Some Kinds of Complexity Classes
Monte Carlo:
Randomized Polynomial Time: RP is a class of languages L: ∃ a probabilistic polynomial time algorithm A, s.t.:
x∈L⇒Pr[A(x) accepts]≥1/2x∈/L⇒Pr[A(x) accepts]=0
Bounded-error Probabilistic Polynomial Time: BPP is a class of languages L: ∃ a probabilistic polynomial time algorithm A, s.t.:
x∈L⇒Pr[A(x) accepts]≥2/3x∈/L⇒Pr[A(x) accepts]≤1/3
Las Vegas:
Zero-error Prbabilistic Polynomial Time: ZPP is a class of languages L: ∃ a always correct probabilistic algorithm A runs in expected polynomial time.
Problem 2.3 (Zero error versus 1-sided error): Prove that ZPP=RP∩co-RP.
Proof: First we prove that RP∩co-RP⊂ZPP.
Let L be a language in RP∩co-RP.
L∈RP tells us that there exists a probabilistic polynomial time algorithm A, s.t.:
x∈L⇒Pr[A(x) accepts]≥1/2x∈/L⇒Pr[A(x) accepts]0
Similarly, there exists a probabilistic polynomial time algorithm B, s.t.:
x∈L⇒Pr[A(x) accepts]=1x∈/L⇒Pr[A(x) accepts]≤1/2
We design a algorithm C that ∀x∈{0,1}∗,C(x) accepts⟺B(x) accepts,C(x) rejects⟺A(x) rejects.
Obviously, C is always correct. and runs in polynomial time. Therefore L∈ZPP. Thus we have RP∩co-RP⊂ZPP.
Second we prove that ZPP⊂RP∩co-RP.
Let L be a language in ZPP, thus there exists a always correct probabilistic algorithm A runs in expected polynomial time.
Let E(t) be the expected running time of A. We run A in at most 2E(t) time. If A(x) does not stop in 2E(t) time, we let A directly reject x.
Obviously, Pr[A(x) rejects]=0(x∈/L). And by using Markov’s inequality, we have:
∀x∈L,Pr[A(x) accepts]=1−Pr[A(x) rejects]=1−Pr[t>2E(t)]≥1−1/2=1/2
Therefore L∈RP. Similarly, L∈co-RP. Thus we have ZPP⊂RP∩co-RP.
The above then implies ZPP=RP∩co-RP, as desired.
□
Open Problem: Are any of inclusions textP⊂ZPP⊂RP⊂BPP proper?