Salta al contenuto
Note per Studenti Esercizio - bilanciamento di insiemi con un colore casuale

Esercizio - bilanciamento di insiemi con un colore casuale

Teoria: 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 → (bilanciamento di insiemi) e, per l'unione sugli eventi, 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 →.

Testo. Sono dati mm elementi e nn sottoinsiemi; AA è la matrice n×mn\times m con Aij=1A_{ij}=1 se l'elemento jj sta nel sottoinsieme ii. Si vuole colorare ogni elemento con +1+1 o −1-1 (vettore bb) in modo che per ogni sottoinsieme ∣(Ab)i∣=∣∑jAijbj∣|(Ab)_i|=|\sum_jA_{ij}b_j| sia piccolo.

  1. Dimostrare che esiste bb con max⁡i∣(Ab)i∣≤4mln⁡n\max_i|(Ab)_i|\le\sqrt{4m\ln n} e calcolare il limite per n=m=100n=m=100 e n=m=1000n=m=1000.
  2. Con quale probabilità un colore casuale è buono? Quante prove servono in media?
  3. Se la riga ii ha wiw_i elementi, trovare un limite per riga: ∣(Ab)i∣≤2wiln⁡(4n)|(Ab)_i|\le\sqrt{2w_i\ln(4n)} con probabilità ≥12\ge\frac12 per tutte le righe insieme. Calcolarlo per wi=50w_i=50, n=100n=100.
  4. Confrontare con una simulazione su una matrice casuale 100×100100\times100.

Soluzione

1. Esistenza. Si sceglie ogni bj∈{−1,+1}b_j\in\{-1,+1\} con probabilità 12\frac12, indipendentemente. La riga ii è Ri=∑jAijbjR_i=\sum_jA_{ij}b_j, somma di mm termini indipendenti, il termine jj in [−Aij,Aij]⊆[−1,1][-A_{ij},A_{ij}]\subseteq[-1,1] (ampiezza ≤2\le2), media 00. Quindi c=∑(bj−aj)2≤4mc=\sum(b_j-a_j)^2\le4m e Hoeffding dà, per t>0t>0, P(∣Ri∣≥t)≤2e−2t2/(4m)=2e−t2/(2m).P(|R_i|\ge t)\le2e^{-2t^2/(4m)}=2e^{-t^2/(2m)}. Con t=4mln⁡nt=\sqrt{4m\ln n}: t2/(2m)=2ln⁡nt^2/(2m)=2\ln n, quindi P(∣Ri∣≥t)≤2e−2ln⁡n=2n2P(|R_i|\ge t)\le2e^{-2\ln n}=\frac2{n^2}. Per l'unione sulle nn righe, la probabilità che almeno una superi tt è ≤n⋅2n2=2n<1\le n\cdot\frac2{n^2}=\frac2n<1 per n≥3n\ge3. Dunque con probabilità positiva nessuna riga supera tt: esiste un buon bb. Numeri: n=m=100n=m=100: t=400ln⁡100=1842,1=42,9t=\sqrt{400\ln100}=\sqrt{1842{,}1}=42{,}9; n=m=1000n=m=1000: t=4000ln⁡1000=166,2t=\sqrt{4000\ln1000}=166{,}2. Sono molto meno del massimo banale mm (100100 e 10001000).

2. Probabilità e prove. La probabilità che un colore casuale sia buono è ≥1−2n\ge1-\frac2n: 0,980{,}98 per n=100n=100, 0,9980{,}998 per n=1000n=1000. Le prove sono indipendenti, quindi il numero di tentativi fino al successo è geometrico con media ≤11−2/n=1,020\le\frac1{1-2/n}=1{,}020 per n=100n=100: un algoritmo Las Vegas (si verifica max⁡i∣(Ab)i∣\max_i|(Ab)_i| in tempo O(nm)O(nm)).

3. Limite per riga. Con wiw_i elementi nella riga, c≤4wic\le4w_i e P(∣Ri∣≥ti)≤2e−ti2/(2wi)P(|R_i|\ge t_i)\le2e^{-t_i^2/(2w_i)}. Con ti=2wiln⁡(4n)t_i=\sqrt{2w_i\ln(4n)} questo vale 2e−ln⁡(4n)=12n2e^{-\ln(4n)}=\frac1{2n} e per l'unione su nn righe ≤12\le\frac12. Per wi=50w_i=50, n=100n=100: t=100ln⁡400=599,1=24,5t=\sqrt{100\ln400}=\sqrt{599{,}1}=24{,}5. È quasi la metà del limite globale (42,942{,}9) perché le righe hanno 5050 elementi e non 100100.

4. Simulazione. Matrice casuale 100×100100\times100 con entrate 0/10/1 equiprobabili (pesi di riga da 3939 a 6464, media 50,350{,}3); 50005000 colori casuali:

  • max⁡i∣(Ab)i∣\max_i|(Ab)_i| medio 16,6516{,}65, massimo osservato 3535: sempre sotto 42,942{,}9 (il 100%100\% dei colori è buono, contro il 98%98\% garantito);
  • il limite per riga (da 21,621{,}6 a 27,727{,}7 secondo il peso) è rispettato da tutte le righe nel 97,5%97{,}5\% dei colori, contro il 50%50\% garantito. Per n=m=1000n=m=1000: limite 166,2166{,}2, valore medio osservato 63,263{,}2 (massimo 104104 su 200200 prove). I limiti sono molto prudenti, dello stesso ordine di grandezza mln⁡n\sqrt{m\ln n} ma con costante circa doppia o tripla.

Risultato. Esiste bb con scarto ≤4mln⁡n\le\sqrt{4m\ln n} (42,942{,}9 per n=m=100n=m=100); un colore casuale va bene con probabilità ≥1−2n\ge1-\frac2n.

Verifica.

python
import math
import numpy as np

rng = np.random.default_rng(3)
n = m = 100
A = (rng.random((n, m)) < 0.5).astype(int)
t = math.sqrt(4 * m * math.log(n)); w = A.sum(1); tr = np.sqrt(2 * w * math.log(4 * n))
mx, ok, ok_r = [], [], []
for _ in range(5000):
    v = np.abs(A @ rng.choice([-1, 1], size=m))
    mx.append(v.max()); ok.append(v.max() <= t); ok_r.append(bool(np.all(v <= tr)))
print(t, np.mean(mx), max(mx), np.mean(ok), np.mean(ok_r))   # 42.9 ~16.6 ~35 1.0 ~0.97

Versione ripasso

Esistenza (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 →). bj=±1b_j=\pm1 uniformi indipendenti; la riga Ri=∑jAijbjR_i=\sum_jA_{ij}b_j ha termini in [−1,1][-1,1], c≤4mc\le4m: P(∣Ri∣≥t)≤2e−t2/(2m)P(|R_i|\ge t)\le2e^{-t^2/(2m)}. Con t=4mln⁡nt=\sqrt{4m\ln n} vale 2n2\frac2{n^2}; unione sulle nn righe: ≤2n<1\le\frac2n<1, quindi un buon bb esiste.

Numeri. n=m=100n=m=100: t=42,9t=42{,}9; n=m=1000n=m=1000: t=166,2t=166{,}2. Successo con probabilità ≥1−2n\ge1-\frac2n (0,980{,}98), media ≤1,020\le1{,}020 tentativi (Las Vegas).

Per riga. wiw_i elementi: ti=2wiln⁡(4n)t_i=\sqrt{2w_i\ln(4n)} dà 12n\frac1{2n} per riga, ≤12\le\frac12 in totale (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 →); wi=50w_i=50, n=100n=100: 24,524{,}5.

Simulazione (100×100100\times100, 50005000 colori). Massimo medio 16,6516{,}65, peggiore 3535; tutti i colori sotto 42,942{,}9; limite per riga rispettato nel 97,5%97{,}5\%. Per n=m=1000n=m=1000: media 63,263{,}2 contro 166,2166{,}2.

Errore tipico. Dimenticare l'unione sulle nn righe: per una sola riga basterebbe t=2mln⁡(2/δ)t=\sqrt{2m\ln(2/\delta)}.

Teoria collegata