Salta al contenuto
Note per Studenti Esercizio - Da Las Vegas a Monte Carlo con Markov e da Monte Carlo a Las Vegas

Esercizio - Da Las Vegas a Monte Carlo con Markov e da Monte Carlo a Las Vegas

Testo. Un array di nn celle contiene esattamente n/2n/2 uni. L'algoritmo Las Vegas «estrai un indice a caso finché la cella vale 11» ha TT = numero di estrazioni.

  1. Calcolare E[T]E[T] e Pr⁡[T>10]\Pr[T>10].
  2. Si trasforma l'algoritmo in un Monte Carlo che si ferma dopo c⋅E[T]c\cdot E[T] estrazioni. Quale errore garantisce Markov per c=5c=5? E quale è l'errore vero?
  3. Si eseguono kk blocchi indipendenti da c E[T]c\,E[T] estrazioni e si tiene la prima risposta trovata. Quante estrazioni in totale servono per un errore garantito ≤10−6\le10^{-6} con c=2c=2 e con c=5c=5? Quante ne servirebbero conoscendo la distribuzione vera?
  4. Un Monte Carlo risponde con un indice sbagliato con probabilità 1/41/4, e la risposta si verifica in una lettura. Quanti tentativi servono in media per ottenere una risposta certa?

Teoria: Algoritmi randomizzati - Monte Carlo, Las Vegas e amplificazioneUn algoritmo randomizzato usa bit casuali indipendenti; la probabilità è sulle scelte dell'algoritmo, mai sull'input (garanzia per ogni input). Las Vegas: sempre corretto, tempo aleatorio (conta il tempo atteso). Monte Carlo: tempo fisso, risposta sbagliata con probabilità limitata; errore unilaterale (RP: accetta solo se x sta nel linguaggio, accetta con prob almeno 1/2) o bilaterale (BPP: giusto con prob almeno 2/3). ZPP = RP ∩ co-RP = Las Vegas con tempo atteso polinomiale. Amplificazione: unilaterale, k ripetizioni indipendenti, errore (1-p)^k ≤ e^(-pk), serve k ≥ ln(1/ε)/p; bilaterale, voto di maggioranza su k esecuzioni, errore binomiale esatto, esponenziale in k (Chernoff, e^(-k/18) per p=2/3) mentre Chebyshev dà solo 8/k. Las Vegas -> Monte Carlo: interrompere a c volte il tempo atteso (Markov, errore ≤ 1/c). Monte Carlo -> Las Vegas: solo se la risposta si verifica in fretta. Esempio: Miller-Rabin, errore ≤ 1/4 per esecuzione.Algoritmi randomizzati - Monte Carlo, Las Vegas e amplificazione → (sezione sulle conversioni); Distribuzione geometricaGeo(p) è il numero della prova in cui arriva il primo successo in prove indipendenti: P(X = n) = (1−p)^(n−1) p per n ≥ 1, P(X > n) = (1−p)^n (lunga attesa), media 1/p, varianza (1−p)/p², ed è senza memoria.Distribuzione geometrica →, 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 →.

Soluzione

Punto 1. Ogni estrazione riesce con probabilità p=1/2p=1/2, indipendente dalle altre: TT è geometrica di parametro 1/21/2. Quindi E[T]=1/p=2E[T]=1/p=2 e Pr⁡[T>10]=(1−p)10=2−10=0,000977\Pr[T>10]=(1-p)^{10}=2^{-10}=0{,}000977 (le prime 1010 estrazioni falliscono).

Punto 2. Con c=5c=5: si ferma a c E[T]=10c\,E[T]=10 estrazioni. Per Markov Pr⁡[T≥10]≤E[T]10=15=0,2.\Pr[T\ge10]\le\frac{E[T]}{10}=\frac15=0{,}2 . L'algoritmo troncato sbaglia solo se nessuna delle 1010 estrazioni trova un 11, cioè se T>10T>10; poiché {T>10}⊆{T≥10}\{T>10\}\subseteq\{T\ge10\}, anche l'errore è ≤0,2\le0{,}2. L'errore vero è Pr⁡[T>10]=2−10=0,000977\Pr[T>10]=2^{-10}=0{,}000977 (punto 1), e perfino Pr⁡[T≥10]=2−9=0,00195\Pr[T\ge10]=2^{-9}=0{,}00195 è cento volte sotto il limite: Markov usa solo la media e perde molto.

Punto 3. Un blocco da c E[T]c\,E[T] estrazioni fallisce con probabilità ≤1/c\le1/c (Markov); kk blocchi indipendenti falliscono tutti con probabilità ≤c−k\le c^{-k}.

  • c=2c=2: blocchi da 44 estrazioni, errore per blocco ≤1/2\le1/2. Serve 2−k≤10−62^{-k}\le10^{-6}, k=20k=20 (2−20=9,5⋅10−72^{-20}=9{,}5\cdot10^{-7}): 8080 estrazioni.
  • c=5c=5: blocchi da 1010, errore ≤0,2\le0{,}2. Serve 0,2k≤10−60{,}2^k\le10^{-6}: k=9k=9 (0,29=5,1⋅10−70{,}2^9=5{,}1\cdot10^{-7}; 0,28=2,6⋅10−60{,}2^8=2{,}6\cdot10^{-6} non basta): 9090 estrazioni.
  • Con la distribuzione vera: (1/2)m≤10−6(1/2)^m\le10^{-6} dà m=20m=20 estrazioni (2−202^{-20}), cioè 2020. Markov costa 4-4,5 volte tanto, ma non richiede di conoscere la distribuzione di TT.

Punto 4. Un tentativo riesce (risposta giusta, verificata) con probabilità 3/43/4. I tentativi sono indipendenti, quindi il loro numero è geometrico di parametro 3/43/4 e in media 13/4=43=1,33\frac1{3/4}=\frac43=1{,}33. Si ottiene così un Las Vegas: risposta sempre giusta, ma tempo aleatorio. Se non esistesse il verificatore (per esempio un errore bilaterale su un problema di decisione) la conversione non sarebbe possibile in generale.

Risultati: E[T]=2E[T]=2, Pr⁡[T>10]=2−10\Pr[T>10]=2^{-10}; Markov 0,20{,}2 contro errore vero 2−10=0,0009772^{-10}=0{,}000977; 8080 o 9090 estrazioni contro 2020; 4/34/3 tentativi.

python
import random
N = 10**6
def T():
    t = 1
    while random.random() >= 0.5: t += 1
    return t
s = [T() for _ in range(N)]
print(sum(s) / N, sum(t > 10 for t in s) / N, sum(t >= 10 for t in s) / N)   # 2.0  0.00098  0.00195
print(0.2**8, 0.2**9, 2.0**-20)                                              # 2.6e-06  5.1e-07  9.5e-07

Versione ripasso

Teoria collegata