Lecture 7: RP, coRP, ZPP, BPP
RP, coRP, ZPP, BPP
RP: Randomized Probabilistic polynomial-time
ZPP: Zero error Probabilistic Polynomial-time
- Input: $n$ en linéaire
- Question: $n$ est-il composé (pas premier) ?
-
Pratt 1970’s: ce problème est-il dans $coNP$?
-
Miller 76: ce problème est dans $RP$
Idée (à corriger): si $x≠0\mod n$ et $n$ premier, $x^{n-1} = 1 \mod n$
Or, cacul de l’exponentiation:
- $x^{0} = 1$
- $x^{2k} = (x^k)^2$
- $x^{2k+1} = (x^k)^2×x $
Comme on est dans $ℤ/n$: on a un nombre linéaire en $n$
Pour reconnaître $¬Prime$:
Algo 1:
tire x au hasard entre 1 et n-1
calcule x^{n-1} mod n
si n=1:
probablement premier ⟶ rejette
sinon:
pas premier ⟶ accepte
NB: si répond “pas premier” ⟶ ne donne aucune indication d’un diviseur non trivial
- Si $n ∉ ¬Prime$: la machine rejette
-
Si $n ∈¬Prime$:
- $P(rejet)$ est faible
- $P(accepte)$ est forte
- Nombre de Carmichaël:
-
nombre $n$ non premier mais tels que $x^{n-1} = 1 \mod n$ pour tout $x ≠ 0 \mod n$
Aucun nombre de Carmichaël < 100 ⟶ proba de rejet faible
Si $n$ est premier (et impair, on va se fatiguer pour 2), $n-1 = 2^{k} q$ avec $q$ impair
- $x^{2^k}q = 1 \mod n$
-
Puis: calcul de $x^{2^{k-1}}q = ±1 \mod n$ (car son carré vaut 1), puis pour tout $x^{2^{k’}}q$, $q≤ k’ ≤ k$, jusqu’à:
- obtenir $-1$ ⟶ la machine rejette
- n’obtenir que des $1$ ⟶ la machine accepte
- Si $n ∉ ¬Prime$, la machine rejette
- Si $n ∈ ¬Prime$, la proba d’accepter est $≥ 1/4$ (donc proba d’échec $≥ 3/4$ ⟶ plus qu’à itérer pour avoir une erreur en $(3/4)^m$)
- $L ∈ RP$:
-
$∃ℳ \text{ randomisée en temps poly tq: }$ \(∃ p \text{ poly }; ∀x, r, ℳ(x, r) \text{ termine en temps } ≤p(n) \text{ où } n = \vert x \vert\)
- si $x∈L$, $P_r(ℳ(x, r) \text{ accepte}) ≥ 1/2$
- si $x∉L$, $∀r, ℳ(x, r) \text{ rejette } (⟺ P_r(ℳ(x, r) \text{ accepte}))$
Lemme: $P ⊆ RP, coRP$
Lemme: $RP ⊆ NP$
Si $L ∈ RP$, deviner $r$ de taille $p(n)$ et accepte si $ℳ(x, r)$ accepte.
-
si $x∈L$, $P_r(ℳ(x,r) \text{ accepte}) ≥ 1/2 ≠0$ ⟹ $∃r, ℳ(x,r)$ accepte
-
Si $x ∉ L$, $∀r, ℳ(x, r)$ accepte
NB: $P_r(ℳ(x, r) \text{ accepte}) ≥ 1-ε ⟺ \text{erreur } ε$
Lemme: $RP_ε ⊆ RP_{ε^k} \; ∀k≥1$
Preuve: Soit $L∈ RP_ε$, $ℳ$ “décidant $L$ à la mode $RP_ε$”
$ℳ’$: sur l’entrée $x$:
for i=1 to k do
r ← aléa
Simuler ℳ(x, r):
si accepte ⟶ x∈L ⟹ accepte
rejette
- Si $x ∉ L$, $ℳ’(x, r_1, ⋯, r_k)$: rejette
- Si $x ∈ L$, \(\begin{align*} P_{r_1 ⋯ r_k}(ℳ'(x, r_1 ⋯ r_k) \text{ rejette}) &= P_{r_1 ⋯ r_k}(\bigwedge_i ℳ'(x, r_i) \text{ rejette}) \\ &= \prod_i P_{r_i}(ℳ'(x, r_i) \text{ rejette}) \\ &≤ ε^k \end{align*}\)
Corollaire: \(RP = RP_{1/2} = ⋯ = RP_{1/{2^k}} = RP_{1-a} \quad ∀k≥1, ∀a ∈ ]0,1[\)
De même: \(RP = RP_{\frac{1}{q(n)}} \quad \text{ pour tout poly } q(n)\)
Et même: \(RP = RP_{1-\frac{1}{q(n)}} \quad \text{ pour tout poly } q(n)\)
car $(1- \frac{1}{q(n)})^k ≥ e^{-1}$ pour $k = q(n)$ par exemple
- ZPP:
-
= coRP ∩ RP
C’est-à-dire:
- $L ∈ ZPP$:
-
$∃ℳ ∈ RP, ℳ’ ∈ coRP \text{ randomisées en temps poly tq }$:
- si $x∈L$, $P_r(ℳ(x, r) \text{ accepte}) ≥ 1/2$ et $∀r, ℳ’(x, r)$ rejette
- si $x∉L$, $∀r, ℳ(x, r) \text{ rejette et } P_r(ℳ’(x, r) \text{ accepte}) ≥ 1/2$
- Inégalité de Markov:
-
Si $X$ est une v.a. à valeurs dans $ℝ_+$ et si $𝔼(X)<+∞$: alors $∀a > 0, P(X > a) ≤ \frac{𝔼(X)}{a}$
Prop: $ZPP$ est la classe des $L$ tq: $∃ ℳ_0 \text{ en temps polynomial moyen tq}:
- $∀x∈ L, P_r(ℳ_0(x, r) \text{ accepte}) = 1$
- $∀x∉ L, P_r(ℳ_0(x, r) \text{ accepte}) = 0$
Si on a une telle $ℳ_0$, montrons que $L ∈ RP ∩ coRP$.
- $ℳ$ = “$ℳ_0$ + après un timeout $kp(n)$, rejette”
- $ℳ’$ = “$ℳ_0$ + après un timeout $kp(n)$, accepte”
On introduit la v.a. $X$: temps d’exécution. Par hypothèse:
\[𝔼(X) = p(n) < +∞\]-
Si $x∈ L$: $P_r(ℳ_0(x, r) \text{ se trompe = rejette}) ≤ P(\text{timeout dépassé}) = P(X > kp(n)) \overset{\text{Markov}}{≤} \frac{p(n)}{kp(n)} = \frac{1}{k}$
-
Si $x∉L$: $ℳ$ rejette pour tout $r$
Par symétrie: $L ∈ coRP$ (via $ℳ’$)
Réciproque: Si $L∈RP ∩ coRP$: $ℳ, ℳ’$
$ℳ_0(x, _)$:
for i=1 to infinity:
r_i ∈ aléa
simule ℳ(x, r_i)
si accepte ⟶ accepte (fin)
r'_i ∈ aléa
simule ℳ'(x, r'_i)
si accepte ⟶ rejette (fin)
- Si $ℳ_0(x, _)$ accepte, $x∈L$
- Si $ℳ_0(x, _)$ rejette, $x∉L$
Conséquence de Markov: termine
$𝔼(\text{nb tours de boucle})$:
- Proba de sortir au premier tour: $= a ≥1/2$ (disjonction de cas selon $x∈L$)
- Proba de sortir au 2e tour sinon: $= a + (1-a)a$
- ⋮
- Proba de sortir au k-ème tour sinon: $= a + (1-a)a + ⋯ + (1-a)^{k-1} = 1 - (1-a)^k$
⟶ loi géométrique: $𝔼(\text{nb tours de boucle}) = \frac 1 a$:
Temps moyen = $\frac 1 a p(n) ≤ 2 p(n)$
Leave a comment