Problemas em P com algoritmos aleatoriamente comprovadamente mais rápidos


20

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) .PkP T I M E ( f ( n ) ) f ( n )DTIME(nk)PTIME(nk)PTIME(f(n))f(n)

A aleatoriedade nos compra alguma coisa dentro de P ?

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.


Talvez a "técnica de Yao" seja o que você está procurando. Uma breve descrição pode ser encontrada em cs.pitt.edu/~kirk/cs2150/yao/yao.html
Wu Yin

@WuYin, se eu entendi direito, isso vai na direção de algoritmos aleatórios de limite inferior pelo comportamento médio de caso do algoritmo determinístico. se não nos comprar qualquer coisa dentro .. Estou correto? P
aelguindy

1
Para encontrar qualquer elemento na sequência de comprimento com classificação em [ , ], podemos simplesmente retornar qualquer elemento aleatório e ele estará correto com probabilidade, portanto, é O (1)! Enquanto um algoritmo determinístico examinaria pelo menos alguma fração da entrada e, portanto, . nn 3nn4 13n4 Ω(n)12Ω(n)
rizwanhudda

@rizwanhudda Pode haver alguns problemas com isso. Primeiro, estou procurando um problema de decisão. Segundo, no modelo de Turing, o retorno de um elemento aleatório é , pois não há acesso aleatório. Talvez, a máquina sempre produz o primeiro elemento? Ainda assim, o primeiro problema é maior. Ω(n)
aelguindy

2
O último parágrafo não faz sentido porque todo algoritmo de Las Vegas pode ser convertido em um algoritmo de Monte Carlo.
Tsuyoshi Ito

Respostas:


17

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 Ω (nN=2netapas. 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)>10E(F(n))]<1n2


Além disso, considerar o teste para as matrizes , B e C se A B = C . Atualmente, não conhecemos o algoritmo o ( 2 2.3 ) , conhecemos um algoritmo O ( n 2 ) randomizado . A questão é: existem problemas para os quais podemos provar que algoritmos aleatórios são melhores? ABCAB=Co(22.3)O(n2)
aelguindy

@aelguindy Eu entendo o seu ponto. Mas, para o PIT, o algoritmo determinístico mais conhecido é exponencial. E, a desarmonização do TPI é um importante problema em aberto no CS teórico.
rizwanhudda

Adicionei avaliação de árvore de jogo e roteamento de hipercubo à publicação, para a qual os algoritmos aleatórios são comprovadamente melhores que os homólogos determinísticos.
Rizwanhudda

OK, para a avaliação da Árvore de Jogos, se bem entendi, ela é executada no esperado ( n 0,793 ) , certo? Quero dizer, há casos em que ele será executado em Ω ( n ) . Também é o caso do terceiro exemplo? Não estou permitindo o melhor tempo esperado, estou procurando uma melhor complexidade do pior caso, erro permitido na saída. O(n0.793)Ω(n)
aelguindy

1
Portanto, eles não são melhores no pior dos casos. Por mais que eu aprecie os exemplos, receio que não seja exatamente o que estou procurando. Os exemplos foram muito esclarecedores!
aelguindy

5

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 .ABA0TB(n)TA(n)n


5

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 .AAAA

Além disso, se o PRNG criptográfico estiver seguro, heuristicamente devemos esperar que seja um bom algoritmo se A for:AA

  • 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) .AA

  • 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).A1εA1ε

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.AxxxA(x)Ak=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 xAAε1/2256xonde 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 .)xAA

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/2nnxnA1/2n2nnAAestá 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.AAt(n)AΘ(nt(n))AA

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.