Supponiamo che un algoritmo randomizzato usi bit casuali. La probabilità di errore più bassa che ci si può aspettare (non all'altezza di un algoritmo deterministico con errore 0) è . Quali algoritmi randomizzati raggiungono una probabilità di errore minima?2 - Ω ( r )
Un paio di esempi che vengono in mente sono:
- Algoritmi di campionamento, ad esempio, in cui si desidera stimare la dimensione di un set per il quale è possibile verificare l'appartenenza. Se si campionano uniformemente a caso gli elementi da verificare, il limite di Chernoff garantisce una probabilità di errore esponenzialmente piccola.
- L'algoritmo Karger-Klein-Tarjan per il calcolo dell'albero di spanning minimo. L'algoritmo seleziona ogni fronte con probabilità 1/2 e trova ricorsivamente l'MST nel campione. Si può usare Chernoff per sostenere che è esponenzialmente improbabile che ci siano 2n + 0.1m dei bordi che sono migliori dell'albero (cioè, si preferirebbe prenderli su uno dei bordi dell'albero).
Riesci a pensare ad altri esempi?
Seguendo la risposta di Andras di seguito: In effetti, ogni algoritmo di tempo polinomiale può essere convertito in un algoritmo di tempo polinomiale più lento con probabilità di errore esponenzialmente piccola. Il mio focus è sugli algoritmi che sono il più efficienti possibile. In particolare, per i due esempi che ho dato ci sono algoritmi di tempo polinomiale deterministici che risolvono i problemi. L'interesse per gli algoritmi randomizzati è dovuto alla loro efficienza.