Ho appena insegnato l' algoritmo mincut randomizzato di Karger-Stein nella mia classe di algoritmi laureati. Questo è un vero gioiello algoritmico , quindi non posso non insegnare, ma mi lascia sempre frustrato, perché non conosco altre applicazioni della tecnica principale. (Quindi è difficile assegnare i compiti che portano il punto a casa.)
L'algoritmo di Karger e Stein è un perfezionamento di un algoritmo precedente di Karger, che contrae iterativamente bordi casuali fino a quando il grafico ha solo due vertici; questo semplice algoritmo viene eseguito nel tempo e restituisce un taglio minimo con probabilità Ω ( 1 / n 2 ) , dove n è il numero di vertici nel grafico di input. Il raffinato "algoritmo di contrazione ricorsiva" contrae in modo iterativo bordi casuali fino a quando il numero di vertici scende da n a n / √ , si chiama ricorsivamentedue voltesul grafico rimanente e restituisce il più piccolo dei due tagli risultanti. Un'implementazione semplice dell'algoritmo raffinato viene eseguito nel tempoO(n2logn)e restituisce un taglio minimo con probabilitàΩ(1/logn). (Esistono implementazioni più efficienti di questi algoritmi e algoritmi randomizzati migliori.)
Quali altri algoritmi randomizzati usano tecniche di amplificazione di ramificazione simili? Sono particolarmente interessato agli esempi che non implicano (ovviamente) tagli ai grafici.