Suponha que um algoritmo aleatório use bits aleatórios. A menor probabilidade de erro que se pode esperar (ficando aquém de um algoritmo determinístico com erro 0) é 2 - Ω ( r ) . Quais algoritmos aleatórios atingem uma probabilidade mínima de erro?
Alguns exemplos que vêm à mente são:
- Algoritmos de amostragem, por exemplo, onde se deseja estimar o tamanho de um conjunto para o qual se pode verificar a associação. Se uma amostra uniformemente aleatória dos elementos a serem verificados, o limite de Chernoff garante uma probabilidade de erro exponencialmente pequena.
- O algoritmo de Karger-Klein-Tarjan para calcular a árvore de abrangência mínima. O algoritmo escolhe cada extremidade com probabilidade 1/2 e encontra recursivamente o MST na amostra. Pode-se usar Chernoff para argumentar que é exponencialmente improvável que existam 2n + 0,1m de arestas melhores do que a árvore (ou seja, preferimos levá-las sobre uma das arestas).
Você pode pensar em outros exemplos?
Seguindo a resposta de Andras abaixo: De fato, todo algoritmo de tempo polinomial pode ser convertido em um algoritmo de tempo polinomial mais lento , com probabilidade de erro exponencialmente pequena. Meu foco é em algoritmos que sejam tão eficientes quanto possível. Em particular, para os dois exemplos que dei, há algoritmos determinísticos de tempo polinomial que resolvem os problemas. O interesse nos algoritmos randomizados é devido à sua eficiência.