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) ?
  1. Pratt 1970’s: ce problème est-il dans $coNP$?

  2. 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