Qual é a grande versão do NC?

21

captura a idéia de eficientemente paralelizável, e uma interpretação disso são problemas que são solucionáveis ​​no tempo O ( log c n ) usandoprocessadores paralelos O ( n k ) para algumas constantes c , k . Minha pergunta é se existe uma classe de complexidade análoga em que o tempo é n c e o número de processadores é 2 n k . Como uma pergunta de preenchimento em branco:NCO(logcn)O(nk)cknc2nk

é P como__ é E X PNCPEXP

Em particular, estou interessado em um modelo em que tenhamos um número exponencial de computadores organizados em uma rede com grau polinomialmente limitado (digamos que a rede seja independente da entrada / problema ou pelo menos de alguma maneira fácil de construir, ou qualquer outra suposição razoável de uniformidade ) Em cada etapa do tempo:

  1. Todo computador lê o número polinomial de mensagens de tamanho polinomial que recebeu na etapa anterior.
  2. Todo computador executa algum cálculo polytime que pode depender dessas mensagens.
  3. Todo computador passa uma mensagem (de comprimento polilateral) para cada um de seus vizinhos.

Qual é o nome de uma classe de complexidade correspondente a esse tipo de modelo? Qual é um bom lugar para ler sobre essas classes de complexidade? Existem problemas completos para essa classe?

Artem Kaznatcheev
fonte
questão relacionada, penso: cstheory.stackexchange.com/q/2788/1037
Artem Kaznatcheev
Temos , N C = A S p a c e T i m e ( O ( log n ) , ( log n ) O ( 1 ) ) , NCk=ASpaceTime(O(logn),(logn)k)NC=ASpaceTime(O(logn),(logn)O(1)) , E X P = T i m e ( 2 n O ( 1 ) ) . Portanto, a classe correspondente a N C k pode ser algo como A S p a c e T i m e ( n O ( 1 ) , 2 O ( log nP=Time(nO(1))EXP=Time(2nO(1))NCke, em seguida, a classe correspondente aNC seráASpaceTime(n O ( 1 ) ,2 ( log n ) O ( 1 ) ). É apenas uma manipulação algébrica, não verifiquei se ela atende aos seus requisitos, mas acho que satisfará as três condições, mas não terá muitos computadores exponencialmente. Eu acho que você deveria abandonar esse requisito de outra forma (mais)ASpaceTime(nO(1),2O(logn)k)NCASpaceTime(nO(1),2(logn)O(1))
Kaveh
a classe resultante conterá e a analogia não irá realizar como N C P . EXPNCP
Kaveh 27/05
Eu não entendo onde você tem como a complexidade do espaço. Tanto quanto sei, N C permite polinomialmente muitos portões. Se queremos ir ao longo das linhas do seu analógico então devemos olhar para N C como P T / W K ( l o g c n , n k ) / p o l y e, em seguida, a classe de complexidade que estou procurando é algo como P T / W K ( n c , 2lognNCNCPT/WK(logcn,nk)/poly. No entanto, eu esperava que houvesse uma melhor caracterização disso. PT/WK(nc,2nk)/poly
Artem Kaznatcheev
Isso é padrão (embora não esteja no Zoológico da Complexidade), verifique, por exemplo, Ruzzo, "Na complexidade do circuito uniforme", 1981. Também acho que você deve trabalhar com classes uniformes, todas as funções têm circuitos de alternância de tamanho exponencial / profundidade lógica 2 (e isso satisfará as três condições se usarmos o fan-in limitado e o profundidade n ). E como eu disse, se houver muitos nós exponencialmente, a analogia não se aplica. Também uma propriedade principal de computação paralela é economia de tempo, por exemplo, que é poli-log de tempo no caso de N C . Eu acho que o tempo quase polinomial corresponderia ao tempo poliolog. lognNC
Kaveh 27/05

Respostas:

27

Eu acredito que a classe que você está procurando é . Suponha que você tenha e x p ( n k ) = 2 O ( n k ) processadores que atendem aos requisitos:PSPACEexp(nk)=2O(nk)

  1. Todo computador lê o número polinomial de mensagens de tamanho polinomial que recebeu na etapa anterior.
  2. Todo computador executa algum cálculo polytime que pode depender dessas mensagens.
  3. Todo computador passa uma mensagem (de comprimento polilateral) para cada um de seus vizinhos.

poly(n)exp(nk)

O(logn)poly(n)exp(nk)PSPACE

Ryan Williams
fonte
Ryan, eu não sei como você está colocando o número exponencial de computadores em polinomialmente muitas camadas, parece-me que a profundidade pode ser exponencial, você poderia explicar um pouco mais por que isso é possível? Também me parece que a construção trivial do circuito CNF de uma função arbitrária dada como circuito fan-2 satisfaria os requisitos, estou perdendo alguma coisa?
Kaveh 28/05
11
@ Kaveh: Eu não entendo sua primeira pergunta. Sobre o segundo, embora exista um circuito de profundidade 2 de tamanho exponencial para qualquer função, NC (poli) exige que você possa gerar os circuitos de maneira uniforme, para que você não possa produzir circuitos arbitrários para cada tamanho de entrada.
Robin Kothari
@ Robin, obrigado. Provavelmente estou confundindo as coisas. (Eu sinto que a profundidade dos circuitos correspondentes ao PSpace deve ser exponencial, também acho que o PSpace é EXP como L é para P, afirmando a mesma coisa quando L é substituído por NC é estranho para mim, sinto que a classe que somos cuidar deve estar entre o PSpace e a EXP.) Preciso pensar um pouco mais para entender o que está acontecendo aqui.
Kaveh 29/05
@ Kaveh, designei o número de camadas (ou seja, a profundidade) para ser exponencial, de modo que a profundidade não pode ser exponencial, por definição. Existem muitos processadores exponencialmente, portanto, o seu CNF precisará de fan-in exponencial, violando uma das condições. A profundidade dos circuitos de tamanho exponencial correspondentes ao PSPACE é polinomial. A razão disso é verdade, e a razão de ambas as analogias serem "válidas" em um sentido ("PSPACE é EXP como L é para P" e "PSPACE é EXP como NC é para P") é porque PSPACE = Polinômio Alternado Tempo. Não sabemos se L = tempo logarítmico alternado (este é NC1).
Ryan Williams
Acho que entendi melhor a situação depois de ler os comentários de você e de Robin, obrigado.
Kaveh
21

Como Ryan diz, essa classe é PSPACE. Essa classe é freqüentemente chamada de NC (poli) na literatura. Aqui está uma citação direta do artigo QIP = PSPACE :

Consideramos uma variante ampliada de NC, que é a classe de complexidade NC (poli) que consiste em todas as funções computáveis ​​por famílias uniformes de espaço polinomial de circuitos booleanos com profundidade polinomial. (A notação NC (2 poli ) também já foi usada anteriormente para esta classe [11].) Para problemas de decisão, sabe-se que NC (poli) = PSPACE [10].

[10] A. Borodin. Relacionando tempo e espaço com tamanho e profundidade. SIAM Journal on Computing, 6: 733-744, 1977.

[11] A. Borodin, S. Cook e N. Pippenger. Cálculo paralelo para anéis bem dotados e máquinas probabilísticas com espaço limitado. Information and Control, 58: 113–136, 1983.

Uma maneira de ver isso é provar ambas as inclusões diretamente. Para ver que NC (poli) está no PSPACE, observe que podemos calcular a saída do portão final de forma recursiva, e exigiremos apenas uma pilha de tamanho igual à profundidade do circuito, que é polinomial. Para mostrar que o PSPACE está em NC (poli), observe que QBF, que é completo com PSPACE, pode ser escrito como um circuito de profundidade polinomial com muitas portas exponencialmente da maneira usual - o quantificador existente é uma porta OR, o quantificador geral é um portão AND. Como existem apenas quantificadores polinomialmente muitos, este é um circuito de profundidade polinomial.

Robin Kothari
fonte