Usando el algoritmo carry look ahead podemos calcular la suma usando una familia de circuitos tamaño de polinomio de profundidad 5 (o 4?) . ¿Es posible reducir la profundidad? ¿Podemos calcular la suma de dos números binarios usando una familia de circuitos de tamaño polinómico con una profundidad menor que la obtenida por el algoritmo de anticipación de acarreo?
¿Hay algún límite inferior súper polinómico para el tamaño de las familias de circuitos que calculan la suma donde d es 2 o 3?
Por profundidad quiero decir profundidad de alternancia.
Respuestas:
Según el Teorema 3.1 en Alexis Maciel y Denis Therien Threshold Circuits of Small Majority-Depth, existe un circuito de profundidad 3 para calcular la suma de dos números.
La precisa cota es donde Δ 2 = sigma 2 ∩ ¸ 2 son problemas que tienen profundidad-2 A C 0 circuitos con tanto ∨ , ∧ puertas en la parte superior y N C 0 1 circuitos son N C 0 circuitos de profundidad uno (ver el documento para una explicación detallada de la notación).Δ2⋅NC01 Δ2=Σ2∩Π2 AC0 ∨,∧ NC01 NC0
Las principales ideas de prueba son:
fuente
Los circuitos de profundidad 2 requieren un tamaño exponencial para calcular la suma, ya que un circuito de profundidad 2 debe ser DNF o CNF y es fácil verificar que exponencialmente hay muchos minterms y maxterms.
Advertencia : la parte de abajo tiene errores . Ver los comentarios debajo de la respuesta.
De la forma en que lo cuento, la suma se puede hacer en profundidad 3. Suponga que y b i son los bits i de los dos números, donde 0 es el índice del LSB yn del MSB.ai bi i 0 n
Calculemos el ésimo bit de la suma, S i de la manera estándar con lleva la mirada hacia el futuro:i si
donde es XOR y c i es el carry calculado como:⊕ ci
y significa que la ubicación j "generó" el carry:gj j
y significa que el carry se propaga de j a i :pj j i
fuente