Esercizio - Numero di ripetizioni di Karger per un errore prefissato
Testo. Un'esecuzione dell'algoritmo di Karger su un multigrafo con vertici trova un dato taglio minimo con probabilità almeno . Si eseguono esecuzioni indipendenti e si tiene il taglio più piccolo.
- Dimostrare che la probabilità di fallimento è e ricavare per un fallimento .
- Calcolare per e ; calcolare anche la probabilità di fallimento con .
- Con una matrice di adiacenza una esecuzione costa circa operazioni. Stimare il costo totale per e .
- Per il grafo con due triangoli e un ponte () la probabilità vera di successo è . Quante esecuzioni bastano per , col valore vero e col limite?
Teoria: Taglio minimo randomizzato - algoritmo di KargerTaglio minimo globale di un multigrafo con n vertici. Algoritmo di Karger: finché restano più di 2 vertici, scegliere un arco uniformemente tra i rimasti e contrarlo (fondere gli estremi, tenere i paralleli, togliere i cappi); gli archi tra i due supervertici finali sono un taglio. Un taglio minimo C di k archi sopravvive se nessun suo arco viene contratto; con n_i vertici il grado minimo è ≥ k, quindi |E_i| ≥ n_i k/2 e Pr[contrarre un arco di C] ≤ 2/n_i; il prodotto telescopico dà Pr[output = C] ≥ 2/(n(n-1)) = 1/C(n,2). Con t = C(n,2) ln(1/δ) ripetizioni indipendenti il fallimento è ≤ δ. Corollario: un grafo ha al più C(n,2) tagli minimi (stretto per il ciclo). Karger-Stein: contrarre fino a n/√2+1 vertici (sopravvive con prob ≥ 1/2) e ricorrere due volte, T(n) = O(n² log n), successo Ω(1/log n).Taglio minimo randomizzato - algoritmo di Karger → (sezione sulle ripetizioni); 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 →.
Soluzione
Punto 1. Ogni esecuzione fallisce con probabilità . Per l'indipendenza tutte e falliscono con probabilità perché . Il secondo membro è se . Quindi ripetizioni bastano. Con il fallimento è .
Punto 2. Con :
- : , (fallimento vero ).
- : , .
- : , .
Con : fallimento , cioè per , per , per , quasi (il limite per ).
Punto 3. : operazioni (qualche secondo). Il costo cresce come : a sarebbe , che motiva Karger-Stein ().
Punto 4. Valore vero : fallimento per esecuzione . dà , quindi (). Col limite : . Il limite chiede volte più ripetizioni.
Risultati: ; ; costo per ; contro ripetizioni per i due triangoli.
from math import comb, log, ceil
for n in (10, 50, 100):
c = comb(n, 2); t = ceil(c * log(100))
print(n, c, t, (1 - 1 / c)**t, (1 - 1 / c)**c, t * n * n)
print(log(0.01) / log(22 / 35), (22 / 35)**10, ceil(15 * log(100)))Versione ripasso
- Fallimento: se (Taglio minimo randomizzato - algoritmo di KargerTaglio minimo globale di un multigrafo con n vertici. Algoritmo di Karger: finché restano più di 2 vertici, scegliere un arco uniformemente tra i rimasti e contrarlo (fondere gli estremi, tenere i paralleli, togliere i cappi); gli archi tra i due supervertici finali sono un taglio. Un taglio minimo C di k archi sopravvive se nessun suo arco viene contratto; con n_i vertici il grado minimo è ≥ k, quindi |E_i| ≥ n_i k/2 e Pr[contrarre un arco di C] ≤ 2/n_i; il prodotto telescopico dà Pr[output = C] ≥ 2/(n(n-1)) = 1/C(n,2). Con t = C(n,2) ln(1/δ) ripetizioni indipendenti il fallimento è ≤ δ. Corollario: un grafo ha al più C(n,2) tagli minimi (stretto per il ciclo). Karger-Stein: contrarre fino a n/√2+1 vertici (sopravvive con prob ≥ 1/2) e ricorrere due volte, T(n) = O(n² log n), successo Ω(1/log n).Taglio minimo randomizzato - algoritmo di Karger →).
- : : ; : ; : . Con il fallimento è .
- Costo: per ; in generale , da cui Karger-Stein.
- Due triangoli (vera ): ; col limite : .
- Errori tipici: usare (manca il fattore ); dimenticare di arrotondare per eccesso; non rendere indipendenti le esecuzioni.