Cuando restringido a - entradas, cada -Circuito calcula alguna función . Para obtener una función booleana , podemos agregar una puerta de umbral fanin-1 como puerta de salida. En la entrada , el umbral resultante - luego el circuito emite si , y las salidas si ; el umbral puede ser cualquier número entero positivo, que puede depender de0 1 { + , × } F ( x 1 , … , x n ) F : { 0 , 1 } n → N
Pregunta: ¿Los umbrales -circuits pueden ser simulados de manera eficiente por -circuits? { + , × } { ∨ , ∧ }{+,×} {∨,∧}
Por "eficientemente" quiero decir "con un aumento polinómico de tamaño como máximo". La respuesta es clara "sí" para el umbral : simplemente reemplace por , por y elimine la última puerta del umbral. Es decir, -circuits son, de hecho, umbral- -circuits. Pero, ¿qué pasa con los umbrales más grandes, digamos, ?
t = 1 + ∨ × ∧ { ∨ , ∧ } 1 { + , × } t = 2
Se pueden definir análogos aritméticos de la mayoría de las clases de circuitos booleanos simplemente usando
lugar de OR, lugar de AND y lugar de . Por ejemplo, los circuitos son -circuitos de profundidad constante con puertas fanin y ilimitadas , y entradas y .
Agrawal, Allender y Datta han demostrado ese umbral = . (Recuerde que sí mismo es un apropiado# C C + × 1 - x i ˉ x i # A C 0 { + , × } + × x i 1 - x i
Nota: hay otro resultado relacionado interesante debido a Arnold Rosenbloom: -circuitos con una sola función monótona como puerta de salida puede Calcule cada función de corte con compuertas . Una función de división es una función booleana monótona que, para algunos fijos , genera (resp. ) en todas las entradas con menos (resp., Más) que . Por otro lado, el conteo fácil muestra que la mayoría de las funciones de división requieren circuitos generales de tamaño exponencial. Por lo tanto, una puerta de salida adicional "inocente" puede{ + , × }
ACTUALIZACIÓN (agregado 03.11.2014): Emil Jeřábek ha demostrado (a través de una construcción increíblemente simple, ver su respuesta a continuación) que la respuesta es "sí" siempre que t ≤ n c para una constante c . Entonces, la pregunta permanece abierta solo para umbrales superpolinomiales (en n ).
Por lo general, en las aplicaciones, solo funcionan los umbrales grandes: generalmente necesitamos umbrales de la forma 2 n ϵ para ϵ > 0 . Es decir, si F : { 0 , 1 } n → N cuenta el número de s - t caminos en el gráfico especificado por el 0 - 1 de entrada, a continuación, para t = m m 2 con m ≈ n 1 / 3 , la de umbrales t versión de F resuelve
(Agregado el 14.11.2014): Dado que Emil respondió una gran parte de mi pregunta, y dado que el caso de los umbrales exponenciales no está a la vista, ahora acepto la respuesta (muy agradable) de Emil.
Respuestas:
La respuesta es "sí" si t = n O ( 1 ) . Más generalmente, un circuito de umbral { + , ⋅ } de tamaño s con umbral t puede simularse mediante un circuito de { ∨ , ∧ } de tamaño O ( t 2 s ) .t=nO(1) {+,⋅} s t {∨,∧} O(t2s)
Primero, observe que es suficiente evaluar el circuito en { 0 , ... , t } con suma y multiplicación truncadas: en particular, si a , a ′ ≥ t , entonces a + b , a ′ + b ≥ t , y a b , a ′ b ≥ t también, o a b = a ′ b ( = 0 ) .{0,…,t} a,a′≥t a+b,a′+b≥t ab,a′b≥t ab=a′b(=0)
Con esto en mente, podemos simular el circuito con un circuito monótono booleano reemplazando cada nodo c por los nodos c 0 , ... , c t , donde c i pretende calcular el predicado c ≥ i . (Necesitamos c 0 solo por conveniencia de notación, calcula la función constante 1 ). Si c es una variable de entrada booleana x , tomamos c 1 = x , c 2 = ⋯ = c t = 0c c0,…,ct ci c≥i c0 1 c x c1=x c2=⋯=ct=0 . Si c es una puerta de suma, digamos c = a + b , la implementamos a través de
c i = ⋁ j , k ≤ t j + k ≥ i ( a j ∧ b k ) .
Las puertas de multiplicación se manejan de la misma manera.c c=a+b
Esto toma O ( t 3 ) compuertas por una compuerta del circuito original. Como una optimización menor, podemos reducirlo a O ( t 2 ) poniendo c tO(t3) O(t2) = ⋁ j + k ≥ t ( a j ∧ b k ) , c i= c i + 1 ∨ ⋁ j + k = i ( a j ∧ b k ) ,i < t , de
modo que cadaaj∧bkse usa como entrada de solo una de laspuertasci.
fuente