Suponga que un algoritmo aleatorio usa bits aleatorios. La probabilidad de error más baja que uno puede esperar (no alcanza un algoritmo determinista con 0 error) es . ¿Qué algoritmos aleatorios logran una probabilidad de error mínima?
Un par de ejemplos que vienen a la mente son:
- Algoritmos de muestreo, por ejemplo, donde se quiere estimar el tamaño de un conjunto para el cual se puede verificar la membresía. Si se muestre de manera uniforme al azar los elementos a verificar, el límite de Chernoff garantiza una probabilidad de error exponencialmente pequeña.
- El algoritmo de Karger-Klein-Tarjan para calcular el árbol de expansión mínimo. El algoritmo selecciona cada arista con probabilidad 1/2, y encuentra recursivamente el MST en la muestra. Se puede usar Chernoff para argumentar que es exponencialmente improbable que haya 2n + 0.1m de los bordes que sean mejores que el árbol (es decir, preferiría llevarlos sobre uno de los bordes del árbol).
¿Puedes pensar en otros ejemplos?
Siguiendo la respuesta de Andras a continuación: De hecho, cada algoritmo de tiempo polinómico puede convertirse en un algoritmo de tiempo polinómico más lento con una probabilidad de error exponencialmente pequeña. Mi enfoque está en algoritmos que sean lo más eficientes posible. En particular, para los dos ejemplos que di hay algoritmos de tiempo polinomiales deterministas que resuelven los problemas. El interés en los algoritmos aleatorios se debe a su eficiencia.