¿Qué tan pequeño puede ser un circuito booleano en capas para una función con complejidad de circuito

12

Considere una función calculada por un circuito booleano C con n entradas de tamaño s ( n ) = p o l y ( n ) sobre la base { X O R , A N D , N O T } (con grado 2 para la X O R , A N D puertas).fCns(n)=poly(n){XOR,AND,NOT}XOR,AND

Un circuito booleano está en capas si se puede organizar en capas ( d es la profundidad del circuito) de las puertas de manera que cualquier borde entre dos puertas conecte capas adyacentes.dd

Dado que tiene un circuito booleano de tamaño s , ¿qué podemos decir sobre el tamaño de un circuito en capas que computa f ? Hay un límite superior trivial: al agregar nodos ficticios a C en cada capa cruzada por un borde, obtenemos un circuito en capas de tamaño como máximo O ( s 2 ) . Pero, ¿podemos mejorar en general (por ejemplo, O ( s log s ) u O ( s ) ), o para una clase interesante de circuitos?fsfCO(s2)O(slogs)O(s)

Antecedentes. Esta pregunta se deriva de los resultados recientes en la criptografía que muestran cómo calcular de forma segura en capas circuitos booleanos de tamaño con la comunicación o ( s ) (por ejemplo, s / log s o s / log log s ) ; Estoy tratando de entender cuán restrictiva puede ser esta restricción a los circuitos booleanos en capas en la práctica, ya sea para circuitos generales o para circuitos "naturales". Sin embargo, no he encontrado mucho sobre circuitos en capas en la literatura; los punteros apropiados también serían bienvenidos.so(s)s/logss/loglogs)

Geoffroy Couteau
fuente
44
Aquí hay un ejemplo de un circuito que parece difícil de convertir en un circuito en capas sin un aumento significativo de tamaño. Defina para que sea una función que se pueda calcular en tamaño u . Definir g ( x 1 , , x n ) = ( x 2 , , x n , x 1f ( x 2 ,f:{0,1}n1{0,1}u , y dejar que C sea t iteraciones de g . Entonces C tiene el tamaño O ( t u ) . Parece difícil construir un circuito en capas con un tamaño inferior a Θ ( n t ) . Entonces, si u = o ( n ) , tal vez deberíamos esperar una brecha entre el tamaño de un circuito y el tamaño de un circuito en capas. No es una prueba, solo un ejemplo sugerente para impulsar la intuición. g(x1,,xn)=(x2,,xn,x1f(x2,,xn))CtgCO(tu)Θ(nt)u=o(n)
DW
2
Hasta donde recuerdo, para los circuitos en capas, el límite inferior más conocido es de la forma . Es particularmente fácil probar una función n- to- n . Tomemos, por ejemplo, un mapa lineal A x donde A { 0 , 1 } n × n solo tiene ceros en la diagonal principal. Entonces debe tener al menos n puertas en cada capa y el número de capas es al menos log 2 n . Tenga en cuenta que esta función se puede calcular fácilmente mediante un circuito regular de tamaño O (Ω(nlogn)nnAxA{0,1}n×nnlog2n . Para las funciones de salida única, también es posible probar el mismo límite inferior, pero no recuerdo el argumento. O(n)
Alexander S. Kulikov
1
Muchas gracias por los comentarios. @ AlexanderS.Kulikov, ¿es su argumento el folklore, o tiene algún puntero para trabajar en circuitos en capas? El tiene sentido, me hubiera sorprendido mucho algo más pequeño, pero ¿es O ( n 2 ) el único límite superior conocido? Ω(nlogn)O(n2)
Geoffroy Couteau
1
Supongo que es un folklore, sí. No estoy seguro de haber recibido la pregunta sobre el límite superior de . Es posible que desee consultar el siguiente documento: cs.utexas.edu/~panni/sizedepth.pdfO(n2)
Alexander S. Kulikov
1
Creo que no conocemos una transformación mejor que en general. Tenga en cuenta que un circuito de tamaño sy profundidad d se puede transformar en un circuito de capas de tamaño como máximo d s . (Lo que en el peor de los casos nos da un circuito de tamaño O ( s 2 ) .) Solo quería señalar que si pudiéramos probar un límite inferior de ω ( n log n ) en el tamaño de un circuito en capas, esto sería nos da un límite inferior superlineal en el tamaño de los circuitos de profundidad logarítmica para esta función. Esta pregunta permanece abierta por más de 40 años.O(s2)sddsO(s2)ω(nlogn)
Alex Golovnev

Respuestas:

8

Hasta donde yo sé, se han estudiado tres clases de circuitos en capas. En todas estas definiciones, los arcos solo se permiten entre dos capas adyacentes.

  1. Un circuito se llama síncrono ( Harper 1977 ) si todas las puertas están dispuestas en capas, y las entradas deben estar en la capa 0. (Una definición equivalente: para cualquier puerta g , todas las rutas de las entradas a g tienen la misma longitud).

  2. Un circuito es localmente sincrónico ( Belaga 1984 ) si cada entrada ocurre exactamente una vez pero en una capa arbitraria.

  3. Un circuito está en capas ( Gál, Jang 2010 ) si las puertas y las entradas están dispuestas en capas, las entradas pueden ocurrir varias veces en diferentes capas. (Una definición equivalente: para cualquier puerta g y puerta de salida o , todas las rutas dirigidas de g a o tienen la misma longitud).

Es fácil ver que las tres clases se enumeran de la más débil a la más fuerte (y la clase de circuitos sin restricción es aún más fuerte).

En cuanto al tamaño de un circuito en capas que computa un circuito sin restricciones de tamaño s , sabemos lo siguiente:

  1. ss2

  2. ω(slogs)sdO(sd)fω(nlogn)fO(logn)O(n)

  3. Existen funciones explícitas

    Ω(nlogn)O(n)

    Ω(nlogn)O(n)

n

f:{0,1}n{0,1}niiO(n)lognnnfΩ(nlogn)n1Ω(logn)nn

Alex Golovnev
fuente