
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.(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 quesepararí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 conLos 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 losbits 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.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 booleanaes el tamaño mínimo de cualquier circuito computacionalLa complejidad de profundidad de circuito de una función booleanaes la profundidad mínima de cualquier cálculo de circuitos.
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.donde cadaacepta entradas de tamañoCada familia de circuitos generará naturalmente el lenguaje por circuito.salidacuando una longitudLa cuerda es un miembro de la familia, yDe 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., con un circuito de menor tamaño que(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 formalse define como la función, que relaciona la longitud en bits de una entrada,, a la complejidad del tamaño del circuito de un circuito mínimoque decide si las entradas de esa longitud están enLa 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.donde cadaes 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.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 booleanoses uniforme en tiempo polinomial si existe una máquina de Turing determinista M tal que
- M se ejecuta en tiempo polinomial
- A pesar de, M genera una descripción deen la entrada
Uniforme de espacio de registro
Una familia de circuitos booleanoses 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 de, M genera una descripción deen la entrada
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 utilizandobits, que indican para cada posible arista si está presente. Luego, el problema de la k -clique se formaliza como una funciónde tal manera queproduce 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ñopara resolver el problema de la k -clique incluso en el caso promedio . Además, existe un circuito de tamañoque calcula.
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ó que. [ 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 queimplicaría que oo 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 profundidad, 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,pertenece a la clase de complejidad temporalpara alguna función, entoncestiene complejidad de circuitoSi 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), entoncestiene complejidad de circuito. [ 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óndonde para cada,, dóndesignifica quea pesar de.
Véase también
Notas
Referencias
- ↑ Sipser, Michael (1997). Introducción a la teoría de la computación (1.ª ed.). Boston, EE. UU.: PWS Publishing Company. pág. 324.
- ↑ 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 .
- 1 2 Ajtai, Miklós (1983). "-fórmulas sobre estructuras finitas". Anales de lógica pura y aplicada . 24 : 1–24 . doi : 10.1016/0168-0072(83)90038-6 .
- 1 2 Ajtai, Miklós ; Komlós, János ; Szemerédi, Endre (1983). "Unred 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 .
- 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 .
- ↑ Håstad, Johan Torkel (1987). Limitaciones computacionales de circuitos de poca profundidad (PDF) (tesis doctoral). Instituto Tecnológico de Massachusetts.
- 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 .
- ↑ 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 .
- ^ 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 .
- ↑ 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 .
- ↑ Raz, Ran ; McKenzie, Pierre (1999). "Separación de la jerarquía NC monótona". Combinatorica . 19 (3): 403– 435. doi : 10.1007/s004930050062 .
- ↑ 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 .
- ↑ 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.
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ Razborov, Aleksandr Aleksandrovich ; Rudich, Steven (1997). "Pruebas naturales". Journal of Computer and System Sciences . Vol. 55. pp. 24–35 .
- ↑ Carmosino, Marco; Impagliazzo, Russell Graham ; Kabanets, Valentine; Kolokolova, Antonina (2016). "Aprendizaje de algoritmos a partir de pruebas naturales". Conferencia sobre Complejidad Computacional .
- ↑ 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
- Vollmer, Heribert [en alemán] (1999). Introducción a la complejidad de circuitos: un enfoque uniforme . Textos en informática teórica. Serie EATCS. Springer Verlag . ISBN 978-3-540-64310-4.
- Wegener, Ingo (1987) [noviembre de 1986]. La complejidad de las funciones booleanas . Serie Wiley-Teubner en Ciencias de la Computación. Frankfurt am Main/Bielefeld, Alemania: John Wiley & Sons Ltd. y BG Teubner Verlag , Stuttgart. ISBN 3-519-02107-2. LCCN 87-10388 . (xii+457 páginas) (Nota: En su momento, fue un influyente libro de texto sobre el tema, conocido comúnmente como el "Libro Azul". También disponible para su descarga (PDF) en el Coloquio Electrónico sobre Complejidad Computacional ).
- Zwick, Uri . "Apuntes de clase para un curso de Uri Zwick sobre complejidad de circuitos" .
- Complejidad del circuito
- Teoría de la complejidad computacional