Quero saber se a não uniformidade ajuda na prática as funções de computação. É fácil mostrar que existem funções em P / p o l y - P , assuma qualquer função incontestável f e considere a linguagem { 0 f ( n ) : n ∈ ω }, que claramente possui circuitos não uniformes simples, mas não é computável de maneira uniforme, mas esse não é o tipo de função em que estou interessado.
Existe uma função que sabemos que pode ser calculada de maneira não uniforme, mas não sabemos se ela pode ser calculada de maneira uniforme (ou pelo menos provar que ela não pode ser calculada de maneira uniforme não é óbvia)?
Como a não uniformidade de circuitos pode ser usada para funções de computação que não se sabe serem computáveis uniformemente (com quase a mesma quantidade de recursos)?
Observe que eu não quero funções patológicas como a incontestável mencionada acima, quero funções naturais nas quais as pessoas realmente se interessam em computação e é plausível que possa ser ou possa ter sido calculado de maneira uniforme.
Edit: Eu sei que B P P ⊆ P / p o l y . Portanto, uma resposta que não é um resultado de derandomizações é mais interessante para mim.
Editar 2: Como András Salamon e Tsuyoshi Ito ter dito nas suas respostas, S p um r s e ⊂ P / p o l Y , e existem problemas interessantes em S p um r s e que não são conhecidos por serem em P , assim formalmente que estes tenham respondido o que eu pedi, mas isso não ajudar com o que eu estou realmente interessado em uma vez que a razão de que eles estão em P / p o l y é a possibilidade de codificar uma linguagem escassa no circuito. Uma linguagem que não seja escassa seria mais interessante.
Respostas:
Não sei se isso atende aos seus requisitos, mas o post de Bill Gasarch em julho de 2010 pergunta sobre idiomas no SPARSE ∩NP que não se pensa estar em P, dando um exemplo da Teoria de Ramsey. Qualquer um desses idiomas pertence a (P / poli) ∩NP.
Relacionado a isso, para qualquer idioma L ∈NP, o idioma T L = {1 n : L contém alguma sequência de comprimento n } está em TALLY ∩NP ⊆ SPARSE∩NP ⊆ (P / poli) ∩NP. Dependendo da escolha da linguagem L , T L não pode ter uma razão óbvia para pertencer a P.
fonte
O fraseado elegantemente escasso de Tsuyoshi Ito em outra resposta não o diz explicitamente, mas talvez valha a pena ressaltar: qualquer idioma esparso está em P / poli. Além disso, qualquer idioma de registro está em P / poli (como todo idioma de registro é escasso).
Portanto, uma maneira de encontrar idiomas "naturais" em P / poli, mas não em P, é procurar idiomas esparsos "difíceis". Como você ressalta, os "mais difíceis" são os indecidíveis quando codificados de maneira esparsa, por exemplo, em unários. De maneira mais geral, a versão codificada unária de qualquer idioma fora de EXP ficará fora de P. (caso contrário, considere a máquina de Turing de tempo exponencial que gera a codificação unária, composta pela máquina que resolve o idioma codificado unário resultante no tempo isso é polinomial na codificação unária. Isso é exponencial no tamanho da instância original. A máquina geral é executada em tempo exponencial.) Alguma linguagem acessível de 2 EXP completa pode ser adequada ao seu gosto como um problema "natural".
Observe que a linguagem esparsa da teoria de Ramsey, esparsa, de Bill Gasarch parece se enquadrar na categoria de línguas construídas pela esparsificação de uma linguagem difícil. Se alguém codifica a instância como um triplo de números binários, em vez de dois unários e um binário, a coloração não é mais do tamanho polinomial, portanto a linguagem não está obviamente em NP.
fonte
É mais um comentário em resposta à pergunta revisada (revisão 3) do que uma resposta, mas é muito longo para um comentário.
Simplesmente excluir idiomas esparsos não é suficiente para excluir idiomas como { x ∈ {0,1} * : | x | ∈ S } em vez de {1 n : n ∈ S }, em que S é um subconjunto infinito de {0, 1, 2,…}. Gostaria de salientar que pode ser difícil distinguir entre o caso em que um idioma pertence a P / poly porque é "essencialmente esparso" (como {1 n : n ∈ S } e { x : | x | ∈ S}) e o caso em que um idioma pertence a P / poly por outros motivos. A coisa problemática aqui é, obviamente, como definir o termo "essencialmente escasso".
Você pode definir "escassez essencial" da seguinte forma: um idioma é essencialmente escasso se for redutível a um idioma esparso. No entanto, é necessário ter cuidado, pois se você usar a redutibilidade de Turing em tempo polinomial nesta definição, a definição será equivalente à associação a P / poly!
Portanto, uma coisa óbvia a se tentar é usar a redutibilidade de muitos em um polinômio. Não sei se isso é equivalente à participação em P / poly, muito menos se P / poly contém qualquer linguagem natural que não seja essencialmente esparsa nesse sentido.
fonte