Terceiro, desde , existe um algoritmo para converter qualquer algoritmo de espaço de log em uma versão paralela?L ⊆ N C2
Pode ser mostrado (Arora e Barak livro) dada uma -tempo TM M , que uma alheio TM M ' (isto é, uma TM cujo movimento da cabeça é independente da sua entrada x ) pode-se construir um circuito de C n a calcular H ( x ) , onde | x | = n .t ( n )MM′xCnM( X )| x | =n
O esboço prova é ao longo das linhas de ter simular M e definindo "instantâneos" de seu estado (isto é, posições da cabeça, símbolos em cabeças) a cada passo de tempo t i (pensar de um log computacional). Cada passo t i pode ser calculado a partir de x e o estado t i - 1 . Porque cada instantâneo envolve apenas uma cadeia de tamanho constante-, e existe apenas uma quantidade constante de cordas de que o tamanho, o instantâneo no t i pode ser calculado por um circuito de tamanho constante,.M′MtEutEuxti - 1tEu
Se você compor os circuitos de tamanho constantes-para cada temos um circuito que calcula M ( x ) . Usando esse fato, juntamente com a restrição de que a linguagem de M está em L , vemos que nosso circuito C n é, por definição , uniforme de espaço de log , onde uniformidade significa apenas que nossos circuitos em nossa família de circuitos { C n } computam M ( x ) todos têm o mesmo algoritmo. Não é um algoritmo personalizado para cada circuito que opera no tamanho de entrada n .tEuM( X )MeuCn{ Cn}M( X )n
Novamente, a partir da definição de uniformidade, vemos que os circuitos que decidem qualquer idioma em devem ter um tamanho de função ( n ) computável em O ( log n ) . A família de circuitos A C 1 tem no máximo profundidade O ( log n ) .eutamanho ( n )O ( logn ) .A C1O ( logn )
Finalmente, pode-se demonstrar que fornece a relação em questão.A C1⊆ N C2
Em quarto lugar, parece que a maioria das pessoas assumem que da mesma forma que P ≠ N P . Qual é a intuição por trás disso?N C ≠ PP ≠ N P
Antes de prosseguirmos, vamos definir o que significa completude.P
Um idioma é P - completo se L ∈ P e todo idioma em P tiver espaço de log redutível a ele. Além disso, se L for P -complete, o seguinte é verdadeiroeuPL ∈ PPeuP
L ∈ N C⟺P = N C
L ∈ L⟺P = L
Agora, consideramos a classe de linguagens decidida eficientemente por um computador paralelo (nosso circuito). Existem alguns problemas em P que parecem resistir a qualquer tentativa de paralelização (isto é, programação linear e problema de valor do circuito). Ou seja, certos problemas exigem que a computação seja feita passo a passo.N CP
Por exemplo, o problema do valor do circuito é definido como:
Dado um circuito , entrada x e uma porta g ∈ C , qual é a saída de g em C ( x ) ?Cxg∈ CgC( X )
Não sabemos como calcular isso melhor do que calcular todos os portões que vêm antes de g . Dado alguns deles podem ser computados em paralelo, por exemplo, se tudo ocorrer em algum instante temporal t i , mas não sei como calcular a saída de portões em timestep t i e timestep t i + 1 para a dificuldade óbvia que portões em t i + 1 exigem a saída de gates na t i !g′gtEutEuti + 1ti + 1tEu
Esta é a intuição atrás .N C ≠ P
Limits to Parallel Computation é um livro sobre Completeness na mesma linha do livro N P- Completeness da Garey & Johnson .PN P