A aleatoriedade verdadeira (comprovadamente) pode ser substituída pela aleatoriedade de Kolmogorov para RP?

10

Houve alguma tentativa de mostrar que a aleatoriedade de Kolmogorov seria suficiente para RP ? A probabilidade usada na afirmação "Se a resposta correta for SIM, então (a máquina de Turing probabilística) retorna SIM com probabilidade ..." estará sempre bem definida nesse caso? Ou haveria apenas limites superior e inferior para essa probabilidade? Ou sempre haveria alguma máquina de Turing probabilística, para a qual as probabilidades seriam bem definidas (ou pelo menos o limite inferior que deveria ser maior que 1/2)?

A classe RP aqui é relativamente arbitrária e também se poderia fazer essa pergunta por noções mais fracas de aleatoriedade (pseudo-) do que a aleatoriedade de Kolmogorov. Mas a aleatoriedade de Kolmogorov parece ser um bom ponto de partida.


Compreender a palavra "probabilidade" seria parte de uma tentativa de mostrar que a aleatoriedade de Kolmogorov funciona para RP. No entanto, deixe-me tentar descrever uma abordagem possível, esclarecer o que isso poderia significar e por que falei sobre os limites superior e inferior:

Deixe s ser um (Kolmogorov aleatório) string. Seja A uma determinada máquina de Turing probabilística correspondente a um idioma do RP. Execute A com s como fonte para bits aleatórios n vezes, continuando a consumir bits anteriormente não consumidos de s um após o outro.

Para pns:=#YES result in first n runs of A on snp+s:=lim supnpnsps:=lim infnpnsp+spssp+s=pssps1=ps2s1s2p1/2ppss

Thomas Klimpel
fonte
2
Eu não entendo a pergunta. O que você quer dizer com "<conceito de aleatoriedade> é suficiente para <classe de complexidade>"? O RP pode ser des randomizado no tempo polinomial com um oráculo para uma sequência aleatória de Kolmogorov, se é isso que você está perguntando.
Emil Jerabek
2
Não entendo o que você quer dizer com dizer que o RP "funcionaria" e não entendo o seu último comentário (as máquinas RP sempre param depois de muitas etapas polinomialmente, por definição ou sem perda de generalidade, se você estiver usando um inconveniente definição).
Emil Jerabek
2
Na pergunta em si, também não entendo o que você quer dizer com "probabilidade" ao falar sobre seqüências aleatórias de Kolomogorov. Diferentemente das “seqüências aleatórias” usuais, que são extraídas de uma distribuição aleatória, ser aleatório de Kolmogorov é uma propriedade sim-não real que uma determinada sequência possui ou não. Portanto, se uma string faz com que um algoritmo aceite não é uma variável aleatória e, como tal, não faz sentido perguntar sobre sua probabilidade.
Emil Jerabek
11
Uma abordagem razoável para isso é adotar a perspectiva "construtiva de Martingales" de cadeias aleatórias em algoritmo. Em particular, pode-se esperar que, se não conseguir enganar , isso se traduzirá em um "preditor do próximo bit" para , e depois em uma estratégia de apostas que demonstre que não é aleatório. Não sei se essa abordagem, mesmo que funcione, daria taxas de convergência significativas para e ; no entanto, aparentemente, existe uma abordagem mais antiga para o estudo de classes de complexidade (palavras-chave: "medida limitada a recursos") que usa essa ideia; portanto, há alguma esperança. sAssp+p
Andrew Morgan
11
Links relevantes Wikipédia (que têm outras referências) para o meu comentário anterior: Martingales construtivas (ver terceira definição), e medida de recursos limitada
Andrew Morgan

Respostas:

13

Eu acho que a pergunta que está sendo feita aqui é mais ou menos " existe um sentido no qual podemos substituir a sequência de bits aleatórios em um algoritmo por bits desenhados deterministicamente a partir de uma seqüência aleatória de Kolmogorov apropriadamente longa? " Essa é pelo menos a pergunta que tentarei responda! (A resposta curta é "Sim, mas somente se você amplificar a probabilidade de erro primeiro")


Sim...

Certamente podemos dizer algo aqui. Seja uma linguagem e seja um algoritmo que tome como entrada e uma sequência aleatória (a distribuição uniforme sobre ) st . Em outras palavras, é um algoritmo que erra com probabilidade no máximo .LAxrUf(|x|){0,1}f(|x|)Pr[A(x,r)=L(x)]>1ϵ(x)Aϵ()

Observe agora que, se fornece a resposta errada em , ou seja, , isso nos fornece alguns meios de descrever , em particular, podemos descrevê-la como -th string que faz com que erre emPara fazer isso, simplesmente criamos a máquina que possui , , um bit , e simplesmente enumera as opções de de até encontrar a ésima escolha de modo que .A(x,r)A(x,r)L(x)riAx.xAib=1xLr{0,1}f(|x|)irA(x,r)b

Portanto, agora que sabemos que podemos aproveitar uma má escolha de sequência aleatória em uma descrição, vamos observar algumas condições que são suficientes para transformar nossa descrição de em uma compactação. Para descrever , precisamos de bits suficientes para descrever , , o código do nosso procedimento (o código para e a rotina que descrevemos), fornecendo como descrição o comprimentorrxibA

|x|+|i|+O(1)=|x|+log2(2f(|x|)ϵ(x))+O(1)=|x|+f(|x|)log(1/ϵ(x))+O(1).

Lembre-se de que é comprimento ; portanto, essa é uma compactação de se por exemplo, quando .rf(|x|)r

log(1/ϵ(x))=|x|+ω(1),
ϵ(x)=1/22|x|

Por fim, observe que se fosse uma sequência aleatória de Kolmogorov, não teríamos essa compactação, desde que a probabilidade de erro de seja suficientemente pequena, uma sequência aleatória de Kolmogorov no lugar da sequência de bits aleatórios fará com que responda corretamente!rAA

Observe que a única coisa que aproveitamos em é que sua probabilidade de erro é pequena. Não nos importamos se tiver um tempo de execução extremamente longo ou se tiver um ou dois erros.AAA

Trazendo isso de volta à questão de (ou ou ), isso diz que, desde que amplifiquemos a probabilidade de erro de nossos algoritmos, podemos usar cadeias aleatórias de Kolmogorov no lugar de seus bits aleatórios.RPcoRPBPP


... Mas somente se amplificarmos primeiro.

Uma pergunta de acompanhamento pode ser "posso fazer isso sem ampliar a probabilidade de erro?" Considere o seguinte algoritmo que decide e tem probabilidade de erro .A{0,1}1/2n

Na entrada :x

  • Gere uma stringr{0,1}n
  • Se , rejeite.r=x
  • Aceitar.

Observe que, para cada escolha de , existe alguma opção de modo que erra em , ou seja, a escolha de que é , portanto, não podemos substituir a sequência aleatória de bits usada por por uma sequência aleatória de Kolmogorov sem amplificar é probabilidade de erro!rxAxr xA


Uma observação sobre a fonte: não tenho certeza se isso é novidade, mas incluí o primeiro argumento na redação do meu exame de qualificação, que estará disponível on-line depois que eu terminar de revisá-lo.

Dylan McKay
fonte
Meu amigo Preetum apontou a bobagem de codificar a máquina e decidir quando podemos apenas codificar um pouco que diz se ou não . Vou editar a resposta para refletir isso. MM(x)xL
Dylan McKay
11
Mike Sipser usou um tipo semelhante de argumento de compactação em seu artigo interessante sciencedirect.com/science/article/pii/0022000088900359 (observe que os gráficos do expansor de que ele precisa realmente foram explicitamente construídos dl.acm.org/citation.cfm?id=273915 )
Ryan Williams