Salta al contenuto
Note per Studenti Palline e urne - compleanno, carico massimo e approssimazione di Poisson

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 mm palline in nn urne: ogni pallina sceglie la sua urna uniformemente e indipendentemente dalle altre. Il carico dell'urna ii è LiL_i = numero di palline in ii. Vale L1+⋯+Ln=mL_1+\dots+L_n=m.

Ogni LiL_i è una Bin(m,1/n)\text{Bin}(m,1/n) (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 m/nm/n. Ma L1,…,LnL_1,\dots,L_n non sono indipendenti: la somma è fissata a mm (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 (mm) servono perché con probabilità almeno 1/21/2 due finiscano nella stessa urna? Con n=365n=365 è la domanda "quante persone perché due compiano gli anni lo stesso giorno".

La pallina ii evita le i−1i-1 urne già occupate con probabilità 1−i−1n1-\frac{i-1}{n}, quindi P(nessuna collisione)=∏i=0m−1(1−in).P(\text{nessuna collisione})=\prod_{i=0}^{m-1}\Bigl(1-\frac{i}{n}\Bigr).

Teorema (soglia del compleanno). Per m≤n/2m\le n/2 exp⁡(−m(m−1)2n−m33n2) ≤ P(nessuna collisione) ≤ exp⁡(−m(m−1)2n).\exp\Bigl(-\frac{m(m-1)}{2n}-\frac{m^3}{3n^2}\Bigr)\ \le\ P(\text{nessuna collisione})\ \le\ \exp\Bigl(-\frac{m(m-1)}{2n}\Bigr). Quindi la collisione ha probabilità circa 1/21/2 per m≈2nln⁡2≈1,18nm\approx\sqrt{2n\ln 2}\approx 1{,}18\sqrt n: la soglia è Θ(n)\Theta(\sqrt n), non Θ(n)\Theta(n).

Dimostrazione. Estremo superiore: 1−x≤e−x1-x\le e^{-x} per ogni xx (la retta 1−x1-x è tangente in 00 alla funzione convessa e−xe^{-x}), quindi ∏(1−in)≤exp⁡(−∑i<min)=exp⁡(−m(m−1)2n)\prod(1-\frac in)\le\exp(-\sum_{i<m}\frac in)=\exp(-\frac{m(m-1)}{2n}) perché ∑i=0m−1i=m(m−1)2\sum_{i=0}^{m-1}i=\frac{m(m-1)}2. Estremo inferiore: per 0≤x≤120\le x\le\frac12 vale −ln⁡(1−x)=x+x22+x33+⋯≤x+x2(12+x3+x24+… )≤x+x2-\ln(1-x)=x+\frac{x^2}2+\frac{x^3}3+\dots\le x+x^2\bigl(\frac12+\frac x3+\frac{x^2}4+\dots\bigr)\le x+x^2 (la parentesi è <12+16+116+⋯<1<\frac12+\frac16+\frac1{16}+\dots<1), cioè 1−x≥e−x−x21-x\ge e^{-x-x^2}. Si somma con x=in≤12x=\frac in\le\frac12: ∑i<mi2n2≤m33n2\sum_{i<m}\frac{i^2}{n^2}\le\frac{m^3}{3n^2}. □\square

Esempio (n=365n=365). Il limite superiore dà P(nessuna)≤12P(\text{nessuna})\le\frac12 non appena m(m−1)≥2nln⁡2=2⋅365⋅0,6931=505,997m(m-1)\ge 2n\ln2=2\cdot365\cdot0{,}6931=505{,}997. Con m=23m=23: 23⋅22=506≥505,99723\cdot22=506\ge505{,}997, quindi m=23m=23 basta; con m=22m=22: 22⋅21=462<50622\cdot21=462<506. Il calcolo esatto del prodotto conferma: P(collisione)=0,4757P(\text{collisione})=0{,}4757 per m=22m=22 e 0,50730{,}5073 per m=23m=23 (il limite dà 0,46890{,}4689 e 0,50000{,}5000). Per il 99%99\% servono m=57m=57 persone (0,99010{,}9901).

Grafico interattivo: Probabilità di nessuna collisione con n = 365: limite superiore e inferiore, e soglia 1/2 raggiunta a m = 23

Perché n\sqrt n. Le coppie di palline sono (m2)\binom m2 e ognuna collide con probabilità 1n\frac1n: 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 è (m2)1n≈m22n\binom m2\frac1n\approx\frac{m^2}{2n}, che diventa Θ(1)\Theta(1) per m=Θ(n)m=\Theta(\sqrt n). Lo stesso conto per le terne nella stessa urna dà (m3)1n2\binom m3\frac1{n^2}, quindi servono m≈(6)1/3n2/3m\approx(6)^{1/3}n^{2/3} palline (92,892{,}8 per n=365n=365: con m=88m=88 le terne attese sono 0,820{,}82).

Conseguenza per l'hashing. Una funzione hash a bb bit ha n=2bn=2^b valori. Con b=32b=32 ci si aspetta la prima collisione dopo circa πn/2≈82 000\sqrt{\pi n/2}\approx 82\,000 chiavi (il tempo atteso di prima collisione è πn/2+23\sqrt{\pi n/2}+\frac23, vedi l'esercizio): 77 16477\,164 chiavi bastano già per probabilità 1/21/2. Nemmeno un hash a 3232 bit permette di identificare in modo affidabile milioni di oggetti.

Urne vuote

Teorema (urne vuote). Sia ZZ il numero di urne vuote. Allora E[Z]=n(1−1n)m≈n e−m/n,Var(Z)=n(n−1)(1−2n)m+n(1−1n)m−n2(1−1n)2m.E[Z]=n\Bigl(1-\frac1n\Bigr)^m\approx n\,e^{-m/n},\qquad \text{Var}(Z)=n(n-1)\Bigl(1-\frac2n\Bigr)^m+n\Bigl(1-\frac1n\Bigr)^m-n^2\Bigl(1-\frac1n\Bigr)^{2m}.

Dimostrazione. Z=∑iIiZ=\sum_i I_i con Ii=1I_i=1 se l'urna ii è vuota. P(Ii=1)=(1−1n)mP(I_i=1)=(1-\frac1n)^m perché ogni pallina deve evitare ii. Per la linearità E[Z]=nP(I1=1)E[Z]=nP(I_1=1). Per la varianza: E[Z2]=∑iE[Ii]+∑i≠jE[IiIj]E[Z^2]=\sum_iE[I_i]+\sum_{i\ne j}E[I_iI_j] con E[IiIj]=(1−2n)mE[I_iI_j]=(1-\frac2n)^m (le mm palline evitano entrambe le urne ii e jj), da cui Var(Z)=E[Z2]−E[Z]2\text{Var}(Z)=E[Z^2]-E[Z]^2 è la formula scritta. □\square

Si usa (1−1n)m≈e−m/n(1-\frac1n)^m\approx e^{-m/n} perché 1−x≤e−x1-x\le e^{-x} (e la differenza è piccola per nn grande). Per m=nm=n la frazione di urne vuote è ≈e−1=0,368\approx e^{-1}=0{,}368 e il resto ha carico ≥1\ge1 (alcune ne hanno molte). Esempio (n=m=1000n=m=1000): E[Z]=367,70E[Z]=367{,}70 e sd(Z)=97,23=9,86\text{sd}(Z)=\sqrt{97{,}23}=9{,}86: una simulazione di 10001000 prove dà 367,7367{,}7 e 9,829{,}82. Lo scarto tipico è piccolo rispetto alla media: ZZ è concentrato (varianza O(n)O(n), 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 m=nln⁡n+cnm=n\ln n+cn palline E[Z]≈ne−m/n=e−cE[Z]\approx ne^{-m/n}=e^{-c} e, per Markov, P(Z≥1)≤E[Z]≈e−cP(Z\ge1)\le E[Z]\approx e^{-c}. Per n=1000n=1000 e m=n(ln⁡n+3)=9908m=n(\ln n+3)=9908 si ha E[Z]=0,0495E[Z]=0{,}0495: tutte le urne sono occupate con probabilità almeno 0,950{,}95. È 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 nHn≈nln⁡nnH_n\approx n\ln n palline.

Carico massimo

Con m=nm=n la media è 11, ma il carico massimo è molto più grande.

Teorema (carico massimo, estremo superiore). Lanciando nn palline in nn urne, con probabilità almeno 1−1n1-\frac1n il carico massimo è al più k=⌈3ln⁡nln⁡ln⁡n⌉k=\bigl\lceil\frac{3\ln n}{\ln\ln n}\bigr\rceil (per n≥16n\ge16, così che ln⁡ln⁡n>1\ln\ln n>1).

Dimostrazione. Si fissa l'urna 11. Per avere almeno kk palline bisogna scegliere kk palline ((nk)\binom nk modi) che vadano tutte lì (probabilità n−kn^{-k}). 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 →): P(L1≥k)≤(nk)1nk≤nkk! nk=1k!≤(ek)k,P(L_1\ge k)\le\binom nk\frac1{n^k}\le\frac{n^k}{k!\,n^k}=\frac1{k!}\le\Bigl(\frac ek\Bigr)^k, dove l'ultimo passo è k!≥(k/e)kk!\ge(k/e)^k (da ek=∑jkj/j!≥kk/k!e^k=\sum_j k^j/j!\ge k^k/k!). Per k≥3ln⁡nln⁡ln⁡nk\ge\frac{3\ln n}{\ln\ln n} si vuole (e/k)k≤n−2(e/k)^k\le n^{-2}. Posto t=ln⁡ln⁡nt=\ln\ln n, k0=3ln⁡ntk_0=\frac{3\ln n}{t} e usando la disuguaglianza della tangente ln⁡t≤t3+ln⁡3−1\ln t\le\frac t3+\ln3-1 (la concava ln⁡t\ln t sta sotto la tangente in t=3t=3): ln⁡k0e=ln⁡3+t−ln⁡t−1≥2t3⟹k0ln⁡k0e≥3ln⁡nt⋅2t3=2ln⁡n.\ln\frac{k_0}{e}=\ln3+t-\ln t-1\ge\frac{2t}3\quad\Longrightarrow\quad k_0\ln\frac{k_0}e\ge\frac{3\ln n}{t}\cdot\frac{2t}3=2\ln n. Quindi (e/k0)k0≤n−2(e/k_0)^{k_0}\le n^{-2}, e vale anche per k≥k0k\ge k_0 intero perché (e/k)k(e/k)^k decresce per k≥1k\ge1. Un'ultima union bound sulle nn urne: P(max⁡Li≥k)≤n⋅n−2=1nP(\max L_i\ge k)\le n\cdot n^{-2}=\frac1n. □\square

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 max⁡iLi≥(1−o(1))ln⁡nln⁡ln⁡n\max_i L_i\ge(1-o(1))\frac{\ln n}{\ln\ln n}. Quindi il carico massimo è Θ(ln⁡n/ln⁡ln⁡n)\Theta(\ln n/\ln\ln n), e non O(1)O(1) come la media. Con m≥nln⁡nm\ge n\ln n palline il carico massimo è invece mn+O(mnln⁡n)\frac mn+O\bigl(\sqrt{\frac mn\ln n}\bigr), 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 (n=106n=10^6). La costante 33 è larga: il limite dimostrato dà k=16k=16, mentre il conto con la binomiale esatta dà n⋅P(Bin(n,1/n)≥k)=0,111n\cdot P(\text{Bin}(n,1/n)\ge k)=0{,}111 per k=10k=10, 0,01000{,}0100 per k=11k=11 e 0,00080{,}0008 per k=12k=12. Nelle simulazioni il massimo è quasi sempre 88 o 99, e 1010 in circa una prova su dieci, come prevede il valore 0,1110{,}111. Il confronto è nella tabella.

nn ln⁡n/ln⁡ln⁡n\ln n/\ln\ln n massimo osservato (una scelta) massimo osservato (due scelte)
10310^3 3,573{,}57 da 44 a 77 (più spesso 55) 33
10410^4 4,154{,}15 da 55 a 99 (più spesso 66 o 77) 33 o 44
10510^5 4,714{,}71 da 77 a 1010 (più spesso 77 o 88) 33 o 44
10610^6 5,265{,}26 da 88 a 1010 (più spesso 99) 44

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 nn grande Bin(m,1n)≈Poi(λ)\text{Bin}(m,\frac1n)\approx\text{Poi}(\lambda) con λ=mn\lambda=\frac mn (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 m=n=100m=n=100 la probabilità che un'urna abbia kk palline è:

kk 00 11 22 33 44 55
binomiale 0,36600{,}3660 0,36970{,}3697 0,18490{,}1849 0,06100{,}0610 0,01490{,}0149 0,00290{,}0029
Poisson(1)(1) 0,36790{,}3679 0,36790{,}3679 0,18390{,}1839 0,06130{,}0613 0,01530{,}0153 0,00310{,}0031

La distanza in variazione totale tra le due leggi vale 0,02930{,}0293 per n=10n=10, 0,00280{,}0028 per n=100n=100 e 0,000280{,}00028 per n=1000n=1000 (cala come 1/n1/n). Il modello di Poisson sostituisce i carichi con nn variabili Yi∼Poi(m/n)Y_i\sim\text{Poi}(m/n) indipendenti: la somma non è più fissa, ma i calcoli diventano un prodotto di probabilità.

Teorema (esatto contro Poisson). Sia L=(L1,…,Ln)L=(L_1,\dots,L_n) il vettore dei carichi esatti e Y=(Y1,…,Yn)Y=(Y_1,\dots,Y_n) quello Poisson con media m/nm/n. Per ogni funzione f≥0f\ge0 E[f(L)]≤em  E[f(Y)].E[f(L)]\le e\sqrt m\;E[f(Y)]. In particolare, per ogni evento AA sui carichi: P(L∈A)≤em P(Y∈A)P(L\in A)\le e\sqrt m\,P(Y\in A).

Dimostrazione. (1) Condizionando a ∑Yi=m\sum Y_i=m, il vettore YY ha la stessa legge di LL: infatti P(Y=y ∣ ∑Yi=m)=∏ie−m/n(m/n)yi/yi!e−mmm/m!=m!∏iyi! n−m,P\Bigl(Y=y\ \Big|\ \textstyle\sum Y_i=m\Bigr)=\frac{\prod_i e^{-m/n}(m/n)^{y_i}/y_i!}{e^{-m}m^m/m!}=\frac{m!}{\prod_iy_i!}\,n^{-m}, la multinomiale con nn urne equiprobabili. (2) E[f(Y)]=∑jP(∑Yi=j)E[f(Y)∣∑Yi=j]≥P(∑Yi=m) E[f(L)]E[f(Y)]=\sum_jP(\sum Y_i=j)E[f(Y)\mid\sum Y_i=j]\ge P(\sum Y_i=m)\,E[f(L)]. (3) ∑Yi∼Poi(m)\sum Y_i\sim\text{Poi}(m), quindi P(∑Yi=m)=e−mmm/m!≥1emP(\sum Y_i=m)=e^{-m}m^m/m!\ge\frac1{e\sqrt m} per la disuguaglianza m!≤em (m/e)mm!\le e\sqrt m\,(m/e)^m. □\square

Uso. Per n=m=1000n=m=1000 si vuole P(max⁡Li≥10)P(\max L_i\ge10). Nel modello di Poisson l'union bound dà n P(Poi(1)≥10)=1,1⋅10−4n\,P(\text{Poi}(1)\ge10)=1{,}1\cdot10^{-4}, e il teorema moltiplica per e1000=85,96e\sqrt{1000}=85{,}96: P(max⁡Li≥10)≤0,0096P(\max L_i\ge10)\le0{,}0096. Il fattore eme\sqrt m è grande ma costante rispetto agli esponenziali in gioco, e si può usare per qualsiasi evento: quando la probabilità nel modello Poisson è o(1/m)o(1/\sqrt m) 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 Θ(ln⁡n/ln⁡ln⁡n)\Theta(\ln n/\ln\ln n) a ln⁡ln⁡nln⁡2+O(1)\frac{\ln\ln n}{\ln 2}+O(1) con alta probabilità: un miglioramento esponenziale con una sola scelta in più. Con d≥2d\ge2 scelte è ln⁡ln⁡nln⁡d+O(1)\frac{\ln\ln n}{\ln d}+O(1). Idea della dimostrazione: indicando con βi\beta_i la frazione di urne con carico ≥i\ge i, un'urna raggiunge il carico i+1i+1 solo se entrambe le scelte cadono su urne di carico ≥i\ge i, quindi βi+1≲βi2\beta_{i+1}\lesssim\beta_i^2 e la frazione crolla con esponente doppio (βi≈2−2i\beta_i\approx2^{-2^{i}}); si ferma quando βi<1/n\beta_i<1/n, cioè dopo log⁡2log⁡2n\log_2\log_2 n passi. Applicazioni: bilanciamento del carico tra server, hashing con due funzioni, cuckoo hashing. Nei numeri della tabella sopra, n=106n=10^6 passa da 88-99 a 44.

python
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 4

Domande d'esame

  1. Dimostra che con m=⌈2nln⁡2⌉+1m=\lceil\sqrt{2n\ln 2}\rceil+1 palline la probabilità di collisione è almeno 1/21/2. Per m(m−1)≥2nln⁡2m(m-1)\ge2n\ln2, il limite superiore ∏(1−in)≤e−m(m−1)/2n≤e−ln⁡2=12\prod(1-\frac in)\le e^{-m(m-1)/2n}\le e^{-\ln2}=\frac12 dà P(collisione)≥12P(\text{collisione})\ge\frac12; con m−1≥2nln⁡2m-1\ge\sqrt{2n\ln2} si ha m(m−1)≥(m−1)2≥2nln⁡2m(m-1)\ge(m-1)^2\ge2n\ln2.
  2. Quante urne vuote ci si aspetta lanciando nn palline in nn urne, e perché? n(1−1n)n≈n/en(1-\frac1n)^n\approx n/e: per l'indicatore di ogni urna vale (1−1n)n(1-\frac1n)^n, e la linearità non richiede indipendenza.
  3. Perché non basta il limite P(L1≥k)≤1/k!P(L_1\ge k)\le1/k! per concludere sul massimo? Vale per una singola urna; per il massimo serve la union bound sulle nn urne, quindi la probabilità per una singola urna va portata sotto 1/n21/n^2 (così la somma sulle nn urne resta ≤1/n\le 1/n), cioè k!≥n2k!\ge n^{2}, che dà k=Θ(ln⁡n/ln⁡ln⁡n)k=\Theta(\ln n/\ln\ln n).
  4. Cosa dice il teorema esatto contro Poisson e come si dimostra? Che ogni evento ha nel modello esatto probabilità al più eme\sqrt m volte quella nel modello Poisson: si condiziona il modello Poisson alla somma mm (diventa la multinomiale) e si limita dal basso P(Poi(m)=m)≥1/(em)P(\text{Poi}(m)=m)\ge1/(e\sqrt m).

Versione ripasso

Esercizi su questo argomento

Teoria collegata