Terzo, da , esiste un algoritmo per convertire qualsiasi algoritmo di spazio di log in una versione parallela?L⊆NC2
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)MM′xCnM(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.M′Mtitixti−1ti
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.AC1⊆NC2
In quarto luogo, sembra che la maggior parte della gente suppone che nello stesso modo in cui P ≠ N P . Qual è l'intuizione dietro questo?NC≠PP≠NP
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 segueLPL∈PPLP
L∈NC⟺P=NC
L∈L⟺P=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 ) ?Cxg∈CgC(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 !g′gtititi+1ti+1ti
Questa è l'intuizione dietro .NC≠P
Limiti alla parallela di calcolo è un libro su -Completeness in simile vena Garey & Johnson N P libro -Completeness.PNP