Número de compuertas binarias necesarias para calcular AND y OR de n bits de entrada simultáneamente


16

¿Cuál es el número mínimo de compuertas binarias necesarias para calcular AND y OR de bits de entrada simultáneamente? El límite superior trivial es 2 n - 2 . Creo que esto es óptimo, pero ¿cómo probarlo? La técnica de eliminación de compuerta estándar no funciona aquí, ya que al asignar una constante a cualquiera de las variables de entrada se trivializa una de las salidas.n2n2

El problema también se presenta como un ejercicio 5.12 en el libro "Complejidad de las funciones booleanas" de Ingo Wegener en una forma ligeramente diferente: "Sea . Por el método de eliminación solo puede probar un límite inferior de tamaño n + Ω ( 1 ) . Intenta demostrar límites inferiores más grandes ".fn(x)=x1xnx¯1x¯nn+Ω(1)


1
@ Ryan: La pregunta no es sobre AND de OR sino sobre AND y OR. Sin embargo, no sé la respuesta a la pregunta de Sasha.
Tsuyoshi Ito

1
@ TsuyoshiIto Gracias, de alguna manera logré analizarlo incorrectamente. Definitivamente es un problema no trivial: uno podría imaginarse usando otros tipos de puertas para obtener una ventaja sobre . 2n2
Ryan Williams

2
@ Sasha, ¿has intentado aplicar solucionadores SAT a pequeños ejemplos (como ), como en algunos de tus trabajos anteriores? n=4
Ryan Williams

2
@ Ryan Sí, claro. Lo que sabemos es que , C 4 = 5 , C 57 . Esto es para la función del libro (es 1 si todos los n bits de entrada son iguales). Esto crece como 2 n - 3 . Y un circuito de tamaño 2 n - 3 es fácil de construir: primero calcule x ix i + 1 para todo i = 1 , , n -C3=3C4=5C571n2n32n3xixi+1 ( ( n - 1 ) compuertas), y luego calcule la conjunción de ellos ( ( n - 2 ) compuertas). i=1,,n1(n1)(n2)
Alexander S. Kulikov

1
@ Tsuyoshi: Creo que la función de puertas de Sasha es la segunda función de la pregunta ( f n ( x ) = x 1 ... x nˉ x 1 ... ˉ x n ) que se puede construir con n - 1 puertas XNOR (aplicadas a x i , x i + 1 ) y n - 2 puertas Y aplicadas a los XNOR. 2n3fn(x)=x1xnx¯1x¯nn1xi,xi+1n2
Marzio De Biasi

Respuestas:


14

Este artículo de Blum & Seysen puede ser útil:

N.Blum, M. Seysen. Caracterización de todas las redes óptimas para un cómputo simultáneo de AND y NOR . Acta Inf. 21: 171-181 (1984)

He pensado que para 2 n - c se puede obtener el límite inferior utilizando los métodos de Blum y Seysen, pero parece que este no es el caso.x1xnx¯1x¯n 2nc


1
¿Existe una versión pública en pdf del artículo de Blum y Seysen disponible?
Marzio De Biasi

@ Vladimir, gracias por la referencia! Intentaré verificar si sus métodos son aplicables en este caso cuando encuentre el artículo.
Alexander S. Kulikov

3
@Vladimir, ¡eso es de nuevo! En realidad, este documento contiene exactamente la respuesta a mi pregunta y aún más: dice que para calcular AND y OR simultáneamente se necesitan y cualquier circuito de este tamaño calcula AND y OR independientemente (¡esto es interesante!). Tampoco es difícil demostrar que C ( f n ) C ( A N D , O R ) - c 2 n - c . 2n2C(fn)C(AND,OR)c2nc
Alexander S. Kulikov

@ Sasha, sí, me perdí esta construcción simple. Para aclarar las cosas, en el documento se consideran las funciones AND y NOR, por lo que para AND y OR obtenemos límite inferior al alterar una puerta y para x 1 ... x nˉ x 1 ... ˉ x n --- 2 n - 52n2x1xnx¯1x¯n2n5
Vladimir Lysikov

1
Solo un recordatorio @SashaK. si le gusta la respuesta, "acéptela" haciendo clic en la marca debajo del recuento de votos.
Suresh Venkat

3

Su pregunta está relacionada con la conocida pregunta sobre cómo calcular el mínimo y el máximo de una lista simultáneamente usando el número mínimo de comparaciones. En ese caso, la respuesta es .3n/2

El algoritmo inteligente que prueba el límite superior se traduce en un circuito AND / OR con el mismo límite que obtienes, ya que una de las comparaciones calcula tanto un mínimo como un máximo.

Sin embargo, el límite inferior (dado por un argumento adverso) parece traducir, al menos en el caso de circuitos monótonos (ya que un circuito AND / OR se traduce en un algoritmo max / min). Esto implicaría un límite inferior de . Quizás se pueda obtener un límite inferior ajustado analizando el argumento del adversario.3n/2

El límite superior aparece en "Introducción a los algoritmos", donde también puede encontrar el argumento fácil que muestra que los circuitos de comparación máximo / mínimo son válidos si funcionan para entradas booleanas (use un umbral apropiado). El límite inferior se puede encontrar, por ejemplo, aquí .


2
Tenga en cuenta en la pregunta de Sasha, todas las funciones booleanas de 2 bits se pueden utilizar para construir el circuito.
Ryan Williams, el

Sí, no está claro cómo se puede traducir el límite inferior al caso de todas las funciones binarias.
Alexander S. Kulikov
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.