Articulo de referencia

Teorema de Cook-Levin

En la teoría de la complejidad computacional , el teorema de Cook-Levin , también conocido como teorema de Cook , establece que el problema de satisfacibilidad booleana es NP-co...

En la teoría de la complejidad computacional , el teorema de Cook-Levin , también conocido como teorema de Cook , establece que el problema de satisfacibilidad booleana es NP-completo . Es decir, pertenece a NP , y cualquier problema en NP puede reducirse en tiempo polinomial mediante una máquina de Turing determinista al problema de satisfacibilidad booleana.

El teorema recibe su nombre de Stephen Cook y Leonid Levin . La demostración se debe a Richard Karp , basada en una demostración anterior (que utiliza una noción diferente de reducibilidad) de Cook. [ 1 ]

Una consecuencia importante de este teorema es que, si existe un algoritmo determinista de tiempo polinomial para resolver la satisfacibilidad booleana, entonces todo problema NP puede resolverse mediante un algoritmo determinista de tiempo polinomial. La cuestión de si existe tal algoritmo para la satisfacibilidad booleana es, por lo tanto, equivalente al problema P versus NP , que aún se considera el problema sin resolver más importante en la informática teórica .

Contribuciones

El concepto de NP-completitud fue desarrollado a finales de la década de 1960 y principios de la de 1970 de forma paralela por investigadores de Norteamérica y la Unión Soviética . En 1971, Stephen Cook publicó su artículo «La complejidad de los procedimientos de demostración de teoremas» [ 2 ] en las actas del recién fundado Simposio ACM sobre Teoría de la Computación . El artículo posterior de Richard Karp , «Reducibilidad entre problemas combinatorios» [ 1 ], generó un renovado interés en el artículo de Cook al proporcionar una lista de 21 problemas NP-completos . Karp también introdujo la noción de completitud utilizada en la definición actual de NP-completitud (es decir, mediante reducción de muchos a uno en tiempo polinomial ). Tanto Cook como Karp recibieron el Premio Turing por este trabajo.

El interés teórico en la NP-completitud también se vio reforzado por el trabajo de Theodore P. Baker, John Gill y Robert Solovay, quienes demostraron, en 1975, que resolver problemas NP en ciertos modelos de máquinas oráculo requiere tiempo exponencial. Es decir, existe un oráculo A tal que, para todas las clases de complejidad determinista subexponencial T, la clase de complejidad relativizada NP A no es un subconjunto de T A . En particular, para este oráculo, P A  NP A . [ 3 ]

En la URSS, M. Dekhtiar publicó en 1969 un resultado equivalente al de Baker, Gill y Solovay. [ 4 ] Posteriormente , el artículo de Leonid Levin , "Problemas de búsqueda universales", [ 5 ] se publicó en 1973, aunque se mencionó en charlas y se presentó para su publicación unos años antes.

El enfoque de Levin difería ligeramente del de Cook y Karp, ya que consideraba problemas de búsqueda que requieren encontrar soluciones en lugar de simplemente determinar su existencia. Propuso seis problemas de búsqueda NP-completos, o problemas universales . Además, halló para cada uno de estos problemas un algoritmo que lo resuelve en tiempo óptimo (en particular, estos algoritmos se ejecutan en tiempo polinomial si y solo si P = NP ).

Definiciones

Un problema de decisión pertenece a NP si puede ser resuelto por una máquina de Turing no determinista en tiempo polinomial .

Un ejemplo del problema de satisfacibilidad booleana es una expresión booleana que combina variables booleanas mediante operadores booleanos . Dicha expresión es satisfacible si existe alguna asignación de valores de verdad a las variables que haga que la expresión completa sea verdadera.

Idea

Dado cualquier problema de decisión en NP, se construye una máquina no determinista que lo resuelve en tiempo polinomial. Luego, para cada entrada de dicha máquina, se construye una expresión booleana que calcula si, al recibir esa entrada específica, la máquina se ejecuta correctamente y se detiene respondiendo "sí". La expresión se satisface si y solo si existe una forma de que la máquina se ejecute correctamente y responda "sí". Por lo tanto, la satisfacibilidad de la expresión construida equivale a preguntar si la máquina responderá "sí" o no.

Prueba

Esta demostración se basa en la presentada por Garey y Johnson en 1979 , págs. 38-44, Sección 2.6 . 

Demostrar que el problema de satisfacibilidad booleana (SAT) es NP-completo consta de dos partes. Una consiste en demostrar que SAT es un problema NP. La otra consiste en demostrar que todo problema NP puede reducirse a una instancia de un problema SAT mediante una reducción de muchos a uno en tiempo polinomial .

SAT pertenece a NP porque cualquier asignación de valores booleanos a variables booleanas que se afirme que satisface la expresión dada puede verificarse en tiempo polinomial mediante una máquina de Turing determinista. (Las afirmaciones verificables en tiempo polinomial por una máquina de Turing determinista y resolubles en tiempo polinomial por una máquina de Turing no determinista son equivalentes, y la demostración puede encontrarse en muchos libros de texto, por ejemplo, en la sección 7.3 de Introduction to the Theory of Computation de Sipser , así como en el artículo de Wikipedia sobre NP ).

Diagrama conmutativo que muestra la reducción de Cook deMETRO{\displaystyle M}a SAT. Los tamaños de los datos y los tiempos de ejecución del programa están coloreados en naranja y verde , respectivamente.
Esquema que acepta el cálculo por parte de la máquinaMETRO{\displaystyle M}.

Ahora supongamos que un problema dado en NP puede ser resuelto por la máquina de Turing no determinista.METRO=(Q,Σ,s,F,δ){\displaystyle M=(Q,\Sigma ,s,F,\delta )}, dóndeQ{\displaystyle Q}es el conjunto de estados,Σ{\displaystyle \Sigma }es el alfabeto de símbolos de cinta,sQ{\displaystyle s\in Q}es el estado inicial,FQ{\displaystyle F\subseteq Q}es el conjunto de estados que aceptan yδ((QF)×Σ)×(Q×Σ×{1,+1}){\displaystyle \delta \subseteq ((Q\setminus F)\times \Sigma )\times (Q\times \Sigma \times \{-1,+1\})}es la relación de transición. Supongamos además queMETRO{\displaystyle M}acepta o rechaza una instancia del problema después de como máximopag(norte){\displaystyle p(n)}pasos de cálculo, dondenorte{\displaystyle n}es el tamaño de la instancia ypag{\displaystyle p}es una función polinómica.

Para cada entrada,I{\displaystyle I}, especifique una expresión booleanaB{\displaystyle B}que es satisfacible si y solo si la máquinaMETRO{\displaystyle M}aceptaI{\displaystyle I}.

La expresión booleana utiliza las variables que se muestran en la siguiente tabla. Aquí,qQ{\displaystyle q\in Q}es un estado de máquina,pag(norte)ipag(norte){\displaystyle -p(n)\leq i\leq p(n)}es una posición de cinta,jΣ{\displaystyle j\in \Sigma }es un símbolo de cinta, y0kpag(norte){\displaystyle 0\leq k\leq p(n)}es el número de un paso de cálculo.

Defina la expresión booleanaB{\displaystyle B}ser la conjunción de las subexpresiones en la siguiente tabla, para todopag(norte)ipag(norte){\displaystyle -p(n)\leq i\leq p(n)}y0kpag(norte){\displaystyle 0\leq k\leq p(n)}:

Si existe un cálculo de aceptación paraMETRO{\displaystyle M}en la entradaI{\displaystyle I}, entoncesB{\displaystyle B}es satisfecha mediante la asignaciónTi,j,k{\displaystyle T_{i,j,k}},Hi,k{\displaystyle H_{i,k}}yQi,k{\displaystyle Q_{i,k}}sus interpretaciones previstas. Por otro lado, siB{\displaystyle B}es satisfacible, entonces hay un cálculo de aceptación paraMETRO{\displaystyle M}en la entradaI{\displaystyle I}que sigue los pasos indicados por las asignaciones a las variables.

HayO(pag(norte)2){\displaystyle O(p(n)^{2})}Variables booleanas, cada una codificable en el espacioO(registropag(norte)){\displaystyle O(\log p(n))}. El número de cláusulas esO(pag(norte)3){\displaystyle O(p(n)^{3})}[ 7 ] por lo que el tamaño deB{\displaystyle B}esO(registro(pag(norte))pag(norte)3){\displaystyle O(\log(p(n))p(n)^{3})}. Por lo tanto, la transformación es ciertamente una reducción de muchos a uno en tiempo polinomial, como se requiere.

Solo la primera fila de la tabla (Ti,j,0{\displaystyle T_{i,j,0}}) en realidad depende de la cadena de entradaI{\displaystyle I}Las líneas restantes dependen únicamente de la longitud de entrada.norte{\displaystyle n}y en la máquinaMETRO{\displaystyle M}; formalizan un cálculo genérico deMETRO{\displaystyle M}hastapag(norte){\displaystyle p(n)}pasos.

La transformación hace un uso extensivo del polinomiopag(norte){\displaystyle p(n)}. En consecuencia, la demostración anterior no es constructiva : incluso siMETRO{\displaystyle M}Se sabe que, al observar la pertenencia del problema dado a NP, la transformación no se puede calcular de manera efectiva, a menos que se conozca un límite superior.pag(norte){\displaystyle p(n)}deMETRO{\displaystyle M}También se conoce su complejidad temporal.

Complejidad

Si bien el método anterior codifica una máquina de Turing no determinista en complejidadO(registro(pag(norte))pag(norte)3){\displaystyle O(\log(p(n))p(n)^{3})}La literatura describe enfoques más sofisticados en cuanto a complejidad.O(pag(norte)registro(pag(norte))){\displaystyle O(p(n)\log(p(n)))}. [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] El resultado cuasilineal apareció por primera vez siete años después de la publicación original de Cook.

El uso de SAT para demostrar la existencia de un problema NP-completo puede extenderse a otros problemas computacionales en lógica y a la completitud para otras clases de complejidad . El problema de la fórmula booleana cuantificada (QBF) involucra fórmulas booleanas extendidas para incluir cuantificadores universales anidados y cuantificadores existenciales para sus variables. El problema QBF puede usarse para codificar la computación con una máquina de Turing limitada a la complejidad espacial polinomial , demostrando que existe un problema (el reconocimiento de fórmulas booleanas cuantificadas verdaderas) que es PSPACE-completo . Análogamente, las fórmulas booleanas cuantificadas de dependencia codifican la computación con una máquina de Turing limitada a la complejidad espacial logarítmica , demostrando que existe un problema que es NL-completo . [ 13 ] [ 14 ]

Consecuencias

La demostración muestra que cada problema en NP puede reducirse en tiempo polinomial (de hecho, basta con espacio logarítmico ) a una instancia del problema de satisfacibilidad booleana. Esto significa que si el problema de satisfacibilidad booleana pudiera resolverse en tiempo polinomial mediante una máquina de Turing determinista , entonces todos los problemas en NP podrían resolverse en tiempo polinomial, y por lo tanto la clase de complejidad NP sería igual a la clase de complejidad P.

La importancia de la NP-completitud quedó clara con la publicación en 1972 del artículo fundamental de Richard Karp , "Reducibilidad entre problemas combinatorios", en el que demostró que 21 problemas diversos de combinatoria y teoría de grafos , cada uno tristemente célebre por su intratabilidad, son NP-completos. [ 1 ]

Karp demostró que cada uno de sus problemas era NP-completo al reducir otro problema (que ya se había demostrado que era NP-completo) a ese problema. Por ejemplo, demostró que el problema 3SAT (el problema de satisfacibilidad booleana para expresiones en forma normal conjuntiva (FNC) con exactamente tres variables o negaciones de variables por cláusula) era NP-completo al mostrar cómo reducir (en tiempo polinomial) cualquier instancia de SAT a una instancia equivalente de 3SAT. [ 15 ]

Garey y Johnson presentaron más de 300 problemas NP-completos en su libro Computers and Intractability: A Guide to the Theory of NP-Completeness [ 16 ] y aún se siguen descubriendo nuevos problemas que se encuentran dentro de esa clase de complejidad.

Aunque muchos casos prácticos del problema SAT pueden resolverse mediante métodos heurísticos , la cuestión de si existe un algoritmo determinista de tiempo polinomial para SAT (y, por consiguiente, para todos los demás problemas NP-completos) sigue siendo un problema famoso sin resolver, a pesar de décadas de intensos esfuerzos por parte de teóricos de la complejidad, lógicos matemáticos y otros. Para más detalles, véase el artículo «El problema P frente al problema NP» .

Referencias

  1. 1 2 3 Karp, Richard M. (1972). «Reducibilidad entre problemas combinatorios». En Raymond E. Miller; James W. Thatcher (eds.). Complejidad de los cálculos informáticos . Nueva York: Plenum. pp. 85–103 . ISBN  0-306-30707-3.
  2. Cook, Stephen (1971). «La complejidad de los procedimientos de demostración de teoremas» . Actas del Tercer Simposio Anual de la ACM sobre Teoría de la Computación . págs. 151–158 . doi : 10.1145/800157.805047 . ISBN  9781450374644. S2CID 7573663 . 
  3. TP Baker; J. Gill; R. Solovay (1975). "Relativizaciones de la cuestión P = NP". SIAM Journal on Computing . 4 (4): 431– 442. doi : 10.1137/0204037 .
  4. Dekhtiar, M. (1969). "Sobre la imposibilidad de eliminar la búsqueda exhaustiva al calcular una función en relación con su gráfica". Actas de la Academia de Ciencias de la URSS (en ruso). 14 : 1146–1148 .
  5. ^ Levin, Leonid (1973). "Универсальные задачи перебора" [ Problemas de búsqueda universal ] . Problemas de transmisión de información (en ruso). 9 (3): 115-116 .Traducido al inglés por Trakhtenbrot, BA (1984). "Un estudio de los enfoques rusos de los algoritmos perebor (búsquedas por fuerza bruta)". Anales de la Historia de la Computación . 6 (4): 384– 400. doi : 10.1109/MAHC.1984.10036 . S2CID 950581 . Para ver la traducción, consulte el apéndice, págs. 399-400.
  6. Esta columna utiliza la notación O grande .
  7. El número de literales en cada cláusula no depende denorte{\displaystyle n}, excepto por la última fila de la tabla, que conduce a una cláusula conO(pag(norte)){\displaystyle O(p(n))}literales.
  8. Claus-Peter Schnorr (enero de 1978). "La satisfacibilidad es cuasilineal completa en NQL" (PDF) . Journal of the ACM . 25 (1): 136–145 . doi : 10.1145/322047.322060 . S2CID 1929802 . 
  9. Nicholas Pippenger y Michael J. Fischer (abril de 1979). "Relaciones entre medidas de complejidad" (PDF) . Journal of the ACM . 26 (2): 361– 381. doi : 10.1145/322123.322138 . S2CID 2432526 . 
  10. John Michael Robson (febrero de 1979). Una nueva prueba de la completitud NP de la satisfacibilidad . Actas de la 2.ª Conferencia Australiana de Ciencias de la Computación . págs. 62–70 . 
  11. John Michael Robson (mayo de 1991). "UnO(TregistroT){\displaystyle O(T\log T)}reducción de cálculos de RAM a satisfacibilidad" . Theoretical Computer Science . 82 (1): 141– 149. doi : 10.1016/0304-3975(91)90177-4 .
  12. Stephen A. Cook (enero de 1988). "Las fórmulas proposicionales cortas representan cálculos no deterministas" (PDF) . Information Processing Letters . 26 (5): 269– 270. doi : 10.1016/0020-0190(88)90152-4 .
  13. Gary L. Peterson; John H. Reif (1979). "Alternancia de varias personas" . En Ronald V. Book; Paul Young (eds.). Actas del 20.º Simposio Anual sobre Fundamentos de la Informática (SFCS) . IEEE. págs. 348–363 . 
  14. Gary Peterson; John Reif; Salman Azhar (abril de 2001). "Límites inferiores para juegos multijugador no cooperativos de información incompleta" . Computers & Mathematics with Applications . 41 ( 7–8 ): 957–992 . doi : 10.1016/S0898-1221(00)00333-3 .
  15. Primero, modifique la demostración del teorema de Cook-Levin, de modo que la fórmula resultante esté en forma normal conjuntiva, luego introduzca nuevas variables para dividir las cláusulas con más de 3 átomos. Por ejemplo, la cláusula(ABdoD){\displaystyle (A\lor B\lor C\lor D)}puede ser reemplazado por la conjunción de cláusulas(ABZ)(¬ZdoD){\displaystyle (A\lor B\lor Z)\land (\lnot Z\lor C\lor D)}, dóndeZ{\displaystyle Z}es una nueva variable que no se utilizará en ninguna otra parte de la expresión. Las cláusulas con menos de tres átomos pueden rellenarse; por ejemplo,(AB){\displaystyle (A\lor B)}puede ser reemplazado por(ABB){\displaystyle (A\lor B\lor B)}.
  16. Garey, Michael R.; Johnson , David S. (1979). Computers and Intractability: A Guide to the Theory of NP-Completeness . Serie de libros en ciencias matemáticas (1.ª ed.). Nueva York: WH Freeman and Company . ISBN  9780716710455. MR 0519066 . OCLC 247570676 .