Markov demostró que cualquier función de n entradas se puede calcular con solo ⌈log(n+1)⌉ negaciones. Fisher describió una versión constructiva eficiente. Vea también una exposición del resultado del blog GLL .
Más precisamente:
Teorema: supongamos que se calcula mediante un circuito C con puertas g , luego también se calcula mediante un circuito C ∗ con 2 g + O ( n 2 log 2 n ) puertas y ⌈ log ( n + 1 ) ⌉ negaciones.f:{0,1}n→{0,1}mCgC∗2g+O(n2log2n)⌈log(n+1)⌉
La idea principal es agregar para cada cable en C un cable paralelo w ' en C ∗ que siempre lleva el complemento de w . El caso base es para los cables de entrada: Fisher describe cómo construir un circuito de inversión I ( x ) = ¯ x con puertas O ( n 2 log 2 n ) y solo ⌈ log ( n + 1 ) ⌉ negaciones. Para las puertas Y del circuito C , podemos aumentar unwCw′C∗wI(x)=x¯¯¯O(n2log2n)⌈log(n+1)⌉C con a ′ = b ′ ∨ c ′ , y lo mismo para las puertas OR. Las puertas NOT en C no cuestan nada, solo intercambiamos los roles de w y w ' aguas abajo de la puerta NOT. De esta manera, todo el circuito además del subcircuito inversor es monótono.a=b∧ca′=b′∨c′Cww′
AA Markov. Sobre la complejidad de inversión de un sistema de funciones. J. ACM , 5 (4): 331–334, 1958.
MJ Fischer. La complejidad de las redes de negación limitada: una breve encuesta. En
teoría de autómatas y lenguajes formales , 71–82, 1975
Cómo calcular la inversión de bits usando n negaciones2n−1 n
Deje que los bits se ordenen en orden decreciente, es decir, i < j implica x i ≥ x j . Esto se puede lograr mediante una red de clasificación monótona como la red de clasificación Ajtai – Komlós – Szemerédi.x0,…,x2n−1 i<j xi≥xj
Definimos el circuito de inversión para bits I n ( → x ) inductivamente: Para el caso base tenemos n = 1 e I 1 0 ( → x ) : = ¬ x 0 . Sea m = 2 n - 1 . Reducimos I n (para 2 m + 1 ) bits a una I n - 1 puerta (para m2n−1 In(x⃗ ) n=1 I10(x⃗ ):=¬x0 m=2n−1 In 2m+1 In−1 m bits) y una puerta de negación con y ∨ puertas. Usamos la negación para calcular ¬ x m . Para i < m let y i : = ( x i ∧ ¬ x m ) ∨ x m + i . Usamos I n - 1 para invertir → y . Ahora podemos definir I n de la siguiente manera:∧ ∨ ¬xm i<m yi:=(xi∧¬xm)∨xm+i In−1 y⃗ In
Es fácil verificar que esto invierte considerando los posibles valores de x ny utilizando el hecho de que → x está disminuyendo.x⃗ xn x⃗
De Michael J. Fischer, La complejidad de las redes de negación limitada: una breve encuesta, 1975.
fuente