Recall from Lecture 7 that NP uses a verifier V(x, y) with a certificate y: x \in L \iff \exists y \text{ s.t. } V(x, y) = 1
We can define a Randomized Turing Machine (RTM) by replacing the certificate y with random bits r:
How do randomized classes differ from NP?
We define classes based on how they behave on YES and NO inputs:
| Class | If the true answer is YES | If the true answer is NO | Error Type |
|---|---|---|---|
| RP | Says YES \ge 50\% of the time | Says NO 100\% of the time | One-sided: May say NO by mistake. |
| co-RP | Says YES 100\% of the time | Says NO \ge 50\% of the time | One-sided: May say YES by mistake. |
| BPP | Says YES \ge 66\% of the time | Says NO \ge 66\% of the time | Two-sided: Can err in both directions. |
| ZPP | Always correct (100\%), expected poly time | Always correct (100\%), expected poly time | Zero error (Las Vegas). Running time is random. |
Theorem
ZPP = RP \cap \text{co-RP}.
How these classes fit together:
Does randomness actually let us solve more decision problems in polynomial time? <
Why do we believe derandomization (BPP = P) is possible?
The Problem: Given a formula/circuit representing a polynomial P(x_1, \dots, x_n), decide if it is identically zero (evaluates to 0 for all possible inputs).
If a polynomial is not zero, how likely are we to get a false zero by accident?
How does this generalize to multiple variables?
Answer each question based on today’s lecture:
Tutte Matrix & Karger’s Min-Cut — completing algebraic matchings and finding min-cuts in graphs via random contractions.
CS G526: Advanced Algorithms & ComplexityTulasimohan Molli