Alcune domande sul calcolo parallelo e la classe NC


14

Ho una serie di domande correlate su questi due argomenti.

In primo luogo, la maggior parte dei testi di complessità solo sorvolare la classe NC . Esiste una buona risorsa che copre la ricerca in modo più approfondito? Ad esempio, qualcosa che discute tutte le mie domande qui sotto. Inoltre, presumo che NC veda ancora una buona dose di ricerca a causa del suo collegamento con la parallelizzazione, ma potrei sbagliarmi. La sezione nello zoo della complessità non è di grande aiuto.

Secondo, il calcolo su un semigruppo è in NC1 se assumiamo che l'operazione del semigruppo richieda un tempo costante. Ma cosa succede se l'operazione non richiede un tempo costante, come nel caso degli interi senza limiti? Ci sono problemi noti noti di NCi ?

Terzo, da LNC2 , esiste un algoritmo per convertire qualsiasi algoritmo di spazio di log in una versione parallela?

In quarto luogo, sembra che la maggior parte della gente suppone che NCP nello stesso modo in cui PNP . Qual è l'intuizione dietro questo?

In quinto luogo, ogni testo che ho letto menziona la classe RNC ma non fornisce esempi di problemi che contiene. Ci sono?

Infine, questa risposta menziona i problemi in P con tempo di esecuzione parallelo sublineare. Quali sono alcuni esempi di questi problemi? Esistono altre classi di complessità che contengono algoritmi paralleli che non sono noti in NC ?


1
Inoltre, nota questa domanda simile.
Nicholas Mancuso,

Risposte:


9

Terzo, da , esiste un algoritmo per convertire qualsiasi algoritmo di spazio di log in una versione parallela?LNC2

Si può dimostrare (libro di testo di Arora e Barak) dato un TM M -time , che un TM M ignoto (cioè un TM il cui movimento della testa è indipendente dal suo input x ) può costruire un circuito C n per calcolare M ( x ) dove | x | = n .t(n)MMxCnM(x)|x|=n

Lo schizzo prova è lungo le linee di avere simulare M e definente "istantanee" del suo stato (cioè posizioni della testa, simboli in testa) ad ogni passo temporale t i (si pensi a un registro computazionale). Ogni passaggio t i può essere calcolato da xe dallo stato t i - 1 . Poiché ciascuna istantanea coinvolge solo una costante stringa dimensioni, ed esistono solo una quantità costante di stringhe di tali dimensioni, l'istantanea a t i può essere calcolata da un circuito a costante di dimensioni.MMtitixti1ti

Se si compone circuiti costanti dimensioni per ogni abbiamo un circuito che calcola M ( x ) . Usando questo fatto, insieme alla restrizione che il linguaggio di M è in L , vediamo che il nostro circuito C n è per definizione log-spazio uniforme , dove uniformità significa solo che i nostri circuiti nella nostra famiglia di circuiti { C n } computing M ( x ) tutti hanno lo stesso algoritmo. Non un algoritmo su misura per ciascun circuito che opera su dimensioni di ingresso n .tiM(x)MLCn{Cn}M(x)n

Ancora una volta, dalla definizione di uniformità vediamo che i circuiti che decidono qualsiasi linguaggio in devono avere una dimensione di funzione ( n ) calcolabile in O ( log n ) . La famiglia di circuiti A C 1 ha al massimo O ( log n ) di profondità.Lsize(n)O(logn).AC1O(logn)

Infine, si può dimostrare che fornisce la relazione in questione.AC1NC2

In quarto luogo, sembra che la maggior parte della gente suppone che nello stesso modo in cui PN P . Qual è l'intuizione dietro questo?NCPPNP

Prima di andare oltre, definiamo cosa significa completezza P

Una lingua è P - completa se L P e ogni lingua in P è lo spazio di registro riducibile ad essa. Inoltre, se L è P- completo, vale quanto segueLPLPPLP

  1. LNCP=NC

  2. LLP=L

Ora consideriamo come la classe di lingue decisa in modo efficiente da un computer parallelo (il nostro circuito). Ci sono alcuni problemi in P che sembrano resistere a qualsiasi tentativo di parallelizzazione (ad es. Programmazione lineare e Problema del valore del circuito). Vale a dire, alcuni problemi richiedono che il calcolo sia eseguito in modo graduale.NCP

Ad esempio, il problema del valore del circuito è definito come:

Dato un circuito , input x e una gate g C , qual è l'output di g su C ( x ) ?CxgCgC(x)

Non sappiamo come calcolare questo meglio del calcolo di tutte le porte che precedono g . Dato alcuni di essi possono essere calcolato in parallelo, per esempio se si presentino in qualche passo temporale t i , ma non so come calcolare l'uscita di porte al passo temporale t i e timestep t i + 1 per l'evidente difficoltà che cancelli t i + 1 richiedono l'uscita dei gate di t i !ggtititi+1ti+1ti

Questa è l'intuizione dietro .NCP


Limiti alla parallela di calcolo è un libro su -Completeness in simile vena Garey & Johnson N P libro -Completeness.PNP


Grazie per i 2 riferimenti e la risposta parziale. Il libro Limits to Parallel Computation fa un lavoro migliore rispetto agli altri libri che ho visto, ma è ancora relativamente vecchio e non abbastanza accurato come mi piacerebbe.
Mike Izbicki,

3

In quinto luogo, ogni testo che ho letto menziona la classe RNC ma non fornisce esempi di problemi che contiene. Ci sono?

L'articolo "Matching is Easy as Matrix Inversion" di Mulmuley, Vazirani e Vazirani contiene diversi esempi di problemi nella classe . Il principale è trovare una corrispondenza massima, quindi riducono altri problemi a questo.RNC2

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.