Existem problemas no que têm algoritmos aleatórios que ultrapassam limites inferiores em algoritmos determinísticos? Mais concretamente, conhecemos algum para o qual ? Aqui \ mathsf {PTIME} (f (n)) significa o conjunto de idiomas decidíveis por uma TM aleatória com erro de limite constante (um ou dois lados) nas etapas f (n) .P T I M E ( f ( n ) ) f ( n )
A aleatoriedade nos compra alguma coisa dentro de ?
Para deixar claro, estou procurando algo em que a diferença seja assintótica (de preferência polinomial, mas eu aceitaria a polilogarítmica), não apenas uma constante.
Estou procurando algoritmos assintoticamente melhores no pior dos casos. Algoritmos com maior complexidade esperada não são o que estou procurando. Quero dizer algoritmos aleatórios como em RP ou BPP não ZPP.
Respostas:
O teste de identidade polinomial admite um algoritmo de tempo polinomial aleatório (consulte o lema de Schwartz-Zippel ) e, atualmente, não temos um tempo polinomial determinístico ou mesmo um algoritmo de tempo subexponencial para ele.
Avaliação da árvore de jogo Considere uma árvore binária completa com nós de folha, cada um armazenando um valor 0/1. Os nós internos contêm portas OR / AND em níveis alternativos. Pode-se provar, usando o argumento adversário, que todo algoritmo determinístico teria que examinar Ω ( n ) nós de folha no pior caso. No entanto, existe um algoritmo aleatório simples que levao tempo de execução esperado de O ( n 0.793 ) Veja os slides 14 a 27 da palestra.n Ω ( n ) O ( n0,793)
Roteamento inconsciente em um hipercubo Considere um cubo em dimensões contendo N = 2 n vértices. Cada vértice possui um pacote de dados e um destino para o qual deseja entregar o pacote. O destino de todos os pacotes é diferente. Mesmo para isso, ficou provado que qualquer estratégia determinística de roteamento levaria Ω ( √n N= 2n etapas. No entanto, existe uma estratégia aleatória simples que termina emO(n)etapasesperadascom alta probabilidade.Ω ( Nn--√) O ( n )
Observe que, em algoritmos aleatórios, o custo esperado com alta probabilidade (como por exemplo: P r [ F ( n ) > 10 ⋅ E ( F ( n ) ) ] < 1E( F( N ) ) ) é equivalente ao pior caso na prática.Pr [ F( N ) > 10 ⋅ E( F( n ) ) ] < 1n2
fonte
Investigar o pior caso não faz sentido para algoritmos aleatórios. Não apenas o pior tempo de execução geralmente será infinito, mas também não podem superar os algoritmos determinísticos nessa métrica.
Considere qualquer algoritmo aleatório . Obtenha um algoritmo determinístico B fixando a fita aleatória de A a 0 ∞ . Em seguida, T B ( n ) ≤ T A ( n ) para todos os n .UMA B UMA 0 0∞ TB( n ) ≤ TUMA( N ) n
fonte
Existem muitos problemas nos quais conhecemos um algoritmo aleatório eficiente e não conhecemos nenhum algoritmo determinístico que possamos provar ser eficiente. No entanto, isso pode refletir deficiências em nossa capacidade de provar coisas sobre complexidade em vez de qualquer diferença fundamental.
Com base no seu comentário , parece que você quis perguntar se existe algum problema em que exista um algoritmo aleatório eficiente, e podemos provar que não existe um algoritmo determinístico de eficiência comparável. Não conheço nenhum desses problemas.
De fato, existem motivos razoáveis para suspeitar que é improvável que tais problemas existam. Heuristicamente, a existência de um problema desse tipo provavelmente significaria que a criptografia segura é impossível. Parece um resultado bastante implausível.
Qual é a conexão, você pergunta? Bem, considere qualquer algoritmo aleatório que resolva algum problema com eficiência. Ele se baseia em moedas aleatórias: bits aleatórios obtidos de uma fonte aleatória verdadeira. Agora, suponha que pegemos um gerador pseudo-aleatório de qualidade criptográfica e substituímos a fonte aleatória verdadeira pela saída do gerador pseudo-aleatório. Chame o algoritmo resultante A ′ . Note-se que A ' é um algoritmo determinista e seu tempo de execução é aproximadamente o mesmo que um .UMA UMA′ UMA′ UMA
Além disso, se o PRNG criptográfico estiver seguro, heuristicamente devemos esperar que seja um bom algoritmo se A for:UMA′ UMA
Por exemplo, se é um algoritmo de Las Vegas (sempre gera a resposta correta e termina rapidamente com alta probabilidade), então A ' será um algoritmo determinístico muito bom (sempre gera a resposta correta e termina rapidamente para a maioria das entradas) .UMA UMA′
Como outro exemplo, se é um algoritmo de Monte Carlo (tempo de execução determinístico e gera a resposta correta com probabilidade pelo menos 1 - ε ), então A será um algoritmo determinístico muito bom (tempo de execução determinístico e gera a resposta correta em uma fração 1 - ε de todas as entradas).UMA′ 1 - ε UMA 1 - ε
Portanto, se o PRNG criptográfico é seguro e existe um algoritmo aleatório eficiente, você obtém um algoritmo determinístico bastante bom. Agora, existem muitas construções de PRNGs criptográficos que são garantidos como seguros se certas suposições criptográficas se mantiverem. Na prática, essas suposições criptográficas são amplamente aceitas: pelo menos, comércio e transações seguras se baseiam nelas, então aparentemente estamos dispostos a apostar grandes somas de dinheiro que a criptografia segura existe. A única maneira pela qual essa transformação pode falhar é se não existir PRNG criptográfico, o que implica que a criptografia segura é impossível. Embora não tenhamos provas de que esse não seja o caso, parece um resultado improvável.
Detalhes da construção: Veja como funciona. Na entrada x , que deriva de uma semente para a PRNG criptográfico como uma função de x (por exemplo, por hashing x ), e, em seguida, simula Um ( X ) , usando a saída do PRNG criptográfico como as moedas para um . Por exemplo, uma instanciação específica seria definir k = SHA256 ( x ) e , em seguida, usar k como a semente do AES256 no modo contador, ou algum outro PRNG criptográfico. Podemos provar as afirmações acima, sob o modelo aleatório do Oracle.UMA′ x x x A ( x ) UMA k=SHA256(x) k
Se você não estiver satisfeito com a ideia de que pode gerar resultados incorretos em uma pequena fração de entradas, isso pode ser resolvido. Se você repetir A ′ várias vezes e fizer uma votação majoritária, a probabilidade de erro diminuirá exponencialmente rápido no número de iterações. Então, por iteração um número constante de vezes, você pode obter a probabilidade de erro ε estar abaixo 1 / 2 256 , o que significa que as chances de que você se depara com uma entrada xA′ A′ ε 1/2256 x onde o algoritmo gera a resposta errada é muito pequeno (menos do que as chances de ser atingido por um raio várias vezes seguidas). Além disso, com a construção que dei acima, as chances de um adversário encontrar uma entrada onde A ' dá a resposta errada podem ser muito pequenas, pois isso exigiria a quebra da segurança do hash SHA256. (Tecnicamente, isso requer que o modelo de oráculo aleatório justifique, significa que A deve ser escolhido para ser "independente" do SHA256 e não codificar os cálculos relacionados ao SHA256, mas quase todos os algoritmos do mundo real satisfazem esse requisito .)x A′ A
Se você quer uma base teórica forte, você pode iterar Θ ( n ) vezes, e obter a probabilidade de erro para ser abaixo 1 / 2 n , onde n é o comprimento da entrada x . Agora a fracção de n entradas -BIT onde A ' dá uma resposta incorrecta é estritamente inferior a 1 / 2 n . Porém, existem apenas 2 n entradas possíveis de n bits, e em cada uma delas A está correta ou incorreta, portanto, não há entrada em que A ′A Θ(n) 1/2n n x n A′ 1/2n 2n n A A′ está incorreto: está correto em todas as entradas e isso é válido incondicionalmente. Se A corre no tempo t ( n ) , então A ' corre no tempo Θ ( n ⋅ t ( n ) ) , então A ' é um pouco mais lento que A, mas não muito mais lento. Esse é o conteúdo da prova de Adleman de que o BPP está contido em P / poli. Para propósitos práticos, isso provavelmente é um exagero, mas se você gosta de provas limpas que evitem suposições criptográficas ou se você o aborda da perspectiva de um teórico, talvez você goste mais desta versão.A′ A t(n) A′ Θ(n⋅t(n)) A′ A
Para obter mais detalhes sobre as últimas considerações teóricas e problemas adicionais em que conhecemos um algoritmo aleatório eficiente, mas não conhecemos nenhum algoritmo determinístico que possamos provar ser eficiente, consulte /cstheory//q/31195 / 5038
Em resumo: para qualquer problema em que conheçamos um algoritmo aleatório eficiente, também sabemos de um algoritmo determinístico que parece provável ser eficiente na prática - mas, atualmente, não sabemos como provar que é eficiente. Uma possível interpretação é que não somos muito bons em provar coisas sobre algoritmos.
fonte