De fato, é possível mostrar que, para cada f suficientemente pequeno (inferior a 2n/n ), existem funções computáveis por circuitos de tamanho f(n) mas não por circuitos de tamanho f(n)−O(1) , ou até f(n)−1 , dependendo do tipo de porta que você permitir.
Aqui está um argumento simples que mostra que existem funções computáveis no tamanho mas não no tamanho f ( n ) - O ( n ) .f(n)f(n)−O(n)
Nós sabemos isso:
- existe uma função que requer complexidade do circuito pelo menos 2 n / O ( n ) e, em particular, complexidade do circuito mais que f ( n ) .g2n/O(n)f(n)
- a função tal que z ( x ) = 0 para cada entrada x é computável por um circuito de tamanho constante.zz(x)=0x
- se duas funções e g 2 diferem apenas em uma entrada, sua complexidade do circuito difere em no máximo O ( n )g1g2O(n)
Suponha que seja diferente de zero em N entradas. Chamar tais entradas x 1 , ... , x N . Podemos considerar, para cada i , a função g i ( x ), que é a função indicadora do conjunto { x 1 , … , x i } ; assim, g 0 = 0 e g N = g .gNx1,…,xNigi(x){x1,…,xi}g0=0gN=g
É evidente que há alguns tal que g de i + 1 tem complexidade de circuito mais do que f ( n ) e g i tem complexidade do circuito inferior a f ( n ) . Mas, em seguida, g i tem complexidade do circuito inferior a f ( n ) , mas mais do que f ( n ) - O ( n ) .igi+1f(n)gif(n)gif(n)f(n)−O(n)