Prova de Adleman que está contido em P / p o l y mostra que, se houver um algoritmo aleatório para um problema que é executado no tempo t ( n ) em entradas de tamanho n , em seguida, há também um algoritmo determinística para o problema que é executado no tempo Θ ( t ( n ) ⋅ n ) em entradas de tamanho n [o algoritmo executa o algoritmo aleatório em Θ ( n )seqüências de aleatoriedade independentes. Deve haver aleatoriedade para o algoritmo repetido que seja bom para todos os entradas possíveis]. O algoritmo determinístico não é uniforme - pode se comportar de maneira diferente para diferentes tamanhos de entrada. Portanto, o argumento de Adleman mostra que - se alguém não se importa com a uniformidade - a randomização pode acelerar os algoritmos apenas por um fator linear no tamanho da entrada.
Quais são alguns exemplos concretos em que a randomização acelera a computação (tanto quanto sabemos)?
Um exemplo é o teste de identidade polinomial. Aqui, a entrada é um circuito aritmético de tamanho n que calcula um polinômio m-variado sobre um campo, e a tarefa é descobrir se o polinômio é identicamente zero. Um algoritmo aleatório pode avaliar o polinômio em um ponto aleatório, enquanto o melhor algoritmo determinístico que conhecemos (e possivelmente o melhor que existe) avalia o polinômio em muitos pontos.
Outro exemplo é a árvore de abrangência mínima, onde o melhor algoritmo aleatório de Karger-Klein-Tarjan é o tempo linear (e a probabilidade de erro é exponencialmente pequena!), Enquanto o melhor algoritmo determinístico de Chazelle é executado no tempo ( α é a função inversa de Ackermann, portanto a aceleração da randomização é realmente pequena). Curiosamente, foi provado por Pettie e Ramachandran que, se existe um algoritmo de tempo linear determinístico não uniforme para uma árvore de abrangência mínima, também existe um algoritmo de tempo linear determinístico uniforme.
Quais são alguns outros exemplos? Quais exemplos você sabe onde a aceleração da randomização é grande, mas isso é possivelmente porque ainda não encontramos algoritmos determinísticos suficientemente eficientes?