Noções mais fortes de uniformização?


16

Uma lacuna que eu sempre sabia que realmente não entendo é entre complexidade computacional não uniforme e uniforme, onde a complexidade do circuito representa a versão não uniforme e as máquinas de Turing são onde as coisas são uniformes. Suponho que "uniforme" é uma maneira de restringir a classe de algoritmos, por exemplo, não permitindo um circuito totalmente diferente para um problema com n variáveis ​​em comparação com um problema de n + 1 variáveis.

Minhas perguntas são: 1) Existe uma descrição da uniformidade apenas em termos de circuitos; e 2) É possível vir com uma forma ainda mais forte de uniformidade e, assim, fornecer uma noção ainda mais restrita de quais algoritmos eficazes (ou restritos) em P são?

Esclarecimento tardio: minha intenção na pergunta 2 é sobre uma classe restrita de algoritmos que "praticamente" tem o mesmo poder que a classe de algoritmos polinomiais.


Você pode elaborar o significado de "praticamente tem o mesmo poder"?
MS Dousti 26/09/10

Quero dizer que todos os algoritmos em P que encontramos praticamente estão nessa classe (hipotética) restrita. Portanto, não quero dizer que as classes conhecidas (ou conjecturadas) omitem o algoritmo de tipo polinomial específico, como AC_0 ou NC ^ i, não são o que me refiro.
Gil Kalai

2
Para a pergunta 2, a classe de funções computáveis ​​pelos circuitos uniformes LOGSPACE de tamanho polinomial é P. (E você ainda obterá P mesmo com algumas classes de complexidade menores que LOGSPACE se definir uniformidade adequadamente.) Portanto, a imposição de condições mais rígidas de uniformidade não geralmente reduzem o poder dos algoritmos de tempo polinomial.
quer

Respostas:


8

Eu acho que a resposta para sua primeira pergunta é negativa: um circuito possui um número fixo de entradas e, portanto, na IMO, só podemos falar sobre "famílias" de circuitos, em vez de apenas um circuito uniforme.

Em relação à sua segunda pergunta, você pode notar que existem "famílias uniformes de circuitos", cuja descrição é gerada por uma máquina de Turing. Ou seja, seja uma família uniforme de circuitos e seja uma máquina de Turing. Então, para cada , , onde indica a descrição de .M n [ C n ] = M ( 1 n ) [ C n ] C n{Cn}Mn[Cn]=M(1 1n)[Cn]Cn

Existem várias classes de complexidade abaixo de P, definidas por famílias uniformes de circuitos. Por exemplo:

O( log i n)NCEu é a classe de problemas de decisão decididos por circuitos booleanos uniformes com um número polinomial de portas e profundidade .O(registroEun)


7

Somando-se à resposta de Sadeq acima, ao examinarmos as classes de circuito contidas em P, também podemos considerar noções cada vez mais restritivas de uniformidade.

A noção mais simples e mais conhecida é a uniformidade P, que é o requisito de que exista uma Máquina de Turing M (determinística) que produza o circuito no tempo poli (n) (Suresh também fala disso). As versões mais restritivas da uniformidade tentam limitar ainda mais o poder de M. Por exemplo, também há uniformidade de espaço de log, em que M agora é necessário para executar no espaço O (log (n)).Cn

A noção mais restritiva que eu conheço é a uniformidade DLOGTIME, usada para pequenas classes de circuitos. Aqui, a máquina (agora de acesso aleatório) M só tem tempo O (log n) e, portanto, não pode escrever a descrição de todo o circuito. A condição imposta é que, dados ie en, M pode escrever o i-ésimo bit da descrição do circuito no tempo O (log n).

Para mais, consulte o seguinte artigo: David A. Mix Barrington, Neil Immerman, Howard Straubing: Sobre a uniformidade dentro da NC¹. J. Comput. Syst. Sci. 41 (3): 274-306 (1990).



Se M escrever o i-ésimo bit da descrição do circuito em O (log n), isso não significa que se o circuito for do tamanho O (n), será equivalente a permitir que a máquina gere o circuito inteiro em O (n log n)?
M. Alaggan

11
O(n)O(nregistron)EunEuCnO(registron)
quer

EunEuO(1 1)O(nregistron)

A questão não é que famílias de circuitos uniformes X forneçam os mesmos conjuntos de famílias para X diferentes, mas que as funções que podem ser computadas por famílias uniformes de circuitos X sejam iguais para X diferentes.
Peter Shor


5

Existe uma descrição de uniformidade apenas em termos de circuitos?

1 1f(|x|)f

FODeuogTEumeUMAC0 0FO

Parece-me que o ponto principal aqui é que precisamos de algum modelo de computação uniforme para definir uniformidade para circuitos; se a descrição dos circuitos for dada por meios que não são uniformes, os circuitos podem ser não uniformes.


11
O(1 1)

UMAeutTEume(O(1 1),O(lgn))

4

1) Existe uma descrição da uniformidade apenas em termos de circuitos?

[Esta é uma versão editada da minha resposta à mesma pergunta que você fez no blog de Dick Lipton. Advertência: Eu não sou especialista.]

Sim (eu acho), de pelo menos dois tipos diferentes:

a) Os circuitos são geráveis ​​por uma máquina de Turing em tempo polinomial no tamanho da entrada do problema (como mencionado em algumas outras respostas). (Eu acho que essa é a definição padrão do conceito.)

Isso abrange qualquer família de circuitos que poderíamos chamar de uniforme, mas, como uma definição do conceito de tempo-P, apenas reduz a definição de famílias de circuitos à definição de máquinas de Turing, que pode não ser o que você deseja.

b) Se houver um autômato celular unidimensional que evolua a entrada do problema para a solução do problema (para um problema de decisão, a solução seria um bit único em uma célula especificada em relação às células que contêm a entrada, que é um estado estável da CA), em tempo polinomial em tamanho de entrada, então isso corresponde a um circuito que é periódico em 2D de uma maneira simples (uma unidade de repetição por célula por unidade de tempo) e cujo estado só importa em uma região quadraticamente grande para o tempo da solução.

Esse é um tipo muito especial de família de circuitos uniformes, mas suficiente para resolver todos os problemas em P, pois uma máquina de Turing pode ser facilmente codificada como uma CA 1D. (Isso também parece satisfazer a definição de uniformidade DLOGTIME mencionada em uma resposta anterior.)

(Isso é semelhante às codificações das máquinas de Turing como circuitos mencionados nas respostas de Gowers no blog de Lipton - na verdade, uma delas é provavelmente idêntica.)

Uma maneira de codificar uma máquina de Turing como uma CA 1D: em cada célula, representamos o estado da fita em um ponto, o estado que o cabeçote da máquina de turing teria se estivesse aqui agora (cujo valor não importa se não estiver aqui) , e um pouco dizendo se a cabeça está aqui agora. Claramente, cada um desses estados no momento t depende apenas de seus estados vizinhos imediatos no tempo t-1, o que é tudo o que precisamos para que isso funcione como uma autoridade de certificação.

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.