Salta al contenuto
Note per Studenti Passeggiate aleatorie - rovina del giocatore, 2-SAT e grafi

Passeggiate aleatorie - rovina del giocatore, 2-SAT e grafi

In questa pagina 5

Le catene di Markov di Catene di Markov - matrice di transizione, classificazione degli stati e distribuzione stazionariaUna catena di Markov a tempo discreto e stati finiti è descritta da una matrice stocastica P: P(X_{n+1}=j | X_n=i)=P_ij, la legge al tempo n è π_0 P^n. Gli stati si classificano in classi comunicanti (irriducibilità), periodo (aperiodicità) e ricorrenza/transitorietà. Una distribuzione stazionaria soddisfa πP=π; per catene finite irriducibili esiste ed è unica, vale π_i=1/h_ii (h_ii = tempo medio di primo ritorno), e se la catena è anche aperiodica P^n converge a una matrice con tutte le righe uguali a π. Le catene reversibili (π_i P_ij = π_j P_ji) hanno stazionaria immediata.Catene di Markov - matrice di transizione, classificazione degli stati e distribuzione stazionaria → applicate a tre problemi: una passeggiata sulla retta con due barriere assorbenti (rovina del giocatore), un algoritmo randomizzato che è una passeggiata sullo spazio delle assegnazioni (2-SAT), e la passeggiata su un grafo (connettività, copertura, PageRank). Prerequisiti: Valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso →, 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 →, Grafi - definizioni e proprietàGrafo G=(V,E) diretto e non diretto, grafo semplice e pesato; incidenza, adiacenza, grado; cammini, cicli, sottografi, grafi connessi e componenti connesse; alberi liberi, foreste, spanning tree e spanning forest; proprietà con dimostrazioni (somma dei gradi = 2m, m <= n(n-1)/2, alberi m = n-1, connessi m >= n-1, foreste m <= n-1).Grafi - definizioni e proprietà →. Per la nozione di algoritmo Monte Carlo a errore unilaterale: 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 →.

Rovina del giocatore

Problema. Un giocatore ha ii euro e punta 11 euro a ogni partita: vince con probabilità pp (guadagna 11), perde con q=1−pq=1-p. Si ferma quando raggiunge NN (vittoria) o 00 (rovina). Sia PiP_i la probabilità di raggiungere NN prima di 00 partendo da ii, e DiD_i il numero medio di partite.

Condizionando al primo passo (stati 1,…,N−11,\dots,N-1 transitori, 00 e NN assorbenti): Pi=pPi+1+qPi−1,P0=0, PN=1;Di=1+pDi+1+qDi−1,D0=DN=0.P_i=pP_{i+1}+qP_{i-1},\quad P_0=0,\ P_N=1;\qquad D_i=1+pD_{i+1}+qD_{i-1},\quad D_0=D_N=0.

Soluzione, gioco equo p=q=12p=q=\tfrac12. La prima equazione dice Pi+1−Pi=Pi−Pi−1P_{i+1}-P_i=P_i-P_{i-1}: gli incrementi sono costanti, quindi PiP_i è lineare, e con P0=0P_0=0, PN=1P_N=1 si ha Pi=i/N\boxed{P_i=i/N}. Per la durata si verifica che Di=i(N−i)D_i=i(N-i) soddisfa la ricorrenza: 12[(i−1)(N−i+1)+(i+1)(N−i−1)]=i(N−i)−1\tfrac12\bigl[(i-1)(N-i+1)+(i+1)(N-i-1)\bigr]=i(N-i)-1, quindi 1+(i(N−i)−1)=i(N−i)1+(i(N-i)-1)=i(N-i) ✓, con D0=DN=0D_0=D_N=0; la soluzione è unica (sistema lineare con matrice I−QI-Q invertibile, QQ transitoria). Dunque Di=i(N−i)\boxed{D_i=i(N-i)}.

Esempio. N=5N=5, i=3i=3: P3=35P_3=\tfrac35, D3=3⋅2=6D_3=3\cdot2=6 partite. Con N=20N=20, i=10i=10: P=12P=\tfrac12 e D=100D=100 partite.

Soluzione, p≠12p\ne\tfrac12. L'equazione Pi=pPi+1+qPi−1P_i=pP_{i+1}+qP_{i-1} ha equazione caratteristica pt2−t+q=0pt^2-t+q=0 con radici 11 e r=q/pr=q/p (perché p+q=1p+q=1). Quindi Pi=A+BriP_i=A+Br^i, e con P0=0P_0=0, PN=1P_N=1: Pi=1−ri1−rN,r=qp.P_i=\frac{1-r^i}{1-r^N},\qquad r=\frac qp. Per la durata, una soluzione particolare di Di=1+pDi+1+qDi−1D_i=1+pD_{i+1}+qD_{i-1} è i/(q−p)i/(q-p) (sostituendo: iq−p=1+p(i+1)+q(i−1)q−p=1+i+p−qq−p=iq−p\tfrac{i}{q-p}=1+\tfrac{p(i+1)+q(i-1)}{q-p}=1+\tfrac{i+p-q}{q-p}=\tfrac{i}{q-p} ✓); sommando la soluzione generale dell'omogenea e imponendo D0=DN=0D_0=D_N=0: Di=iq−p−Nq−p⋅1−ri1−rN=i−N Piq−p.D_i=\frac{i}{q-p}-\frac N{q-p}\cdot\frac{1-r^i}{1-r^N}=\frac{i-N\,P_i}{q-p}.

Esempio. p=0,45p=0{,}45, N=20N=20, i=10i=10: r=0,550,45=119r=\tfrac{0{,}55}{0{,}45}=\tfrac{11}9, P10=1−r101−r20=11+r10=0,1185P_{10}=\tfrac{1-r^{10}}{1-r^{20}}=\tfrac1{1+r^{10}}=0{,}1185 e D10=10−20⋅0,11850,1=76,30D_{10}=\tfrac{10-20\cdot0{,}1185}{0{,}1}=76{,}30 partite. Un piccolo vantaggio della banca (0,550{,}55 contro 0,450{,}45) abbatte la probabilità di vincere da 50%50\% a 11,85%11{,}85\%. Alla roulette (puntando sul rosso p=1838p=\tfrac{18}{38}) partendo da 9090 per arrivare a 100100 la probabilità è 0,34870{,}3487 con 1047,51047{,}5 partite in media, ma da 1010 a 100100 è 4,96⋅10−54{,}96\cdot10^{-5}.

Grafico interattivo: Rovina del giocatore con N = 20: probabilità di arrivare a 20 prima di 0 partendo da i, per p = 0,55 (in alto), gioco equo p = 0,5 (retta) e p = 0,45 (in basso)

Contro una banca infinita (N→∞N\to\infty, gioco equo): Pi=i/N→0P_i=i/N\to0, cioè la rovina è certa, ma la durata i(N−i)→∞i(N-i)\to\infty: la rovina arriva quasi certamente, in tempo medio infinito. Questo è il comportamento della passeggiata simmetrica, che è ricorrente ma con tempo medio di ritorno infinito.

2-SAT con una passeggiata aleatoria

Problema. Una formula 2-CNF su nn variabili è un AND di clausole di due letterali (per esempio (x1∨¬x2)∧(¬x1∨x3)(x_1\vee\neg x_2)\wedge(\neg x_1\vee x_3)). Si cerca un'assegnazione che le soddisfi tutte. Esiste un algoritmo deterministico lineare (componenti fortemente connesse), ma quello randomizzato è semplicissimo.

Algoritmo (passeggiata per 2-SAT).

  1. Si parte da un'assegnazione qualunque (per esempio tutte le variabili a 00).
  2. Ripeti al più 2n22n^2 volte: se tutte le clausole sono soddisfatte, restituisci l'assegnazione; altrimenti scegli una clausola violata, scegli a caso uno dei suoi due letterali e cambia il valore della sua variabile.
  3. Se dopo 2n22n^2 passi non si è trovata un'assegnazione, rispondi "non soddisfacibile".

L'errore è unilaterale (Monte Carlo, vedi 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 →): se la formula non è soddisfacibile non si trova mai nulla e la risposta è corretta; se lo è, si può sbagliare.

Esempio svolto (n = 3). Formula (x1∨x2)∧(¬x1∨x3)∧(¬x2∨¬x3)(x_1\vee x_2)\wedge(\neg x_1\vee x_3)\wedge(\neg x_2\vee\neg x_3); soddisfacibile con (0,1,0)(0,1,0) e (1,0,1)(1,0,1) (si verificano a mano: con x1=1x_1=1 la seconda clausola impone x3=1x_3=1 e la terza x2=0x_2=0; con x1=0x_1=0 la prima impone x2=1x_2=1 e la terza x3=0x_3=0). Partenza (0,0,0)(0,0,0): la prima clausola è violata (x1=x2=0x_1=x_2=0). Si sceglie a caso tra x1x_1 e x2x_2: sia x1x_1, si ottiene (1,0,0)(1,0,0). Ora la seconda clausola è violata (¬x1=0\neg x_1=0, x3=0x_3=0): si sceglie tra x1x_1 e x3x_3, sia x3x_3: (1,0,1)(1,0,1), e tutte e tre le clausole sono soddisfatte. Trovata in 22 passi. Con altre scelte il cammino è più lungo (per esempio se al secondo passo si sceglie x1x_1 si torna a (0,0,0)(0,0,0)).

Analisi

Teorema. Se la formula è soddisfacibile, il numero atteso di passi per trovare un'assegnazione soddisfacente è al più n2n^2, qualunque sia l'assegnazione iniziale. Quindi con 2n22n^2 passi la probabilità di errore è al più 12\tfrac12, e ripetendo kk blocchi indipendenti di 2n22n^2 passi è al più 2−k2^{-k}.

Dimostrazione. Si fissa un'assegnazione soddisfacente SS. Sia XtX_t il numero di variabili in cui l'assegnazione corrente AtA_t differisce da SS. Se Xt=0X_t=0 si è trovata SS (l'algoritmo può fermarsi prima, su un'altra soluzione). Se Xt>0X_t>0 e c'è una clausola CC violata da AtA_t: SS soddisfa CC mentre AtA_t no, quindi almeno una delle due variabili di CC differisce da SS (se entrambe coincidessero con SS, i due letterali avrebbero lo stesso valore che in SS e CC sarebbe violata anche da SS). Cambiando una variabile scelta a caso tra le due: P(Xt+1=Xt−1)≥12,P(Xt+1=Xt+1)≤12.P(X_{t+1}=X_t-1)\ge\tfrac12,\qquad P(X_{t+1}=X_t+1)\le\tfrac12. Per confronto (si accoppiano i due processi con lo stesso lancio di moneta) il tempo per arrivare a 00 è al più quello della passeggiata simmetrica YtY_t su {0,…,n}\{0,\dots,n\} con Y0=X0Y_0=X_0, che scende o sale con probabilità 12\tfrac12 e in nn è riflessa (hn=1+hn−1h_n=1+h_{n-1}). Sia hjh_j il tempo medio per arrivare a 00 da jj: h0=0,hj=1+12hj−1+12hj+1 (0<j<n),hn=1+hn−1.h_0=0,\qquad h_j=1+\tfrac12h_{j-1}+\tfrac12h_{j+1}\ (0<j<n),\qquad h_n=1+h_{n-1}. Si verifica che hj=2jn−j2h_j=2jn-j^2: per 0<j<n0<j<n, 12[2(j−1)n−(j−1)2+2(j+1)n−(j+1)2]=2jn−j2−1\tfrac12\bigl[2(j-1)n-(j-1)^2+2(j+1)n-(j+1)^2\bigr]=2jn-j^2-1, quindi 1+(2jn−j2−1)=2jn−j21+(2jn-j^2-1)=2jn-j^2 ✓; in nn: hn=n2h_n=n^2 e 1+hn−1=1+2n(n−1)−(n−1)2=n21+h_{n-1}=1+2n(n-1)-(n-1)^2=n^2 ✓. Il massimo di 2jn−j22jn-j^2 su 0≤j≤n0\le j\le n è n2n^2 (in j=nj=n). Dunque E[T]≤n2E[T]\le n^2. Per la disuguaglianza di Markov (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 →), P(T>2n2)≤n22n2=12P(T>2n^2)\le\tfrac{n^2}{2n^2}=\tfrac12. Dopo ogni blocco di 2n22n^2 passi, qualunque sia l'assegnazione a cui si è arrivati, la stessa analisi dà fallimento ≤12\le\tfrac12; i blocchi sono condizionalmente indipendenti, quindi kk blocchi falliscono con probabilità ≤2−k\le2^{-k}. ■\blacksquare

Esempio. Formula su n=4n=4 variabili (¬x1∨¬x2)∧(¬x1∨x2)∧(x1∨¬x2)∧(x1∨¬x3)∧(x1∨¬x4)(\neg x_1\vee\neg x_2)\wedge(\neg x_1\vee x_2)\wedge(x_1\vee\neg x_2)\wedge(x_1\vee\neg x_3)\wedge(x_1\vee\neg x_4): la soluzione è unica, (0,0,0,0)(0,0,0,0). Il tempo medio esatto per trovarla (prendendo la prima clausola violata) da distanza j=1,2,3,4j=1,2,3,4 vale al massimo 5, 10, 13, 145,\ 10,\ 13,\ 14, sotto i limiti 2jn−j2=7,12,15,162jn-j^2=7,12,15,16. Il dettaglio è in Esercizio - Algoritmo randomizzato per 2-SAT eseguito su un'istanza con quattro variabili.

Il caso 3-SAT

Con clausole di 33 letterali una clausola violata ha almeno una variabile sbagliata su tre: la probabilità di avvicinarsi a SS è solo ≥13\ge\tfrac13, quella di allontanarsi ≤23\le\tfrac23. La passeggiata ha deriva verso l'allontanamento e il tempo atteso di arrivo è esponenziale in nn (la ricorrenza hj=1+13hj−1+23hj+1h_j=1+\tfrac13h_{j-1}+\tfrac23h_{j+1} ha soluzione dell'ordine di 2n2^n). L'idea per migliorare è ripartire spesso: si riparte da un'assegnazione casuale uniforme ogni 3n3n passi. La distanza iniziale da una soluzione SS è Bin(n,12)\text{Bin}(n,\tfrac12) (ogni variabile è giusta con probabilità 12\tfrac12). Da distanza jj si arriva a 00 in 3j3j passi se 2j2j passi sono giusti e jj sbagliati (differenza jj): la probabilità è almeno (3jj)(13)2j(23)j\binom{3j}{j}\bigl(\tfrac13\bigr)^{2j}\bigl(\tfrac23\bigr)^j, calcolata per la passeggiata che scende con probabilità esattamente 13\tfrac13 (la vera è più favorevole, per confronto). Sommando su jj con peso (nj)2−n\binom nj2^{-n}, la probabilità di successo di un tentativo vale q(n)=∑j(nj)2−n(3jj)2j33jq(n)=\sum_j\binom nj2^{-n}\binom{3j}j\frac{2^j}{3^{3j}}, e numericamente q(n)≈(3/4)nq(n)\approx(3/4)^n a meno di un fattore polinomiale:

nn q(n)q(n) (3/4)n(3/4)^n 1/q(n)1/q(n)
10 0,0163 0,0563 61
20 6,18⋅10−46{,}18\cdot10^{-4} 3,17⋅10−33{,}17\cdot10^{-3} 1619
30 2,81⋅10−52{,}81\cdot10^{-5} 1,79⋅10−41{,}79\cdot10^{-4} 35 617
50 6,84⋅10−86{,}84\cdot10^{-8} 5,66⋅10−75{,}66\cdot10^{-7} 1,46⋅1071{,}46\cdot10^7

Servono in media 1/q(n)≈(4/3)n⋅poly(n)1/q(n)\approx(4/3)^n\cdot\text{poly}(n) tentativi: un algoritmo di tempo O((4/3)n poly(n))O\bigl((4/3)^n\,\text{poly}(n)\bigr) per 3-SAT, molto meglio di 2n2^n (enunciato senza la dimostrazione completa della stima polinomiale; i valori della tabella sono calcolati con la formula esatta).

Passeggiata aleatoria su un grafo

Sia G=(V,E)G=(V,E) un grafo non orientato connesso con nn vertici e mm archi (Grafi - definizioni e proprietàGrafo G=(V,E) diretto e non diretto, grafo semplice e pesato; incidenza, adiacenza, grado; cammini, cicli, sottografi, grafi connessi e componenti connesse; alberi liberi, foreste, spanning tree e spanning forest; proprietà con dimostrazioni (somma dei gradi = 2m, m <= n(n-1)/2, alberi m = n-1, connessi m >= n-1, foreste m <= n-1).Grafi - definizioni e proprietà →). La passeggiata aleatoria sta in un vertice uu e passa a un vicino scelto uniformemente: Puv=1/d(u)P_{uv}=1/d(u) se {u,v}∈E\{u,v\}\in E.

Teorema. La passeggiata su GG connesso è una catena irriducibile. Ha come unica distribuzione stazionaria πv=d(v)2m\pi_v=\dfrac{d(v)}{2m} e tempo medio di ritorno hvv=2md(v)h_{vv}=\dfrac{2m}{d(v)}. È aperiodica se e solo se GG non è bipartito.

Dimostrazione. Si ha ∑vd(v)=2m\sum_vd(v)=2m, quindi π\pi è una distribuzione. Per ogni arco {u,v}\{u,v\}: πuPuv=d(u)2m⋅1d(u)=12m=πvPvu\pi_uP_{uv}=\tfrac{d(u)}{2m}\cdot\tfrac1{d(u)}=\tfrac1{2m}=\pi_vP_{vu}: bilancio dettagliato, quindi π\pi è stazionaria; l'unicità e hvv=1/πvh_{vv}=1/\pi_v seguono dal teorema fondamentale. Se GG è bipartito i cammini chiusi hanno lunghezza pari (periodo 22); se contiene un ciclo dispari insieme ai cammini di andata e ritorno su un arco (lunghezza 22) il gcd⁡\gcd vale 11. ■\blacksquare

Grafico interattivo: Grafo con triangolo {1,2,3} e coda 3-4-5: m = 5 archi, gradi 2, 2, 3, 2, 1; passeggiata con pi = (0,2; 0,2; 0,3; 0,2; 0,1)

Esempio. Nel grafo del disegno (triangolo 1,2,31,2,3 con coda 3-4-53\text{-}4\text{-}5) m=5m=5, π=(0,2;0,2;0,3;0,2;0,1)\pi=(0{,}2;0{,}2;0{,}3;0{,}2;0{,}1), tempi di ritorno 5,5,103,5,105,5,\tfrac{10}3,5,10. Il nodo 55 (foglia) si rivisita ogni 1010 passi, il nodo 33 (il più connesso) ogni 3,333{,}33.

Tempi di raggiungimento e di copertura

Sia HuvH_{uv} il tempo medio per andare da uu a vv (Huu=0H_{uu}=0) e C(G)C(G) il tempo di copertura: il massimo, sulle partenze, del tempo medio per visitare tutti i vertici.

Lemma. Per ogni arco {u,v}\{u,v\} vale Hvu<2mH_{vu}<2m.

Dimostrazione. Il tempo di ritorno in uu si scrive condizionando sul primo passo: 2md(u)=huu=1+1d(u)∑w∼uHwu\dfrac{2m}{d(u)}=h_{uu}=1+\dfrac1{d(u)}\sum_{w\sim u}H_{wu}. Moltiplicando per d(u)d(u): ∑w∼uHwu=2m−d(u)\sum_{w\sim u}H_{wu}=2m-d(u). Ogni addendo è ≥0\ge0, quindi Hvu≤2m−d(u)<2mH_{vu}\le2m-d(u)<2m. ■\blacksquare

Teorema (copertura). C(G)<4m(n−1)C(G)<4m(n-1).

Dimostrazione. Si prende un albero di copertura TT di GG (esiste perché GG è connesso) e la visita in profondità di TT che parte da ss e ritorna in ss: percorre ogni arco dell'albero una volta per verso, cioè 2(n−1)2(n-1) passaggi u0=s→u1→⋯→u2n−2=su_0=s\to u_1\to\dots\to u_{2n-2}=s tra vertici adiacenti, e visita tutti i vertici. La passeggiata aleatoria da ss, per visitare tutti i vertici, ha tempo medio al più ∑kHukuk+1\sum_{k}H_{u_ku_{k+1}} (il tempo per toccare in ordine questi vertici), e per il lemma ciascun addendo è <2m<2m: totale <2(n−1)⋅2m<2(n-1)\cdot2m. ■\blacksquare

(Con l'identità del tempo di pendolarismo Huv+Hvu=2m RuvH_{uv}+H_{vu}=2m\,R_{uv}, dove RuvR_{uv} è la resistenza efficace tra uu e vv con archi da 1 Ω1\,\Omega, si migliora a 2m(n−1)2m(n-1); qui si è usata solo la dimostrazione elementare.)

Esempio (grafo del disegno). I tempi di raggiungimento di 55 valgono H15=H25=18H_{15}=H_{25}=18, H35=16H_{35}=16, H45=9H_{45}=9 (a mano, con Hi=Hi5H_i=H_{i5}: H4=1+12H3H_4=1+\tfrac12H_3, H3=1+13(2H1+H4)H_3=1+\tfrac13(2H_1+H_4), H1=1+12(H1+H3)H_1=1+\tfrac12(H_1+H_3) con H1=H2H_1=H_2 per simmetria, quindi H1=2+H3H_1=2+H_3, H3=7+H4H_3=7+H_4, H4=9H_4=9, H3=16H_3=16, H1=18H_1=18). Il tempo di pendolarismo tra 11 e 55 è H15+H51=18+263=803H_{15}+H_{51}=18+\tfrac{26}3=\tfrac{80}3, uguale a 2m R15=10⋅832m\,R_{15}=10\cdot\tfrac83 perché R15=23+1+1R_{15}=\tfrac23+1+1. Il tempo di copertura esatto da 11 è 22912≈19,08\tfrac{229}{12}\approx19{,}08 (sistema lineare sugli stati (insieme visitato, posizione)), molto sotto 4m(n−1)=804m(n-1)=80.

grafo H0→nH_{0\to n} o copertura ordine di grandezza
cammino di n+1n+1 vertici H0→n=n2H_{0\to n}=n^2 n2n^2
completo KnK_n Huv=n−1H_{uv}=n-1, copertura (n−1)Hn−1(n-1)H_{n-1} (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 →) nln⁡nn\ln n
lollipop (clique di 23n\tfrac23n vertici e cammino di n3\tfrac n3) hh dalla clique alla fine del cammino ≈427n3\approx\tfrac4{27}n^3 n3n^3 (massimo possibile)

Il caso del lollipop è il peggiore: per n=30,60,90n=30,60,90 i tempi esatti sono 39193919, 31 63931\,639 e 107 159107\,159, cioè 0,145n30{,}145n^3, 0,146n30{,}146n^3, 0,147n30{,}147n^3, che tende a 427n3=0,148n3\tfrac4{27}n^3=0{,}148n^3.

Connettività s-t in spazio logaritmico

Problema (UST-CONN). In un grafo non orientato con nn vertici, ss e tt sono nella stessa componente connessa?

Algoritmo. Fai una passeggiata aleatoria da ss di 4n34n^3 passi; se incontri tt rispondi "sì", altrimenti "no".

Se ss e tt non sono connessi la risposta è sempre corretta. Se lo sono, il tempo medio per raggiungere tt è al più il tempo di copertura della componente di ss, che ha n′≤nn'\le n vertici e m′≤n(n−1)2m'\le\tfrac{n(n-1)}2 archi: C<4m′(n′−1)≤2n(n−1)2<2n3C<4m'(n'-1)\le2n(n-1)^2<2n^3. Per Markov, la probabilità di non vedere tt in 4n34n^3 passi è <12<\tfrac12. Memoria: servono solo il vertice corrente e un contatore fino a 4n34n^3, cioè O(log⁡n)O(\log n) bit (per n=100n=100: 4⋅1064\cdot10^6 passi, un contatore di 2222 bit). Un algoritmo deterministico con quella memoria è stato trovato solo molto più tardi; qui la randomizzazione dà uno strumento semplicissimo.

PageRank

Il navigatore casuale su un insieme di nn pagine: con probabilità α\alpha (tipicamente 0,850{,}85) segue un link uscente scelto a caso, con probabilità 1−α1-\alpha salta a una pagina uniforme. Se una pagina non ha link, si salta sempre. La matrice è G=αP+1−αn11T,PRj=1−αn+α∑i→jPRid+(i),G=\alpha P+\frac{1-\alpha}n\mathbf 1\mathbf 1^T,\qquad \text{PR}_j=\frac{1-\alpha}n+\alpha\sum_{i\to j}\frac{\text{PR}_i}{d^+(i)}, dove d+d^+ è il numero di link uscenti. Tutte le entrate di GG sono ≥1−αn>0\ge\frac{1-\alpha}n>0: la catena è irriducibile e aperiodica per costruzione, quindi esiste un'unica distribuzione stazionaria, ottenibile come limite di x Gkx\,G^k da qualunque xx (iterazione di potenza). Il secondo autovalore di GG ha modulo ≤α\le\alpha, quindi l'errore decade come αk\alpha^k (con α=0,85\alpha=0{,}85, circa ln⁡(106)/ln⁡(1/0,85)≈85\ln(10^6)/\ln(1/0{,}85)\approx85 iterazioni per sei cifre).

Esempio. Tre pagine, 1→2,31\to2,3; 2→32\to3; 3→13\to1; α=0,85\alpha=0{,}85. Le equazioni sono x1=0,05+0,85x3x_1=0{,}05+0{,}85x_3, x2=0,05+0,425x1x_2=0{,}05+0{,}425x_1, x3=0,05+0,425x1+0,85x2x_3=0{,}05+0{,}425x_1+0{,}85x_2. Dalla seconda e dalla terza: x3=0,0925+0,78625x1x_3=0{,}0925+0{,}78625x_1; nella prima: x1=0,05+0,85(0,0925+0,78625x1)=0,128625+0,6683x1x_1=0{,}05+0{,}85(0{,}0925+0{,}78625x_1)=0{,}128625+0{,}6683x_1, quindi x1=0,3878x_1=0{,}3878, x2=0,2148x_2=0{,}2148, x3=0,3974x_3=0{,}3974. La pagina 33 è la più importante perché riceve da 11 (metà del suo peso) e da 22 (tutto). Il caso con 44 pagine è in Esercizio - PageRank di quattro pagine con teletrasporto e iterazione di potenza.

Codice: 2-SAT randomizzato e passeggiata su un grafo

python
import random

def two_sat(clauses, n, rng, max_steps=None):
    """clauses: lista di coppie di letterali (v, segno) con segno 1 = x_v, 0 = not x_v."""
    x = [0] * n
    max_steps = max_steps or 2 * n * n
    sat = lambda c: any(x[v] == s for v, s in c)
    for t in range(max_steps + 1):
        violate = [c for c in clauses if not sat(c)]
        if not violate:
            return x, t
        v, _ = rng.choice(rng.choice(violate))     # clausola violata, poi letterale a caso
        x[v] ^= 1
    return None, max_steps

def passeggiata(adj, start, passi, rng):
    x, visti = start, {start}
    for _ in range(passi):
        x = rng.choice(adj[x]); visti.add(x)
    return visti

rng = random.Random(1)
# (x0 | x1) & (~x0 | x2) & (~x1 | ~x2): variabili 0,1,2
f = [((0, 1), (1, 1)), ((0, 0), (2, 1)), ((1, 0), (2, 0))]
print(two_sat(f, 3, rng))                           # un'assegnazione soddisfacente
adj = {1: [2, 3], 2: [1, 3], 3: [1, 2, 4], 4: [3, 5], 5: [4]}
tempi = []
for _ in range(20000):
    x, visti, t = 1, {1}, 0
    while len(visti) < 5:
        x = rng.choice(adj[x]); visti.add(x); t += 1
    tempi.append(t)
print(sum(tempi) / len(tempi))                      # circa 229/12 = 19.08

Domande d'esame

  1. Giocatore con 33 euro, traguardo 55, gioco equo: probabilità di vittoria e partite attese. P3=35P_3=\tfrac35, D3=3⋅2=6D_3=3\cdot2=6.
  2. Dimostra che l'algoritmo randomizzato per 2-SAT con 2n22n^2 passi ha errore ≤12\le\tfrac12. Distanza XtX_t da una soluzione SS fissata: si avvicina con probabilità ≥12\ge\tfrac12; hj=2jn−j2≤n2h_j=2jn-j^2\le n^2; Markov.
  3. Dimostra che sulla passeggiata su un grafo πv=d(v)/2m\pi_v=d(v)/2m e calcola hvvh_{vv} per il vertice 33 del grafo con triangolo e coda. Bilancio dettagliato πuPuv=12m\pi_uP_{uv}=\tfrac1{2m}; h33=103h_{33}=\tfrac{10}3.
  4. Perché la connettività s-t si decide in spazio O(log⁡n)O(\log n)? Copertura <2n3<2n^3 ma si memorizzano solo il vertice corrente e un contatore; Markov dà errore <12<\tfrac12, solo unilaterale.

Versione ripasso

  • Rovina del giocatore: con pp si guadagna 11, con q=1−pq=1-p si perde 11; Pi=pPi+1+qPi−1P_i=pP_{i+1}+qP_{i-1} (P0=0P_0=0, PN=1P_N=1), Di=1+pDi+1+qDi−1D_i=1+pD_{i+1}+qD_{i-1} (D0=DN=0D_0=D_N=0). Gioco equo: incrementi di PP costanti, Pi=i/NP_i=i/N; Di=i(N−i)D_i=i(N-i) verificato nella ricorrenza (12[(i−1)(N−i+1)+(i+1)(N−i−1)]=i(N−i)−1\tfrac12[(i-1)(N-i+1)+(i+1)(N-i-1)]=i(N-i)-1). Esempio N=5N=5, i=3i=3: 35\tfrac35 e 66 partite; N=20N=20, i=10i=10: 12\tfrac12 e 100100.
  • Caso p≠12p\ne\tfrac12: equazione caratteristica pt2−t+q=0pt^2-t+q=0 con radici 11 e r=q/pr=q/p; Pi=1−ri1−rNP_i=\frac{1-r^i}{1-r^N}; soluzione particolare i/(q−p)i/(q-p) per la durata: Di=i−NPiq−pD_i=\frac{i-NP_i}{q-p}. p=0,45p=0{,}45, N=20N=20, i=10i=10: 0,11850{,}1185 e 76,3076{,}30; roulette p=919p=\tfrac9{19}, da 9090 a 100100: 0,34870{,}3487, 1047,51047{,}5 partite. Contro una banca infinita la rovina è certa con durata media infinita.
  • 2-SAT randomizzato (errore unilaterale): si parte da un'assegnazione qualunque, finché c'è una clausola violata se ne sceglie una, un suo letterale a caso, si cambia il valore della variabile; al più 2n22n^2 passi, poi si risponde "non soddisfacibile". Esempio n=3n=3, (x1∨x2)(¬x1∨x3)(¬x2∨¬x3)(x_1\vee x_2)(\neg x_1\vee x_3)(\neg x_2\vee\neg x_3): da (0,0,0)(0,0,0) con scelte x1,x3x_1,x_3 si arriva a (1,0,1)(1,0,1) in 22 passi.
  • Analisi: XtX_t = variabili diverse da una soluzione SS; una clausola violata ha almeno una variabile sbagliata, quindi P(Xt+1=Xt−1)≥12P(X_{t+1}=X_t-1)\ge\tfrac12. Per confronto con la passeggiata simmetrica riflessa in nn: hj=1+12(hj−1+hj+1)h_j=1+\tfrac12(h_{j-1}+h_{j+1}), h0=0h_0=0, hn=1+hn−1h_n=1+h_{n-1} dà hj=2jn−j2≤n2h_j=2jn-j^2\le n^2. Markov (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 →): P(T>2n2)≤12P(T>2n^2)\le\tfrac12; kk blocchi indipendenti: 2−k2^{-k}. Esempio a quattro variabili: tempi esatti massimi 5;10;13;145;10;13;14 per distanza 1..41..4, sotto 7;12;15;167;12;15;16.
  • 3-SAT: si avvicina con probabilità ≥13\ge\tfrac13, deriva contraria, tempo ≈2n\approx2^n; si riparte ogni 3n3n passi da un'assegnazione uniforme (distanza iniziale Bin(n,12)\text{Bin}(n,\tfrac12)); successo per tentativo q(n)=∑j(nj)2−n(3jj)2j33j≈(3/4)nq(n)=\sum_j\binom nj2^{-n}\binom{3j}j\frac{2^j}{3^{3j}}\approx(3/4)^n, tempo (4/3)n poly(n)(4/3)^n\,\text{poly}(n).
  • Passeggiata su un grafo connesso: Puv=1/d(u)P_{uv}=1/d(u), πv=d(v)/2m\pi_v=d(v)/2m (bilancio dettagliato: πuPuv=12m\pi_uP_{uv}=\tfrac1{2m}), tempo di ritorno 2m/d(v)2m/d(v), aperiodica sse non bipartito. Lemma: ∑w∼uHwu=2m−d(u)\sum_{w\sim u}H_{wu}=2m-d(u), quindi Hvu<2mH_{vu}<2m per ogni arco. Copertura: visita dell'albero di copertura (2(n−1)2(n-1) passaggi tra adiacenti), C(G)<4m(n−1)C(G)<4m(n-1); con il tempo di pendolarismo Huv+Hvu=2mRuvH_{uv}+H_{vu}=2mR_{uv} si ha 2m(n−1)2m(n-1). Cammino: n2n^2; completo: (n−1)Hn−1(n-1)H_{n-1}; lollipop: ≈427n3\approx\tfrac4{27}n^3 (massimo possibile).
  • Triangolo con coda (m=5m=5): π=(0,2;0,2;0,3;0,2;0,1)\pi=(0{,}2;0{,}2;0{,}3;0{,}2;0{,}1), ritorni 5,5,103,5,105,5,\tfrac{10}3,5,10; verso 55: H4=9H_4=9, H3=16H_3=16, H1=H2=18H_1=H_2=18; pendolarismo 11-55 803=10⋅83\tfrac{80}3=10\cdot\tfrac83; copertura da 11: 22912=19,08\tfrac{229}{12}=19{,}08 (limite 8080).
  • UST-CONN: 4n34n^3 passi da ss; se non connessi risposta sempre corretta; se connessi C<2n3C<2n^3 e Markov dà errore <12<\tfrac12; memoria vertice corrente più contatore, O(log⁡n)O(\log n) bit (n=100n=100: 4⋅1064\cdot10^6 passi, 2222 bit).
  • PageRank: navigatore casualeCon probabilità alfa segue un link a caso, altrimenti salta a una pagina uniforme. G=αP+1−αn11TG=\alpha P+\frac{1-\alpha}n\mathbf1\mathbf1^T, PRj=1−αn+α∑i→jPRid+(i)\text{PR}_j=\frac{1-\alpha}n+\alpha\sum_{i\to j}\frac{\text{PR}_i}{d^+(i)}; entrate >0>0: irriducibile e aperiodica, stazionaria unica, iterazione di potenza con errore αk\alpha^k. Tre pagine (1→2,31\to2,3; 2→32\to3; 3→13\to1), α=0,85\alpha=0{,}85: (0,3878;0,2148;0,3974)(0{,}3878;0{,}2148;0{,}3974). Teoria sulle catene: Catene di Markov - matrice di transizione, classificazione degli stati e distribuzione stazionariaUna catena di Markov a tempo discreto e stati finiti è descritta da una matrice stocastica P: P(X_{n+1}=j | X_n=i)=P_ij, la legge al tempo n è π_0 P^n. Gli stati si classificano in classi comunicanti (irriducibilità), periodo (aperiodicità) e ricorrenza/transitorietà. Una distribuzione stazionaria soddisfa πP=π; per catene finite irriducibili esiste ed è unica, vale π_i=1/h_ii (h_ii = tempo medio di primo ritorno), e se la catena è anche aperiodica P^n converge a una matrice con tutte le righe uguali a π. Le catene reversibili (π_i P_ij = π_j P_ji) hanno stazionaria immediata.Catene di Markov - matrice di transizione, classificazione degli stati e distribuzione stazionaria →, grafi: Grafi - definizioni e proprietàGrafo G=(V,E) diretto e non diretto, grafo semplice e pesato; incidenza, adiacenza, grado; cammini, cicli, sottografi, grafi connessi e componenti connesse; alberi liberi, foreste, spanning tree e spanning forest; proprietà con dimostrazioni (somma dei gradi = 2m, m <= n(n-1)/2, alberi m = n-1, connessi m >= n-1, foreste m <= n-1).Grafi - definizioni e proprietà →.
  • Dimostrazione del lemma sui tempi di raggiungimento: il tempo di ritorno in uu è 2md(u)=1+1d(u)∑w∼uHwu\frac{2m}{d(u)}=1+\frac1{d(u)}\sum_{w\sim u}H_{wu}, quindi ∑w∼uHwu=2m−d(u)\sum_{w\sim u}H_{wu}=2m-d(u) e, essendo ogni addendo ≥0\ge0, Hvu≤2m−d(u)<2mH_{vu}\le2m-d(u)<2m (per u=5u=5 nell'esempio: H45=10−1=9H_{45}=10-1=9 ✓). Da qui la copertura: 2(n−1)2(n-1) passaggi per l'albero di copertura, ciascuno <2m<2m.
  • Rovina e martingale: nel gioco equo il capitale è una martingala, E[XT]=i=N PiE[X_T]=i=N\,P_i; per p≠12p\ne\tfrac12 si conserva rXnr^{X_n} con r=q/pr=q/p, ri=PirN+1−Pir^i=P_ir^N+1-P_i. Giocatore da 1010 a 100100 alla roulette: 4,96⋅10−54{,}96\cdot10^{-5} in circa 190190 partite.
  • Domande tipiche: giocatore con 33 euro e traguardo 55: 35\tfrac35 e 66 partite; 2-SAT con 2n22n^2 passi, errore ≤12\le\tfrac12; πv=d(v)/2m\pi_v=d(v)/2m e h33=103h_{33}=\tfrac{10}3; perché s-t connettività sta in spazio O(log⁡n)O(\log n).
  • Errori tipici: dimenticare il fattore r=q/pr=q/p; usare πv=1/n\pi_v=1/n sul grafo; scambiare HuvH_{uv} e HvuH_{vu}; confondere tempo atteso n2n^2 con limite di Markov a 2n22n^2 passi.

Esercizi su questo argomento

Teoria collegata