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.


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ϵ=(log⁡s)/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).Δ2⋅NC10Δ2=Σ2∩Π2AC0∨,∧NC10NC0

As principais idéias de prova são:

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

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=ai⊕bi⊕ci

⊕ci

ci=⋁j∣j<i(gj∧pj)

gjj

gj=(aj∧bj)

pjji

pj=⋀k∣j<k<i(aj∨bj)

pjcisi


4
si(ci∧¬(ai⊕bi))∨(¬ci∧(ai⊕bi))⋁⋀ci

11
⋀

11
ddd(∀x1∃x2…Qxdϕ(x1,…,xd))∨(∀x1∃x2…Qxdψ(x1,…,xd))dd+1

11
(∀x1∃x2…Qxdϕ(x1,…,xd))∨(∃x1∀x2…Q¯xdϕ(x1,…,xd))

5
fn(x1,…,xn)ACd0dx0⊕fnACd0Cn(x0,…,xn)Cnx0=1ACd0¬fnACd0fn
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.