A adição pode ser realizada em menos de profundidade 5?

21

Usando o algoritmo carry look ahead, podemos calcular a adição usando uma profundidade de tamanho polinomial 5 (ou 4?) família de circuitos C 0 . É possível reduzir a profundidade? Podemos calcular a adição de dois números binários usando uma família de circuitos de tamanho polinomial com profundidade menor que a obtida pelo algoritmo carry look ahead?AC0

Existem limites inferiores super polinomiais para o tamanho das famílias de circuitos que computam a adição em que d é 2 ou 3?ACd0d

Por profundidade, quero dizer profundidade de alternância.

Anônimo
fonte
Você pode nos dizer seu nome? Quem é você? Nos últimos meses, as pessoas criaram um novo nome de usuário aqui, fazendo uma pergunta e excluindo esse nome de usuário!
Tayfun Pay
14
@Geekster, geralmente as pessoas não precisam criar uma conta ou usar seus nomes reais (no entanto, é recomendável fazê-lo por várias razões). Se você tem uma preocupação geral com alguma coisa, use o Meta da Ciência da Computação Teórica para levantá-la.
Kaveh
4
Isso pode ser forçado com brutalidade, verificando que nenhum circuito de profundidade - AC 0 pode calcular a soma ( m + 1 ) de bits de duas entradas de m de bits para algum m fixo ; existem apenas muitas funções booleanas finitas dos bits de entrada que podem aparecer a cada profundidade. 40(m+1)mm
Mjqxxxx
5
@mjqxxxx: Como você impõe a restrição de tamanho polinomial nos circuitos AC0 quando força bruta para um m fixo? @ OP: A melhor profundidade do circuito atual é 4 ou 5?
Robin Kothari
14
@mjqxxxx: Toda função booleana é computável por circuitos de profundidade . Agora, suponha que você encontrar para o seu fixo m um circuito de tamanho s . Como você julga se existem circuitos de tamanho c n para cada n , onde c = s / m , ou se existem apenas circuitos de tamanho 2 ϵ n , onde ϵ = ( log s ) / m ? Simplesmente não há como inferir informações assintóticas a partir de um exemplo finito. 2mscnnc=s/m2ϵnϵ=(logs)/m
Emil Jeřábek apoia Monica

Respostas:

13

De acordo com o Teorema 3.1 de Alexis Maciel e Denis Therien Threshold Circuits of Small Majority-Depth, existe de fato um circuito de profundidade 3 para calcular a adição de dois números.

A preciso ligado é onde Δ 2 = Σ 2¸ 2 são problemas que têm profundidade-2 A C 0 circuitos com ambos , portas na parte superior e de N C 0 1 circuitos são N C 0 circuitos profundidade um (veja o artigo para uma explicação detalhada da notação).Δ2NC10Δ2=Σ2Π2AC0,NC10NC0

As principais idéias de prova são:

  • Em primeiro lugar, expressar o circuito Carry-verificação à frente como NC0Δ2NC0
  • Em seguida, invoque as propriedades de fechamento de para escrever isso como Δ 2N C 0Δ2Δ2NC0
  • Finalmente, a utilização do fato (também se mostrou no papel) que NC0Δ1NC10
SamiD
fonte
9

Os circuitos de profundidade 2 exigem tamanho exponencial para calcular a adição, pois um circuito de profundidade 2 deve ser DNF ou CNF e é fácil verificar se existem exterencialmente muitos mintermos e maxtermos.

Atenção : a parte abaixo é de buggy . Veja os comentários sob a resposta.

aibii0n

isi

si=aibici

ci

ci=jj<i(gjpj)

gjj

gj=(ajbj)

pjji

pj=kj<k<i(ajbj)

pjcisi

Noam
fonte
4
si(ci¬(aibi))(¬ci(aibi))ci
11
11
ddd(x1x2Qxdϕ(x1,,xd))(x1x2Qxdψ(x1,,xd))dd+1
11
(x1x2Qxdϕ(x1,,xd))(x1x2Q¯xdϕ(x1,,xd))
5
fn(x1,,xn)ACd0dx0fnACd0Cn(x0,,xn)Cnx0=1ACd0¬fnACd0fn