Articulo de referencia

Complejidad del circuito

Ejemplo de circuito booleano. El ∧ {\displaystyle \wedge } Los nodos son puertas AND , el ∨ {\displaystyle \vee } Los nodos son puertas OR y el ¬ {\displaystyle \neg } Los nodos...

Ejemplo de circuito booleano. El{\displaystyle \wedge }Los nodos son puertas AND , el{\displaystyle \vee }Los nodos son puertas OR y el¬{\displaystyle \neg }Los nodos NO son puertas .

En informática teórica , la complejidad de circuitos es una rama de la teoría de la complejidad computacional en la que las funciones booleanas se clasifican según el tamaño o la profundidad de los circuitos booleanos que las calculan. Un concepto relacionado es la complejidad de circuitos de un lenguaje recursivo , que se define mediante una familia uniforme de circuitos.do1,do2,{\displaystyle C_{1},C_{2},\ldots }(vea abajo).

Demostrar límites inferiores en el tamaño de los circuitos booleanos que calculan funciones booleanas explícitas es un enfoque popular para separar clases de complejidad. Por ejemplo, una clase de circuito prominente P/poly consiste en funciones booleanas computables por circuitos de tamaño polinomial. Demostrar quenortePAGPAG/pagoly{\displaystyle {\mathsf {NP}}\not \subseteq {\mathsf {P/poly}}}separaría P y NP (ver más abajo).

Las clases de complejidad definidas en términos de circuitos booleanos incluyen AC 0 , AC , TC 0 , NC 1 , NC , y P/poly .

Tamaño y profundidad

Un circuito booleano connorte{\displaystyle n}Los bits de entrada son un grafo dirigido acíclico en el que cada nodo (generalmente llamado compuerta en este contexto) es un nodo de entrada de grado 0 etiquetado por uno de losnorte{\displaystyle n}bits de entrada, una puerta AND , una puerta OR o una puerta NOT. Una de estas puertas se designa como la puerta de salida. Dicho circuito calcula naturalmente una función de sus bits de entrada, una puerta AND, una puerta OR o una puerta NOT . Una de estas puertas se designa como la puerta de salida. Dicho circuito calcula naturalmente una función de sus bits de entrada.norte{\displaystyle n}entradas. El tamaño de un circuito es el número de compuertas que contiene y su profundidad es la longitud máxima de un camino desde una compuerta de entrada hasta la compuerta de salida.

Existen dos nociones principales de complejidad de circuitos. [ 1 ] La complejidad del tamaño del circuito de una función booleanaF{\displaystyle f}es el tamaño mínimo de cualquier circuito computacionalF{\displaystyle f}La complejidad de profundidad de circuito de una función booleanaF{\displaystyle f}es la profundidad mínima de cualquier cálculo de circuitosF{\displaystyle f}.

Estas nociones se generalizan cuando se considera la complejidad de circuitos de cualquier lenguaje formal que contenga cadenas con diferentes longitudes de bits, especialmente lenguajes infinitos. Sin embargo, los circuitos booleanos solo permiten un número fijo de bits de entrada. Por lo tanto, ningún circuito booleano individual es capaz de decidir un lenguaje de este tipo. Para tener en cuenta esta posibilidad, se consideran familias de circuitos.do1,do2,{\displaystyle C_{1},C_{2},\ldots }donde cadadonorte{\displaystyle C_{n}}acepta entradas de tamañonorte{\displaystyle n}Cada familia de circuitos generará naturalmente el lenguaje por circuito.donorte{\displaystyle C_{n}}salida1{\displaystyle 1}cuando una longitudnorte{\displaystyle n}La cuerda es un miembro de la familia, y0{\displaystyle 0}De lo contrario, decimos que una familia de circuitos es de tamaño mínimo si no hay otra familia que decida sobre entradas de cualquier tamaño.norte{\displaystyle n}, con un circuito de menor tamaño quedonorte{\displaystyle C_{n}}(respectivamente para familias de profundidad mínima ). Por lo tanto, la complejidad de circuitos es significativa incluso para lenguajes no recursivos . La noción de una familia uniforme permite relacionar variantes de la complejidad de circuitos con medidas de complejidad basadas en algoritmos para lenguajes recursivos. Sin embargo, la variante no uniforme resulta útil para encontrar límites inferiores sobre la complejidad que debe tener cualquier familia de circuitos para determinar la idoneidad de determinados lenguajes.

Por lo tanto, la complejidad del tamaño del circuito de un lenguaje formalA{\displaystyle A}se define como la funciónt:nortenorte{\displaystyle t:\mathbb {N} \to \mathbb {N} }, que relaciona la longitud en bits de una entrada,norte{\displaystyle n}, a la complejidad del tamaño del circuito de un circuito mínimodonorte{\displaystyle C_{n}}que decide si las entradas de esa longitud están enA{\displaystyle A}La complejidad de la profundidad del circuito se define de manera similar.

Uniformidad

Los circuitos booleanos son uno de los principales ejemplos de los llamados modelos de computación no uniformes , en el sentido de que las entradas de distinta longitud son procesadas por circuitos diferentes, a diferencia de los modelos uniformes como las máquinas de Turing, donde se utiliza el mismo dispositivo computacional para todas las posibles longitudes de entrada. Por lo tanto, un problema computacional individual se asocia con una familia particular de circuitos booleanos.do1,do2,{\displaystyle C_{1},C_{2},\dots }donde cadadonorte{\displaystyle C_{n}}es el circuito que maneja entradas de n bits. A menudo se impone una condición de uniformidad a estas familias, que requiere la existencia de alguna máquina de Turing posiblemente limitada en recursos que, en la entrada n , produce una descripción del circuito individual.donorte{\displaystyle C_{n}}Cuando esta máquina de Turing tiene un tiempo de ejecución polinomial en n , se dice que la familia de circuitos es P-uniforme. El requisito más estricto de uniformidad DLOGTIME es de particular interés en el estudio de clases de circuitos de poca profundidad, como AC 0 o TC 0. Cuando no se especifican límites de recursos, un lenguaje es recursivo (es decir, decidible por una máquina de Turing) si y solo si el lenguaje es decidido por una familia uniforme de circuitos booleanos.

Uniforme de tiempo polinomial

Una familia de circuitos booleanos{donorte:nortenorte}{\displaystyle \{C_{n}:n\in \mathbb {N} \}}es uniforme en tiempo polinomial si existe una máquina de Turing determinista M tal que

  • M se ejecuta en tiempo polinomial
  • A pesar denortenorte{\displaystyle n\in \mathbb {N} }, M genera una descripción dedonorte{\displaystyle C_{n}}en la entrada1norte{\displaystyle 1^{n}}

Uniforme de espacio de registro

Una familia de circuitos booleanos{donorte:nortenorte}{\displaystyle \{C_{n}:n\in \mathbb {N} \}}es uniforme en el espacio logarítmico si existe una máquina de Turing determinista M tal que

  • M funciona en un espacio de trabajo logarítmico (es decir, M es un transductor en el espacio logarítmico ).
  • A pesar denortenorte{\displaystyle n\in \mathbb {N} }, M genera una descripción dedonorte{\displaystyle C_{n}}en la entrada1norte{\displaystyle 1^{n}}

Historia

La complejidad de los circuitos se remonta a Shannon en 1949, [ 2 ] quien demostró que casi todas las funciones booleanas en n variables requieren circuitos de tamaño Θ(2 n / n ). A pesar de esto, los teóricos de la complejidad no han podido demostrar hasta ahora una cota inferior superlineal para ninguna función explícita.

Se han demostrado cotas inferiores superpolinomiales bajo ciertas restricciones en la familia de circuitos utilizados. La primera función para la que se mostraron cotas inferiores de circuito superpolinomiales fue la función de paridad , que calcula la suma de sus bits de entrada módulo 2. El hecho de que la paridad no esté contenida en AC 0 fue establecido por primera vez independientemente por Ajtai en 1983 [ 3 ] [ 4 ] y por Furst, Saxe y Sipser en 1984. [ 5 ] Mejoras posteriores de Håstad en 1987 [ 6 ] establecieron que cualquier familia de circuitos de profundidad constante que calculen la función de paridad requiere un tamaño exponencial. Extendiendo un resultado de Razborov , [ 7 ] Smolensky en 1987 [ 8 ] demostró que esto es cierto incluso si el circuito se aumenta con puertas que calculan la suma de sus bits de entrada módulo algún primo impar p .

El problema de la k -clique consiste en decidir si un grafo dado con n vértices tiene una clique de tamaño k . Para cualquier elección particular de las constantes n y k , el grafo se puede codificar en binario utilizando(norte2){\displaystyle {n \choose 2}}bits, que indican para cada posible arista si está presente. Luego, el problema de la k -clique se formaliza como una funciónFk:{0,1}(norte2){0,1}{\displaystyle f_{k}:\{0,1\}^{n \choose 2}\to \{0,1\}}de tal manera queFk{\displaystyle f_{k}}produce 1 si y solo si el grafo codificado por la cadena contiene una camarilla de tamaño k . Esta familia de funciones es monótona y puede ser calculada por una familia de circuitos, pero se ha demostrado que no puede ser calculada por una familia de circuitos monótonos de tamaño polinomial (es decir, circuitos con puertas AND y OR pero sin negación). El resultado original de Razborov en 1985 [ 7 ] fue mejorado posteriormente a una cota inferior de tamaño exponencial por Alon y Boppana en 1987. [ 9 ] En 2008, Rossman [ 10 ] demostró que los circuitos de profundidad constante con puertas AND, OR y NOT requieren tamañoΩ(nortek/4){\displaystyle \Omega (n^{k/4})}para resolver el problema de la k -clique incluso en el caso promedio . Además, existe un circuito de tamañonortek/4+O(1){\displaystyle n^{k/4+O(1)}}que calculaFk{\displaystyle f_{k}}.

En 1999, Raz y McKenzie demostraron posteriormente que la jerarquía NC monótona es infinita. [ 11 ]

El problema de la división entera se encuentra en TC uniforme 0 . [ 12 ]

límites inferiores del circuito

Los límites inferiores de los circuitos son generalmente difíciles de determinar. Los resultados conocidos incluyen:

  • La paridad no está en AC 0 no uniforme , demostrado por Ajtai en 1983 [ 3 ] [ 4 ] así como por Furst, Saxe y Sipser en 1984. [ 5 ]
  • El TC uniforme 0 está estrictamente contenido en PP , probado por Allender . [ 13 ]
  • Las clases O P 2 , [ 14 ] PP [ nb 1 ] y MA /1 [ 15 ] (MA con un poco de consejo) no están en SIZE ( n k ) para ninguna constante k.
  • Si bien se sospecha que la clase no uniforme ACC 0 no contiene la función mayoritaria, fue solo en 2010 que Williams demostró quenortemiincógnitaPAGAdodo0{\displaystyle {\mathsf {NEXP}}\not \subseteq {\mathsf {ACC}}^{0}}. [ 16 ]

Queda por determinar si NEXPTIME tiene circuitos TC 0 no uniformes.

Las demostraciones de límites inferiores de circuitos están fuertemente conectadas con la desaleatorización . Una demostración de quePAG=BPAGPAG{\displaystyle {\mathsf {P}}={\mathsf {BPP}}}implicaría que onortemiincógnitaPAGPAG/pagoly{\displaystyle {\mathsf {NEXP}}\not \subseteq {\mathsf {P/poly}}}o que el permanente de una matriz no se puede calcular mediante circuitos aritméticos no uniformes (polinomios) de tamaño y grado polinomial. [ 17 ]

En 1997, Razborov y Rudich demostraron que muchas cotas inferiores de circuitos conocidas para funciones booleanas explícitas implican la existencia de las llamadas propiedades naturales útiles contra la clase de circuito correspondiente. [ 18 ] Por otro lado, las propiedades naturales útiles contra P/poly romperían los generadores pseudoaleatorios fuertes. Esto se interpreta a menudo como una barrera de "pruebas naturales" para demostrar cotas inferiores de circuitos fuertes. En 2016, Carmosino, Impagliazzo, Kabanets y Kolokolova demostraron que las propiedades naturales también pueden usarse para construir algoritmos de aprendizaje eficientes. [ 19 ]

Clases de complejidad

Muchas clases de complejidad de circuitos se definen en términos de jerarquías de clases. Para cada entero no negativo i , existe una clase NC i , que consta de circuitos de tamaño polinomial de profundidadO(registroi(norte)){\displaystyle O(\log ^{i}(n))}, utilizando compuertas AND, OR y NOT con entrada limitada . La unión NC de todas estas clases es objeto de estudio. Al considerar compuertas con entrada ilimitada, se pueden construir las clases AC i y AC (que es igual a NC). Se pueden construir muchas otras clases de complejidad de circuitos con las mismas restricciones de tamaño y profundidad permitiendo diferentes conjuntos de compuertas.

Relación con la complejidad temporal

Si un determinado idioma,A{\displaystyle A}pertenece a la clase de complejidad temporalTIEMPO(t(norte)){\displaystyle {\text{TIEMPO}}(t(n))}para alguna funciónt:nortenorte{\displaystyle t:\mathbb {N} \to \mathbb {N} }, entoncesA{\displaystyle A}tiene complejidad de circuitoO(t(norte)registrot(norte)){\displaystyle {\mathcal {O}}(t(n)\log t(n))}Si la máquina de Turing que acepta el lenguaje es ajena a la información (es decir, lee y escribe en las mismas celdas de memoria independientemente de la entrada), entoncesA{\displaystyle A}tiene complejidad de circuitoO(t(norte)){\displaystyle {\mathcal {O}}(t(n))}. [ 20 ]

Circuitos monótonos

Un circuito booleano monótono es aquel que solo tiene compuertas AND y OR, pero no compuertas NOT. Un circuito monótono solo puede calcular una función booleana monótona, que es una funciónF:{0,1}norte{0,1}{\displaystyle f:\{0,1\}^{n}\to \{0,1\}}donde para cadaincógnita,y{0,1}norte{\displaystyle x,y\in \{0,1\}^{n}},incógnitayF(incógnita)F(y){\displaystyle x\leq y\implies f(x)\leq f(y)}, dóndeincógnitay{\displaystyle x\leq y}significa queincógnitaiyi{\displaystyle x_{i}\leq y_{i}}a pesar dei{1,,norte}{\displaystyle i\in \{1,\ldots ,n\}}.

Véase también

Notas

Referencias

  1. Sipser, Michael (1997). Introducción a la teoría de la computación (1.ª  ed.). Boston, EE. UU.: PWS Publishing Company. pág.  324.
  2. Shannon, Claude Elwood (1949). "La síntesis de circuitos de conmutación de dos terminales". Bell System Technical Journal . 28 (1): 59– 98. Bibcode : 1949BSTJ...28...59S . doi : 10.1002/j.1538-7305.1949.tb03624.x .
  3. 1 2 Ajtai, Miklós (1983). "Σ11{\displaystyle \Sigma _{1}^{1}}-fórmulas sobre estructuras finitas". Anales de lógica pura y aplicada . 24 : 1–24 . doi : 10.1016/0168-0072(83)90038-6 .
  4. 1 2 Ajtai, Miklós ; Komlós, János ; Szemerédi, Endre (1983). "UnO(norteregistronorte){\displaystyle O(n\log n)}red de clasificación". Actas del 15.º Simposio Anual de la ACM sobre Teoría de la Computación, 25-27 de abril de 1983, Boston, Massachusetts, EE. UU . Asociación para la Maquinaria de Computación. págs. 1-9 . doi : 10.1145/800061.808726 . 
  5. 1 2 Furst, Merrick L.; Saxe, James Benjamin ; Sipser, Michael Fredric (1984). "Paridad, circuitos y la jerarquía de tiempo polinomial". Mathematical Systems Theory . 17 (1): 13– 27. doi : 10.1007/BF01744431 . MR 0738749. S2CID 6306235 .  
  6. Håstad, Johan Torkel (1987). Limitaciones computacionales de circuitos de poca profundidad (PDF) (tesis doctoral). Instituto Tecnológico de Massachusetts.
  7. 1 2 Razborov, Aleksandr Aleksandrovich (1985). "Límites inferiores de la complejidad monótona de algunas funciones booleanas". Matemáticas Soviéticas - Doklady . 31 : 354–357 . ISSN 0197-6788 . 
  8. Smolensky, Roman (1987). "Métodos algebraicos en la teoría de cotas inferiores para la complejidad de circuitos booleanos". Actas del 19.º Simposio Anual de la ACM sobre Teoría de la Computación . Association for Computing Machinery . págs. 77–82 . doi : 10.1145/28395.28404 . 
  9. ^ Alón, Noga ; Boppana, Ravi B. (1987). "La complejidad del circuito monótono de las funciones booleanas". Combinatoria . 7 (1): 1– 22. CiteSeerX 10.1.1.300.9623 . doi : 10.1007/bf02579196 . S2CID 17397273 .  
  10. Rossman, Benjamin E. (2008). "Sobre la complejidad de profundidad constante de k-clique". STOC 2008: Actas del 40.º simposio anual de la ACM sobre Teoría de la Computación . Association for Computing Machinery . págs. 721–730 . doi : 10.1145/1374376.1374480 . 
  11. Raz, Ran ; McKenzie, Pierre (1999). "Separación de la jerarquía NC monótona". Combinatorica . 19 (3): 403– 435. doi : 10.1007/s004930050062 .
  12. Hesse, William (2001). "La división está en uniforme TC 0 ". Actas del 28.º Coloquio Internacional sobre Autómatas, Lenguajes y Programación . Springer Verlag . págs. 104–114 . 
  13. Allender, Eric (1996). "Complejidad de circuitos antes del amanecer del nuevo milenio". En Chandru, Vijay; Vinay, V. (eds.). Fundamentos de la tecnología del software y la informática teórica, 16.ª Conferencia, Hyderabad, India, 18-20 de diciembre de 1996, Actas . Lecture Notes in Computer Science. Vol. 1180. Springer. pp. 1-18 . doi : 10.1007/3-540-62034-6_33 . ISBN   978-3-540-62034-1.
  14. Gajulapalli, Karthik; Li, Zeyong; Volkovich, Ilya (2024). "Revisión de las clases de complejidad ajenas a la realidad: límites inferiores y jerarquías". 44.ª Conferencia Anual de la IARCS sobre Fundamentos de la Tecnología del Software y la Informática Teórica (FSTTCS 2024) . Actas Internacionales Leibniz en Informática (LIPIcs). Vol. 323. Schloss Dagstuhl – Centro Leibniz de Informática . págs. 1–19 . doi : 10.4230/LIPIcs.FSTTCS.2024.23 .  
  15. Santhanam, Rahul (2007). "Límites inferiores de circuitos para clases de Merlin-Arthur" . STOC 2007: Actas del trigésimo noveno simposio anual de la ACM sobre Teoría de la Computación . págs. 275–283 . CiteSeerX 10.1.1.92.4422 . doi : 10.1145/1250790.1250832 .  
  16. Williams, Richard Ryan (2011). "Límites inferiores de circuitos ACC no uniformes" (PDF) . CCC 2011: Actas de la 26.ª Conferencia Anual IEEE sobre Complejidad Computacional . págs. 115–125 . doi : 10.1109/CCC.2011.36 . 
  17. Kabanets, Valentine; Impagliazzo, Russell Graham (2004). "Desaleatorizar las pruebas de identidad polinomial significa demostrar límites inferiores de circuitos". Complejidad Computacional . 13 (1): 1– 46. doi : 10.1007/s00037-004-0182-6 . S2CID 12451799 . 
  18. Razborov, Aleksandr Aleksandrovich ; Rudich, Steven (1997). "Pruebas naturales". Journal of Computer and System Sciences . Vol. 55. pp. 24–35 .  
  19. Carmosino, Marco; Impagliazzo, Russell Graham ; Kabanets, Valentine; Kolokolova, Antonina (2016). "Aprendizaje de algoritmos a partir de pruebas naturales". Conferencia sobre Complejidad Computacional .
  20. Pippenger, Nicholas ; Fischer, Michael J. (1979). "Relaciones entre medidas de complejidad" . Journal of the ACM . 26 (3): 361– 381. doi : 10.1145/322123.322138 . S2CID 2432526 . 

Lecturas adicionales