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.
fonte
Respostas:
Impagliazzo e Zuckerman provaram (FOCS'89, veja aqui ) que, se um algoritmo BPP usar bits aleatórios para atingir uma probabilidade de correção de pelo menos 2/3, aplicando percursos aleatórios em gráficos de expansão, isso poderá ser aprimorado para uma probabilidade de correção de 1 - 2 - k , usando O ( r + k ) bits aleatórios. ( Nota: embora os autores usem a constante específica 2/3 no resumo, ela pode ser substituída por qualquer outra constante maior que 1/2.)r 1−2−k O(r+k)
Se tomarmos , isto significa que qualquer algoritmo BPP que alcança uma probabilidade de erro constante < 1 / 2 , usando r bits aleatórios, pode ser (não-trivialmente) melhorou a ter probabilidade de erro 2 - Ω ( r ) . Assim, (a menos que eu tenha entendido mal alguma coisa), a probabilidade de erro de ≤ 2 - Ω ( r ) é alcançável para todos os problemas no BPP.k=r <1/2 r 2−Ω(r) ≤2−Ω(r)
fonte
Não sei se é isso que você está procurando, mas está relacionado:
Suponha que eu queira encontrar um aleatóriok número primo de 4 bits. O algoritmo usual é escolher um aleatório (ímpar)k de bits inteiros e execute o teste de primalidade de Miller-Rabin para t rondas nele e repita até que um provável primo seja encontrado. Qual é a probabilidade de esse procedimento retornar um número composto? Chame essa probabilidadepk , t .
A análise padrão do teste de primalidade de Miller-Rabin mostra quet rodadas fornece uma probabilidade de falha de no máximo 4- t . Isso, junto com o teorema do número primo, implica
No entanto, estamos executando o teste de Miller-Rabin em entradas aleatórias, para que possamos usar uma garantia de erro de caso médio. Temos uma ligação muito melhor. Em particular, parat = 1 ,
See Erdös and Pomerance (1986), Kim and Pomerance (1989), and Dåmgard, Landrock, and Pomerance (1993) for more details.
This is not a decision problem and the amount of randomness used isO(k2) bits (although I suspect this can be easily reduced to O(k) ). However, it's an interesting example where we get exponentially-small failure probability naturally.
fonte