Quelle est la grande version de NC?

21

capture l'idée d'une parallélisation efficace, et une interprétation de celui-ci est les problèmes qui peuvent être résolus dans le temps O ( log c n ) en utilisantdes processeurs parallèles O ( n k ) pour certaines constantes c , k . Ma question est de savoir s'il existe une classe de complexité analogue où le temps est n c et le nombre de processeurs est 2 n k . En tant que question à remplir:NCO(logcn)O(nk)cknc2nk

est à P comme__ est à E X PNCPEXP

En particulier, je m'intéresse à un modèle où nous avons un nombre exponentiel d'ordinateurs disposés dans un réseau avec un degré borné polynomialement (disons que le réseau est indépendant de l'entrée / du problème ou au moins facile à construire, ou toute autre hypothèse d'uniformité raisonnable) ). A chaque pas de temps:

  1. Chaque ordinateur lit le nombre polynomial de messages de taille polynomiale qu'il a reçus au pas de temps précédent.
  2. Chaque ordinateur exécute un calcul de polytime qui peut dépendre de ces messages.
  3. Chaque ordinateur transmet un message (de longueur de polyligne) à chacun de ses voisins.

Quel est le nom d'une classe de complexité correspondant à ce type de modèles? Quel est un bon endroit pour lire sur ces classes de complexité? Y a-t-il des problèmes complets pour une telle classe?

Artem Kaznatcheev
la source
question connexe, je pense: cstheory.stackexchange.com/q/2788/1037
Artem Kaznatcheev
On a , 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 ) ) . Ainsi, la classe correspondante à N C k pourrait être quelque chose comme A S p a c e T i m e ( n O ( 1 ) , 2 O ( log nP=Time(nO(1))EXP=Time(2nO(1))NCk, puis la classe correspondante àNC seraASpaceTime(n O ( 1 ) ,2 ( log n ) O ( 1 ) ). Ce n'est qu'une manipulation algébrique, je n'ai pas vérifié si elle répond à vos exigences, mais je pense qu'elle remplira les trois conditions mais n'aura pas de façon exponentielle beaucoup d'ordinateurs. Je pense que vous devriez laisser tomber cette exigence sinon (plus)ASpaceTime(nO(1),2O(logn)k)NCASpaceTime(nO(1),2(logn)O(1))
Kaveh
la classe résultant contiendra et l'analogie ne tiendra pas comme N C P . EXPNCP
Kaveh
Je ne comprends pas où vous avez obtenu la complexité de l' espace. Autant que je sache, N C autorise de nombreuses portes polynomiales. Si nous voulons suivre les lignes de votre analogue, nous devons considérer N C comme P T / W K ( l o g c n , n k ) / p o l y , puis la classe de complexité que je recherche est quelque chose comme P T / W K ( n c , 2lognNCNCPT/WK(logcn,nk)/poly. Cependant, j'espérais qu'il y aurait une meilleure caractérisation que cela. PT/WK(nc,2nk)/poly
Artem Kaznatcheev
C'est standard (bien que ce ne soit pas dans le Complexity Zoo), vérifiez par exemple Ruzzo, "On uniform circuit complex", 1981. Je pense aussi que vous devriez travailler avec des classes uniformes, chaque fonction a une alternance de taille exponentielle / profondeur logique 2 circuits (et cela remplira les trois conditions si nous utilisons le fan-in borné et le profondeur n ). Et comme je l'ai dit, s'il y a de façon exponentielle de nombreux nœuds, l'analogie ne tient pas. Aussi une propriété principale de calcul parallèle est gain de temps, par exemple , il est temps de poly-log dans le cas de N C . Je pense que le temps quasi-polynomial correspondrait au temps poly-log. lognNC
Kaveh

Réponses:

27

Je crois que la classe que vous recherchez est . Supposons que vous ayez e x p ( n k ) = 2 O ( n k ) processeurs répondant aux exigences:PSPACEexp(nk)=2O(nk)

  1. Chaque ordinateur lit le nombre polynomial de messages de taille polynomiale qu'il a reçus au pas de temps précédent.
  2. Chaque ordinateur exécute un calcul de polytime qui peut dépendre de ces messages.
  3. Chaque ordinateur transmet un message (de longueur de polyligne) à chacun de ses voisins.

poly(n)exp(nk)

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

Ryan Williams
la source
Ryan, je ne sais pas comment vous mettez le nombre exponentiel d'ordinateurs en plusieurs couches polynomiales, il me semble que la profondeur peut être exponentielle, pourriez-vous expliquer un peu plus pourquoi cela est possible? De plus, il me semble que la construction triviale d'un circuit CNF d'une fonction donnée arbitraire en tant que circuit fan-in 2 satisferait les exigences, est-ce que je manque quelque chose?
Kaveh
1
@Kaveh: Je ne comprends pas votre première question. À propos de la seconde, bien qu'il existe un circuit de profondeur 2 de taille exponentielle pour toute fonction, NC (poly) nécessite que vous puissiez générer les circuits de manière uniforme, de sorte que vous ne pouvez pas produire de circuits arbitraires pour chaque taille d'entrée.
Robin Kothari
@Robin, merci. Je confond probablement les choses. (Je pense que la profondeur des circuits correspondant à PSpace devrait être exponentielle, je pense aussi que PSpace est EXP comme L est à P donc dire la même chose quand L est remplacé par NC est étrange pour moi, je pense que la classe que nous sommes les soins devraient se situer entre PSpace et EXP.) Je dois réfléchir un peu plus pour comprendre ce qui se passe ici.
Kaveh
@Kaveh, j'ai attribué le nombre de couches (c'est-à-dire la profondeur) à exponentielle, donc la profondeur ne peut pas être exponentielle, par définition. Il existe de nombreux processeurs de manière exponentielle, votre CNF aura donc besoin d'un fan-in exponentiel, violant l'une des conditions. La profondeur des circuits de taille exponentielle correspondant à PSPACE est polynomiale. La raison pour laquelle cela est vrai et la raison pour laquelle les deux analogies sont "valides" dans un sens ("PSPACE est à EXP comme L est à P" et "PSPACE est à EXP comme NC est à P") est parce que PSPACE = Polynôme alternatif Temps. Nous ne savons pas si L = Temps Logarithmique Alterné (c'est NC1).
Ryan Williams
Je pense que je comprends mieux la situation après avoir lu vos commentaires et ceux de Robin, merci.
Kaveh
21

Comme Ryan le dit, cette classe est PSPACE. Cette classe est souvent appelée NC (poly) dans la littérature. Voici une citation directe du papier QIP = PSPACE :

Nous considérons une variante à plus grande échelle de NC, qui est la classe de complexité NC (poly) qui comprend toutes les fonctions calculables par des familles uniformes d'espace polynomial de circuits booléens ayant une profondeur de polynôme. (La notation NC (2 poly ) a également été utilisée précédemment pour cette classe [11].) Pour les problèmes de décision, il est connu que NC (poly) = PSPACE [10].

[10] A. Borodin. Relier le temps et l'espace à la taille et à la profondeur. SIAM Journal on Computing, 6: 733– 744, 1977.

[11] A. Borodin, S. Cook et N. Pippenger. Calcul parallèle pour les anneaux bien dotés et les machines probabilistes limitées dans l'espace. Information and Control, 58: 113–136, 1983.

Une façon de voir cela est de prouver directement les deux inclusions. Pour voir que NC (poly) est dans PSPACE, notez que nous pouvons calculer la sortie de la porte finale de manière récursive, et nous n'aurons besoin que d'une pile de taille égale à la profondeur du circuit, qui est polynomiale. Pour montrer que PSPACE est en NC (poly), notez que QBF, qui est PSPACE-complet, peut être écrit comme un circuit de profondeur polynomial avec de nombreuses portes exponentielles de la manière habituelle - le quantificateur existant est une porte OU, le quantificateur forall est une porte ET. Puisqu'il n'y a que de nombreux quantificateurs polynomiaux, il s'agit d'un circuit de profondeur polynomial.

Robin Kothari
la source