Palline e urne - compleanno, carico massimo e approssimazione di Poisson
In questa pagina 6
Il modello più semplice di casualità negli algoritmi: chiavi in una tabella hash (Tabelle hashTabella hash per implementare una mappa: funzione hash = hash code + compression function, bucket array, separate chaining; hash code per numeri e stringhe (polynomial, cyclic shift), division e MAD; load factor, complessità al caso pessimo Theta(n) e medio O(1+lambda), rehashing; esempio svolto con inserimenti e collisioni.Tabelle hash →), job assegnati a server, pacchetti su collegamenti. Qui si studia il modello in sé; l'hashing con garanzie dimostrabili è in Hashing randomizzato - famiglie universali, filtri di Bloom e fingerprintHashing con catene e costo atteso 1+alfa; famiglie universali (probabilità di collisione al più 1/m) e costruzione h(x)=((ax+b) mod p) mod m con dimostrazione; hashing perfetto a due livelli (spazio lineare, ricerca O(1) nel caso peggiore); filtri di Bloom: falsi positivi (1-e^(-kn/m))^k e k ottimo (m/n) ln 2; fingerprint di stringhe e numero di bit necessari.Hashing randomizzato - famiglie universali, filtri di Bloom e fingerprint →. Prerequisiti: Calcolo combinatorio per la probabilitàNegli spazi uniformi bisogna contare: principio di moltiplicazione, disposizioni con ripetizione n^k, disposizioni semplici n!/(n−k)!, permutazioni n!, combinazioni (n su k); estrazioni con e senza reinserimento e distribuzione ipergeometrica.Calcolo combinatorio per la probabilità →, Bernoulli, binomiale e uniforme discretaBernoulli Be(p): un solo tentativo, vale 1 con probabilità p; binomiale Bin(n, p): numero di successi in n prove indipendenti, P(X = k) = C(n,k) p^k (1−p)^(n−k), media np e varianza np(1−p); uniforme discreta: n valori equiprobabili.Bernoulli, binomiale e uniforme discreta →, Linearità del valore atteso e variabili indicatriciLa linearità $E[X+Y]=E[X]+E[Y]$ vale sempre, anche senza indipendenza; con le variabili indicatrici ($E[I_A]=P(A)$) trasforma un conteggio in una somma di probabilità. Applicazioni: attesa del primo successo $1/p$, collezionista di figurine $nH_n$, punti fissi di una permutazione (media $1$), record (media $H_n$), inversioni ($n(n-1)/4$), attesa condizionata, identità di Wald $E[S_N]=E[N]E[X]$.Linearità del valore atteso e variabili indicatrici →.
Definizione (palline e urne). Si lanciano palline in urne: ogni pallina sceglie la sua urna uniformemente e indipendentemente dalle altre. Il carico dell'urna è = numero di palline in . Vale .
Ogni è una (Bernoulli, binomiale e uniforme discretaBernoulli Be(p): un solo tentativo, vale 1 con probabilità p; binomiale Bin(n, p): numero di successi in n prove indipendenti, P(X = k) = C(n,k) p^k (1−p)^(n−k), media np e varianza np(1−p); uniforme discreta: n valori equiprobabili.Bernoulli, binomiale e uniforme discreta →), con media . Ma non sono indipendenti: la somma è fissata a (se un'urna è piena le altre ricevono meno). Questa dipendenza è la difficoltà tecnica del modello, e l'approssimazione di Poisson in fondo serve a toglierla.
Il paradosso del compleanno
Domanda. Quante palline () servono perché con probabilità almeno due finiscano nella stessa urna? Con è la domanda "quante persone perché due compiano gli anni lo stesso giorno".
La pallina evita le urne già occupate con probabilità , quindi
Teorema (soglia del compleanno). Per Quindi la collisione ha probabilità circa per : la soglia è , non .
Dimostrazione. Estremo superiore: per ogni (la retta è tangente in alla funzione convessa ), quindi perché . Estremo inferiore: per vale (la parentesi è ), cioè . Si somma con : .
Esempio (). Il limite superiore dà non appena . Con : , quindi basta; con : . Il calcolo esatto del prodotto conferma: per e per (il limite dà e ). Per il servono persone ().
Grafico interattivo: Probabilità di nessuna collisione con n = 365: limite superiore e inferiore, e soglia 1/2 raggiunta a m = 23
Perché . Le coppie di palline sono e ognuna collide con probabilità : per la linearità del valore atteso (Linearità del valore atteso e variabili indicatriciLa linearità $E[X+Y]=E[X]+E[Y]$ vale sempre, anche senza indipendenza; con le variabili indicatrici ($E[I_A]=P(A)$) trasforma un conteggio in una somma di probabilità. Applicazioni: attesa del primo successo $1/p$, collezionista di figurine $nH_n$, punti fissi di una permutazione (media $1$), record (media $H_n$), inversioni ($n(n-1)/4$), attesa condizionata, identità di Wald $E[S_N]=E[N]E[X]$.Linearità del valore atteso e variabili indicatrici →) il numero atteso di coppie in collisione è , che diventa per . Lo stesso conto per le terne nella stessa urna dà , quindi servono palline ( per : con le terne attese sono ).
Conseguenza per l'hashing. Una funzione hash a bit ha valori. Con ci si aspetta la prima collisione dopo circa chiavi (il tempo atteso di prima collisione è , vedi l'esercizio): chiavi bastano già per probabilità . Nemmeno un hash a bit permette di identificare in modo affidabile milioni di oggetti.
Urne vuote
Teorema (urne vuote). Sia il numero di urne vuote. Allora
Dimostrazione. con se l'urna è vuota. perché ogni pallina deve evitare . Per la linearità . Per la varianza: con (le palline evitano entrambe le urne e ), da cui è la formula scritta.
Si usa perché (e la differenza è piccola per grande). Per la frazione di urne vuote è e il resto ha carico (alcune ne hanno molte). Esempio (): e : una simulazione di prove dà e . Lo scarto tipico è piccolo rispetto alla media: è concentrato (varianza , Momenti e deviazioni - Markov, Chebyshev e mediana randomizzataVar(ΣX_i) = ΣVar + 2ΣCov, e basta l'indipendenza a coppie perché la varianza si sommi. Chebyshev dà code polinomiali (collezionista: P(T ≥ nH_n + cn) ≤ π²/(6c²)); il metodo del secondo momento dà P(X=0) ≤ Var(X)/E[X]². Algoritmo della mediana: campione di n^(3/4) elementi, due estremi d e u a ±√n, ordinamento dei soli elementi tra d e u; fallisce con probabilità ≤ n^(-1/4) ed è Las Vegas con 2n + o(n) confronti.Momenti e deviazioni - Markov, Chebyshev e mediana randomizzata →).
Quando non resta nessuna urna vuota. Con palline e, per Markov, . Per e si ha : tutte le urne sono occupate con probabilità almeno . È il problema del collezionista di figurine (Linearità del valore atteso e variabili indicatriciLa linearità $E[X+Y]=E[X]+E[Y]$ vale sempre, anche senza indipendenza; con le variabili indicatrici ($E[I_A]=P(A)$) trasforma un conteggio in una somma di probabilità. Applicazioni: attesa del primo successo $1/p$, collezionista di figurine $nH_n$, punti fissi di una permutazione (media $1$), record (media $H_n$), inversioni ($n(n-1)/4$), attesa condizionata, identità di Wald $E[S_N]=E[N]E[X]$.Linearità del valore atteso e variabili indicatrici →): per riempire tutte le urne servono in media palline.
Carico massimo
Con la media è , ma il carico massimo è molto più grande.
Teorema (carico massimo, estremo superiore). Lanciando palline in urne, con probabilità almeno il carico massimo è al più (per , così che ).
Dimostrazione. Si fissa l'urna . Per avere almeno palline bisogna scegliere palline ( modi) che vadano tutte lì (probabilità ). Per l'union bound sui sottoinsiemi (Union bound e verifica randomizzata - identità polinomiali e prodotti di matriciSpazi discreti richiamati; inclusione-esclusione (con le troncate di Bonferroni) e union bound Pr[unione] ≤ somma, valido senza indipendenza e stretto quando gli eventi sono rari (collisioni: C(n,2)/m). Principio delle decisioni differite: si fissa tutto tranne una scelta casuale e si limita la probabilità su quella. Lemma di Schwartz-Zippel: un polinomio non nullo di grado totale d, valutato in un punto di S^n scelto uniformemente, si annulla con prob ≤ d/|S| (induzione sul numero di variabili); test di identità polinomiale con errore unilaterale, ripetuto (d/|S|)^k. Freivalds: per verificare AB=C si controlla A(Br)=Cr con r in {0,1}^n in tempo O(n^2), errore ≤ 1/2 (stretto), 2^-k con k prove. Fingerprint: due stringhe di n bit si confrontano con a mod p per un primo casuale p ≤ M, errore ≤ n/π(M).Union bound e verifica randomizzata - identità polinomiali e prodotti di matrici →): dove l'ultimo passo è (da ). Per si vuole . Posto , e usando la disuguaglianza della tangente (la concava sta sotto la tangente in ): Quindi , e vale anche per intero perché decresce per . Un'ultima union bound sulle urne: .
L'estremo inferiore ha lo stesso ordine (si dimostra con il metodo del secondo momento, Momenti e deviazioni - Markov, Chebyshev e mediana randomizzataVar(ΣX_i) = ΣVar + 2ΣCov, e basta l'indipendenza a coppie perché la varianza si sommi. Chebyshev dà code polinomiali (collezionista: P(T ≥ nH_n + cn) ≤ π²/(6c²)); il metodo del secondo momento dà P(X=0) ≤ Var(X)/E[X]². Algoritmo della mediana: campione di n^(3/4) elementi, due estremi d e u a ±√n, ordinamento dei soli elementi tra d e u; fallisce con probabilità ≤ n^(-1/4) ed è Las Vegas con 2n + o(n) confronti.Momenti e deviazioni - Markov, Chebyshev e mediana randomizzata →): con probabilità alta . Quindi il carico massimo è , e non come la media. Con palline il carico massimo è invece , cioè vicino alla media (Chernoff, Limiti di Chernoff e di HoeffdingMarkov applicato a e^(tX) dà code esponenziali. Per somme di Bernoulli indipendenti con media μ: P(X ≥ (1+δ)μ) ≤ [e^δ/(1+δ)^(1+δ)]^μ ≤ e^(-δ²μ/3) per 0<δ≤1, P(X ≤ (1-δ)μ) ≤ e^(-δ²μ/2), P(X ≥ R) ≤ 2^(-R) se R ≥ 6μ. Hoeffding per X_i in [a_i,b_i]: P(|S-E[S]| ≥ t) ≤ 2exp(-2t²/Σ(b_i-a_i)²). Applicazioni: n ≥ ln(2/δ)/(2ε²) campioni per stimare una probabilità, amplificazione BPP con k = O(log 1/ε) ripetizioni, bilanciamento di insiemi con scarto √(4m ln n).Limiti di Chernoff e di Hoeffding →).
Numeri (). La costante è larga: il limite dimostrato dà , mentre il conto con la binomiale esatta dà per , per e per . Nelle simulazioni il massimo è quasi sempre o , e in circa una prova su dieci, come prevede il valore . Il confronto è nella tabella.
| massimo osservato (una scelta) | massimo osservato (due scelte) | ||
|---|---|---|---|
| da a (più spesso ) | |||
| da a (più spesso o ) | o | ||
| da a (più spesso o ) | o | ||
| da a (più spesso ) |
La crescita è lenta (logaritmo di un logaritmo): per questo in pratica le tabelle hash con catene hanno catene lunghe al massimo qualche unità.
Approssimazione di Poisson
Per grande con (Distribuzione di PoissonPoi(λ) conta eventi rari: P(X = k) = e^(−λ) λ^k / k! per k = 0, 1, 2, …, con media e varianza entrambe uguali a λ; approssima la binomiale Bin(n, p) quando n è grande e p piccolo, con λ = np.Distribuzione di Poisson →). Per la probabilità che un'urna abbia palline è:
| binomiale | ||||||
| Poisson |
La distanza in variazione totale tra le due leggi vale per , per e per (cala come ). Il modello di Poisson sostituisce i carichi con variabili indipendenti: la somma non è più fissa, ma i calcoli diventano un prodotto di probabilità.
Teorema (esatto contro Poisson). Sia il vettore dei carichi esatti e quello Poisson con media . Per ogni funzione In particolare, per ogni evento sui carichi: .
Dimostrazione. (1) Condizionando a , il vettore ha la stessa legge di : infatti la multinomiale con urne equiprobabili. (2) . (3) , quindi per la disuguaglianza .
Uso. Per si vuole . Nel modello di Poisson l'union bound dà , e il teorema moltiplica per : . Il fattore è grande ma costante rispetto agli esponenziali in gioco, e si può usare per qualsiasi evento: quando la probabilità nel modello Poisson è lo è anche nel modello esatto.
Il potere delle due scelte
Algoritmo (due scelte). Per ogni pallina si scelgono due urne a caso e la pallina va in quella meno carica (a parità, una qualsiasi).
Il carico massimo cala da a con alta probabilità: un miglioramento esponenziale con una sola scelta in più. Con scelte è . Idea della dimostrazione: indicando con la frazione di urne con carico , un'urna raggiunge il carico solo se entrambe le scelte cadono su urne di carico , quindi e la frazione crolla con esponente doppio (); si ferma quando , cioè dopo passi. Applicazioni: bilanciamento del carico tra server, hashing con due funzioni, cuckoo hashing. Nei numeri della tabella sopra, passa da - a .
import random
def max_carico(n, scelte=1):
c = [0] * n
for _ in range(n): # n palline in n urne
i = min((random.randrange(n) for _ in range(scelte)), key=lambda j: c[j])
c[i] += 1 # va nell'urna meno carica fra le scelte
return max(c)
print(max_carico(10**5, 1), max_carico(10**5, 2)) # tipicamente 7 o 8, e 3 o 4Domande d'esame
- Dimostra che con palline la probabilità di collisione è almeno . Per , il limite superiore dà ; con si ha .
- Quante urne vuote ci si aspetta lanciando palline in urne, e perché? : per l'indicatore di ogni urna vale , e la linearità non richiede indipendenza.
- Perché non basta il limite per concludere sul massimo? Vale per una singola urna; per il massimo serve la union bound sulle urne, quindi la probabilità per una singola urna va portata sotto (così la somma sulle urne resta ), cioè , che dà .
- Cosa dice il teorema esatto contro Poisson e come si dimostra? Che ogni evento ha nel modello esatto probabilità al più volte quella nel modello Poisson: si condiziona il modello Poisson alla somma (diventa la multinomiale) e si limita dal basso .
Versione ripasso
- Modello. palline, urne, scelte indipendenti e uniformi; carico (Bernoulli, binomiale e uniforme discretaBernoulli Be(p): un solo tentativo, vale 1 con probabilità p; binomiale Bin(n, p): numero di successi in n prove indipendenti, P(X = k) = C(n,k) p^k (1−p)^(n−k), media np e varianza np(1−p); uniforme discreta: n valori equiprobabili.Bernoulli, binomiale e uniforme discreta →), ma i sono dipendenti perché . Gli indicatori e la linearità (Linearità del valore atteso e variabili indicatriciLa linearità $E[X+Y]=E[X]+E[Y]$ vale sempre, anche senza indipendenza; con le variabili indicatrici ($E[I_A]=P(A)$) trasforma un conteggio in una somma di probabilità. Applicazioni: attesa del primo successo $1/p$, collezionista di figurine $nH_n$, punti fissi di una permutazione (media $1$), record (media $H_n$), inversioni ($n(n-1)/4$), attesa condizionata, identità di Wald $E[S_N]=E[N]E[X]$.Linearità del valore atteso e variabili indicatrici →) non richiedono indipendenza e sono lo strumento principale.
- Compleanno. . Superiormente perché (tangente in della convessa ); inferiormente per , perché se . La soglia è a , cioè : per basta (; esatto , con solo ), per il servono persone.
- Perché . Coppie in collisione attese , che vale per ; per le terne , soglia ( per ). Prima collisione dopo palline in media. Hash a bit: chiavi per probabilità .
- Urne vuote. , , quindi (per : ). Per la varianza , da cui . Con : , deviazione standard (simulazione e ). Con : , e per Markov (per , : ); in media servono palline.
- Carico massimo (). . Con e : (tangente ), quindi e ; union bound sulle urne: . L'ordine è (estremo inferiore: secondo momento). Con la binomiale esatta dà per ; osservato di solito o . Per : (Limiti di Chernoff e di HoeffdingMarkov applicato a e^(tX) dà code esponenziali. Per somme di Bernoulli indipendenti con media μ: P(X ≥ (1+δ)μ) ≤ [e^δ/(1+δ)^(1+δ)]^μ ≤ e^(-δ²μ/3) per 0<δ≤1, P(X ≤ (1-δ)μ) ≤ e^(-δ²μ/2), P(X ≥ R) ≤ 2^(-R) se R ≥ 6μ. Hoeffding per X_i in [a_i,b_i]: P(|S-E[S]| ≥ t) ≤ 2exp(-2t²/Σ(b_i-a_i)²). Applicazioni: n ≥ ln(2/δ)/(2ε²) campioni per stimare una probabilità, amplificazione BPP con k = O(log 1/ε) ripetizioni, bilanciamento di insiemi con scarto √(4m ln n).Limiti di Chernoff e di Hoeffding →).
- Poisson. (Distribuzione di PoissonPoi(λ) conta eventi rari: P(X = k) = e^(−λ) λ^k / k! per k = 0, 1, 2, …, con media e varianza entrambe uguali a λ; approssima la binomiale Bin(n, p) quando n è grande e p piccolo, con λ = np.Distribuzione di Poisson →); distanza in variazione totale per . Modello con indipendenti. Teorema: per . Dimostrazione: (1) condizionato a , è multinomiale come ; (2) ; (3) da . Esempio : .
- Due scelte. Pallina nell'urna meno carica fra due a caso: massimo , perché ( frazione di urne con carico ); con scelte . Per si passa da - a . Usi: bilanciamento del carico, cuckoo hashing (Tabelle hashTabella hash per implementare una mappa: funzione hash = hash code + compression function, bucket array, separate chaining; hash code per numeri e stringhe (polynomial, cyclic shift), division e MAD; load factor, complessità al caso pessimo Theta(n) e medio O(1+lambda), rehashing; esempio svolto con inserimenti e collisioni.Tabelle hash →).
- Errori tipici. Soglia del compleanno invece di ; trattare i carichi come indipendenti senza il fattore ; dimenticare l'union bound sulle urne; scambiare per un limite sul massimo.
Esercizi su questo argomento
- Esercizio - Approssimazione di Poisson dei carichi e limite sul carico massimo
- Esercizio - coppie di compleanni uguali e indipendenza a coppie
- Esercizio - Dimensionamento di un filtro di Bloom e fingerprint di documenti
- Esercizio - Liste di collisione con hash universale e dimensionamento della tabella
- Esercizio - Paradosso del compleanno e collisioni di un hash a 32 bit
- Esercizio - Poissonizzazione di cento palline in cento urne e confronto con il modello esatto
- Esercizio - Tre persone con lo stesso compleanno e due scelte nel bilanciamento
- Esercizio - Urne vuote e carico massimo con mille server
- Esercizio - urne vuote e disuguaglianza delle differenze limitate