Qual è la versione grande di NC?


21

cattura l'idea di un parallelismo efficiente, e una sua interpretazione è che i problemi sono risolvibili nel tempo O ( log c n ) usandoprocessori paralleli O ( n k ) per alcune costanti c , k . La mia domanda è se c'è una classe di complessità analoga dove il tempo è n c e il numero di processori è 2 n k . Come domanda per riempire gli spazi vuoti:NCO(logcn)O(nk)cknc2nk

sta a P come__ sta a E X PNCPEXP

In particolare, sono interessato a un modello in cui abbiamo un numero esponenziale di computer disposti in una rete con un grado limitato dal polinomio (diciamo che la rete è indipendente dall'input / problema o almeno in qualche modo facile da costruire, o qualsiasi altra ipotesi di uniformità ragionevole ). Ad ogni passaggio:

  1. Ogni computer legge il numero polinomiale di messaggi di dimensioni polinomiali che ha ricevuto nel passaggio temporale precedente.
  2. Ogni computer esegue un calcolo polytime che può dipendere da questi messaggi.
  3. Ogni computer trasmette un messaggio (di polilunghezza) a ciascuno dei suoi vicini.

Qual è il nome di una classe di complessità corrispondente a questo tipo di modelli? Qual è un buon posto per leggere su tali classi di complessità? Ci sono problemi completi per una tale classe?



Abbiamo , 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 ) ) . Quindi la classe corrispondente a N C k potrebbe essere qualcosa di simile a 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 quindi la classe corrispondente aNC saràASpaceTime(n O ( 1 ) ,2 ( log n ) O ( 1 ) ). È solo una manipolazione algebrica, non ho verificato se soddisfa i tuoi requisiti, ma penso che soddisferà le tre condizioni ma non avrà esponenzialmente molti computer. Penso che dovresti abbandonare questo requisito altrimenti (altro)ASpaceTime(nO(1),2O(logn)k)NCASpaceTime(nO(1),2(logn)O(1))
Kaveh

la classe risultante conterrà e l'analogia non terrà come N C P . EXPNCP
Kaveh,

Non capisco dove hai preso come la complessità dello spazio. Per quanto ne so N C consente polinomialmente molte porte. Se vogliamo seguire le linee del tuo analogo, dovremmo considerare N C come P T / W K ( l o g c n , n k ) / p o l y e quindi la classe di complessità che sto cercando è qualcosa come P T / W K ( n c , 2lognNCNCPT/WK(logcn,nk)/poly. Tuttavia, speravo che ci fosse una migliore caratterizzazione di questo. PT/WK(nc,2nk)/poly
Artem Kaznatcheev

Questo è standard (anche se non è nello zoo di complessità), controlla ad esempio Ruzzo, "Sulla complessità del circuito uniforme", 1981. Inoltre penso che dovresti lavorare con classi uniformi, ogni funzione ha alternanza dimensionale esponenziale / profondità logica 2 circuiti (e ciò soddisferà le tre condizioni se utilizziamo il fan-in limitato e il profondità n ). E come ho detto, se ci sono molti nodi in modo esponenziale, l'analogia non regge. Anche una proprietà principale di calcolo parallelo è il risparmio di tempo, ad esempio è poli-log tempo nel caso di N C . Penso che il tempo quasi polinomiale corrisponderebbe al tempo polilogo. lognNC
Kaveh,

Risposte:


27

Credo che la classe che si sta cercando è . Supponiamo di avere processori e x p ( n k ) = 2 O ( n k ) che soddisfino i requisiti:PSPACEexp(nk)=2O(nk)

  1. Ogni computer legge il numero polinomiale di messaggi di dimensioni polinomiali che ha ricevuto nel passaggio temporale precedente.
  2. Ogni computer esegue un calcolo polytime che può dipendere da questi messaggi.
  3. Ogni computer trasmette un messaggio (di polilunghezza) a ciascuno dei suoi vicini.

poly(n)exp(nk)

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


Ryan, non capisco come stai mettendo il numero esponenziale di computer in molti livelli polinomiali, mi sembra che la profondità possa essere esponenziale, potresti spiegarlo un po 'di più perché questo è possibile? Inoltre mi sembra che la banale costruzione del circuito CNF di una data funzione arbitraria come un circuito fan-in 2 soddisferebbe i requisiti, mi sto perdendo qualcosa?
Kaveh,

1
@Kaveh: non capisco la tua prima domanda. Circa il secondo, sebbene esista un circuito di profondità 2 di dimensioni esponenziali per qualsiasi funzione, NC (poli) richiede che tu sia in grado di generare i circuiti in modo uniforme, quindi non puoi produrre circuiti arbitrari per ogni dimensione di ingresso.
Robin Kothari,

@Robin, grazie. Probabilmente sto confondendo le cose. (Sento che la profondità dei circuiti corrispondenti a PSpace dovrebbe essere esponenziale, inoltre penso che PSpace sia EXP come L è a P, quindi affermare la stessa cosa quando L è sostituito da NC è strano per me, sento che la classe che siamo la cura dovrebbe essere tra PSpace ed EXP.) Devo pensare un po 'di più per capire cosa sta succedendo qui.
Kaveh,

@Kaveh, ho assegnato il numero di strati (cioè la profondità) per essere esponenziali, quindi la profondità non può essere esponenziale, per definizione. Esistono molti processori esponenziali, quindi il tuo CNF avrà bisogno di un fan-in esponenziale, violando una delle condizioni. La profondità dei circuiti di dimensioni esponenziali corrispondenti a PSPACE è polinomiale. Il motivo è vero, e il motivo per cui entrambe le analogie sono "valide" in un certo senso ("PSPACE è EXP come L è P" e "PSPACE è EXP come NC è P") è perché PSPACE = Polinomio alternato Tempo. Non sappiamo se L = Tempo logaritmico alternato (questo è NC1).
Ryan Williams,

Penso di aver capito meglio la situazione dopo aver letto i tuoi commenti di Robin e, grazie.
Kaveh,

21

Come dice Ryan, questa classe è PSPACE. Questa classe è spesso chiamata NC (poli) in letteratura. Ecco una citazione diretta dal documento QIP = PSPACE :

Consideriamo una variante ingrandita di NC, che è la classe di complessità NC (poli) che consiste in tutte le funzioni calcolabili da famiglie uniformi nello spazio polinomiale di circuiti booleani con profondità polinomiale. (La notazione NC (2 poli ) è stata precedentemente utilizzata anche per questa classe [11].) Per problemi di decisione, è noto che NC (poli) = PSPACE [10].

[10] A. Borodin. Relazionare tempo e spazio con dimensioni e profondità. SIAM Journal on Computing, 6: 733–744, 1977.

[11] A. Borodin, S. Cook e N. Pippenger. Calcolo parallelo per anelli ben dotati e macchine probabilistiche limitate nello spazio. Informazione e controllo, 58: 113–136, 1983.

Un modo per vederlo è provare direttamente entrambe le inclusioni. Per vedere che NC (poli) è in PSPACE, nota che possiamo calcolare ricorsivamente l'uscita del gate finale e richiederemo solo una pila di dimensioni pari alla profondità del circuito, che è polinomiale. Per mostrare che PSPACE è in NC (poli), si noti che QBF, che è completo di PSPACE, può essere scritto come un circuito di profondità polinomiale con esponenzialmente molte porte nel solito modo: il quantificatore esistente è un gate OR, il quantificatore forall è un cancello AND. Poiché esistono solo molti quantificatori polinomiali, si tratta di un circuito di profondità polinomiale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.