La prova di Adleman che è contenuto in P / p o l y mostra che se esiste un algoritmo randomizzato per un problema che corre nel tempo t ( n ) su input di dimensione n , allora esiste anche un algoritmo deterministico per il problema che scorre nel tempo Θ ( t ( n ) ⋅ n ) su input di dimensione n [l'algoritmo esegue l'algoritmo randomizzato su Θ ( n )stringhe di casualità indipendenti. Deve esserci casualità per l'algoritmo ripetuto che è buono per tutti i possibili input]. L'algoritmo deterministico non è uniforme: può comportarsi in modo diverso per dimensioni di input diverse. Quindi l'argomento di Adleman mostra che - se non ci si preoccupa dell'uniformità - la randomizzazione può solo accelerare gli algoritmi di un fattore che è lineare nella dimensione dell'input.
Quali sono alcuni esempi concreti in cui la randomizzazione accelera il calcolo (per quanto ne sappiamo)?
Un esempio è il test di identità polinomiale. Qui l'ingresso è un circuito aritmetico di dimensioni n che calcola un polinomio m-variabile su un campo e il compito è scoprire se il polinomio è identicamente zero. Un algoritmo randomizzato può valutare il polinomio su un punto casuale, mentre il miglior algoritmo deterministico che conosciamo (e forse il migliore esistente) valuta il polinomio su molti punti.
Un altro esempio è lo spanning tree minimo, in cui il miglior algoritmo randomizzato di Karger-Klein-Tarjan è il tempo lineare (e la probabilità di errore è esponenzialmente piccola!), Mentre il miglior algoritmo deterministico di Chazelle viene eseguito nel tempo ( α è la funzione inversa di Ackermann, quindi l'accelerazione della randomizzazione è davvero ridotta). È interessante notare che Pettie e Ramachandran hanno dimostrato che se esiste un algoritmo di tempo lineare deterministico non uniforme per lo spanning tree minimo, esiste anche un algoritmo di tempo lineare deterministico uniforme.
Quali sono alcuni altri esempi? Quali esempi conosci dove la velocità di randomizzazione è grande, ma forse è solo perché non abbiamo ancora trovato algoritmi deterministici sufficientemente efficienti?