Esercizio - Da Las Vegas a Monte Carlo con Markov e da Monte Carlo a Las Vegas
Testo. Un array di celle contiene esattamente uni. L'algoritmo Las Vegas «estrai un indice a caso finché la cella vale » ha = numero di estrazioni.
- Calcolare e .
- Si trasforma l'algoritmo in un Monte Carlo che si ferma dopo estrazioni. Quale errore garantisce Markov per ? E quale è l'errore vero?
- Si eseguono blocchi indipendenti da estrazioni e si tiene la prima risposta trovata. Quante estrazioni in totale servono per un errore garantito con e con ? Quante ne servirebbero conoscendo la distribuzione vera?
- Un Monte Carlo risponde con un indice sbagliato con probabilità , 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à , indipendente dalle altre: è geometrica di parametro . Quindi e (le prime estrazioni falliscono).
Punto 2. Con : si ferma a estrazioni. Per Markov L'algoritmo troncato sbaglia solo se nessuna delle estrazioni trova un , cioè se ; poiché , anche l'errore è . L'errore vero è (punto 1), e perfino è cento volte sotto il limite: Markov usa solo la media e perde molto.
Punto 3. Un blocco da estrazioni fallisce con probabilità (Markov); blocchi indipendenti falliscono tutti con probabilità .
- : blocchi da estrazioni, errore per blocco . Serve , (): estrazioni.
- : blocchi da , errore . Serve : (; non basta): estrazioni.
- Con la distribuzione vera: dà estrazioni (), cioè . Markov costa 4-4,5 volte tanto, ma non richiede di conoscere la distribuzione di .
Punto 4. Un tentativo riesce (risposta giusta, verificata) con probabilità . I tentativi sono indipendenti, quindi il loro numero è geometrico di parametro e in media . 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: , ; Markov contro errore vero ; o estrazioni contro ; tentativi.
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-07Versione ripasso
- Las Vegas «cerca un 1»: geometrica di parametro (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 →), , .
- Markov: fermarsi a passi, (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 →). Per : contro errore vero (si sbaglia solo se tutte le estrazioni falliscono).
- blocchi indipendenti: errore . Per : , , estrazioni; , , estrazioni; distribuzione vera: estrazioni.
- Monte Carlo Las Vegas: serve un verificatore; con errore il numero di tentativi è geometrico di media .
- Errori tipici: usare Markov con non positiva; confondere e ; usare passi senza dividere in blocchi indipendenti.