Esercizio - Dimostrazione che ZPP è uguale a RP intersecato co-RP
Testo (domanda da orale). Si ricordano: RP = linguaggi con un algoritmo polinomiale che, se , risponde SI con probabilità e, se , risponde NO sempre; co-RP = complementi; ZPP = linguaggi con un algoritmo Las Vegas di tempo atteso polinomiale.
- Dimostrare che .
- Dimostrare che e calcolare il numero atteso di giri.
- Se gli algoritmi (RP) e (co-RP) hanno probabilità di riuscita invece di , quanti giri servono in media?
Soluzione
Punto 1. Sia un Las Vegas per con , polinomio. Per la disuguaglianza di Markov (Disuguaglianze di Markov, Chebyshev e JensenMarkov: per X ≥ 0, P(X ≥ a) ≤ E[X]/a; Chebyshev: P(|X − μ| ≥ ε) ≤ Var(X)/ε²; Jensen: per φ convessa, φ(E[X]) ≤ E[φ(X)]. Stimano probabilità e medie conoscendo solo media e varianza.Disuguaglianze di Markov, Chebyshev e Jensen →) .
- Algoritmo : si esegue per al più passi. Se finisce, si risponde come (sempre corretto). Se non finisce, si risponde NO.
- Se : , quando finisce, dice NO; e il time-out dà NO. Quindi non dice mai SI: errore .
- Se : dice SI se finisce in tempo, probabilità . Quindi è un algoritmo RP, polinomiale perché si ferma a passi.
- Algoritmo : uguale, ma al time-out risponde SI. Con lo stesso ragionamento non dice mai NO se e dice NO con probabilità se : è co-RP.
Punto 2. Siano RP e co-RP per . L'algoritmo Las Vegas esegue giri:
- si esegue ; se risponde SI, si risponde SI (certo, perché non ha falsi SI);
- si esegue ; se risponde NO, si risponde NO (certo, perché non ha falsi NO);
- altrimenti si ricomincia da 1 con nuovi bit casuali.
La risposta è sempre corretta. In un giro: se allora dice SI con probabilità ; se allora dice NO con probabilità . Quindi ogni giro termina con probabilità , i giri sono indipendenti, il loro numero è geometrico e in media . Il tempo atteso è volte il costo di un giro, polinomiale.
Punto 3. Se la riuscita per giro è (indipendentemente dal caso, o ), il numero di giri è geometrico di parametro : in media giri. Una simulazione con giri indipendenti dà ; per dà .
Risultato: ; giri attesi (e per ).
import random
def giri(q):
n = 0
while True:
n += 1
if random.random() < q: return n
for q in (0.5, 0.3):
print(q, sum(giri(q) for _ in range(200000)) / 200000, 1 / q) # 2.00, 3.34 (attesi 2 e 3.33)Versione ripasso
- : Las Vegas con ; Markov: . Fermarsi a passi; al time-out rispondere NO (RP: nessun falso SI, riuscita ) oppure SI (co-RP) (Disuguaglianze di Markov, Chebyshev e JensenMarkov: per X ≥ 0, P(X ≥ a) ≤ E[X]/a; Chebyshev: P(|X − μ| ≥ ε) ≤ Var(X)/ε²; Jensen: per φ convessa, φ(E[X]) ≤ E[φ(X)]. Stimano probabilità e medie conoscendo solo media e varianza.Disuguaglianze di Markov, Chebyshev e Jensen →).
- : a giri, (RP) poi (co-RP); un SI di o un NO di è certo. Riuscita per giro , giri geometrici, media .
- Perché le due direzioni bastano: il time-out dà un solo tipo di errore (NO nel caso RP, SI nel caso co-RP), mentre nei giri non si sbaglia mai perché si rispondono solo i casi certi.
- Numeri: riuscita : media giri.
- Errori tipici: dimenticare il time-out; usare la stessa sequenza casuale nei giri; credere che da solo basti (ha falsi NO).