la conjetura de cook (¿p = np?). parte i: lo básico

31
La Gaceta de la RSME, Vol. 15 (2012), Núm. 1, Págs. 117–147 117 La Columna de Matemática Computacional Sección a cargo de Tomás Recio La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico por Luis M. Pardo * Resumen. Estas páginas son una modesta contribución a la difusión sobre la Conjetura de Cook, que también puede denominarse de Cook-Levin-Karp, por sus progenitores. En lo esencial, son un extracto de las notas distribuidas entre los participantes de las Jornadas Científicas sobre los Problemas del Milenio, celebradas en Barcelona entre el 1 y el 3 de junio de 2011, dentro del programa del Centenario de la RSME. A petición del editor, el resumen de las notas ha sido dividido en dos partes, estando esta primera parte dedicada a temas básicos. La segunda parte estará dedicada a temas más avanzados (como las clases de algoritmos aleatorios (BPP, ZPP), las clases de espacio (PSPACE, PH, P/poly), así como los resultados sobre interactividad). La Conjetura de Cook es el problema abierto de informática teórica más popular entre la comunidad matemática desde su inclusión en la lista de Pro- blemas de la Fundación Clay. Hay excelentes referencias sobre el tema, algunas de las cuales serán comentadas al final de esta Parte I. Ninguno de los dos ma- nuscritos contiene material original, ni lo pretende. El lector iniciado puede comenzar por la Parte II directamente. «. . . En un mot, les calculs sont impraticables!!» É. Galois, 1832 1. Introducción Las Matemáticas Computacionales pueden considerarse como la actividad cien- tífica que vive en un territorio incierto entre la Matemática y la Informática. Esta * Financiado parcialmente por MTM2010-16051.

Upload: others

Post on 08-Jul-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta de la RSME, Vol. 15 (2012), Núm. 1, Págs. 117–147 117

La Columna de Matemática ComputacionalSección a cargo de

Tomás Recio

La Conjetura de Cook (¿P = NP?).Parte I: Lo Básico

por

Luis M. Pardo∗

Resumen. Estas páginas son una modesta contribución a la difusión sobre laConjetura de Cook, que también puede denominarse de Cook-Levin-Karp, porsus progenitores. En lo esencial, son un extracto de las notas distribuidas entrelos participantes de las Jornadas Científicas sobre los Problemas del Milenio,celebradas en Barcelona entre el 1 y el 3 de junio de 2011, dentro del programadel Centenario de la RSME. A petición del editor, el resumen de las notasha sido dividido en dos partes, estando esta primera parte dedicada a temasbásicos. La segunda parte estará dedicada a temas más avanzados (como lasclases de algoritmos aleatorios (BPP, ZPP), las clases de espacio (PSPACE,PH, P/poly), así como los resultados sobre interactividad).

La Conjetura de Cook es el problema abierto de informática teórica máspopular entre la comunidad matemática desde su inclusión en la lista de Pro-blemas de la Fundación Clay. Hay excelentes referencias sobre el tema, algunasde las cuales serán comentadas al final de esta Parte I. Ninguno de los dos ma-nuscritos contiene material original, ni lo pretende. El lector iniciado puedecomenzar por la Parte II directamente.

«. . . En un mot, les calculs sont impraticables!!»É. Galois, 1832

1. Introducción

Las Matemáticas Computacionales pueden considerarse como la actividad cien-tífica que vive en un territorio incierto entre la Matemática y la Informática. Esta

∗Financiado parcialmente por MTM2010-16051.

Page 2: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

118 La Columna de Matemática Computacional

afirmación contrasta fuertemente con la creencia unidireccional, dominante entre losmatemáticos más tradicionales, de que la Informática es solamente un instrumentoque ejecuta los algoritmos, procedimientos o programas, pensados desde la Mate-mática y orientados a aplicaciones en otros ámbitos (de la Ciencia o la Tecnología)o incluso a la Matemática misma (instrumento «útil» contrastando conjeturas co-mo el Problema de los 4 Colores, la Conjetura de Riemann, o calculando dígitosdel desarrollo decimal de π). La Comisión, presidida por A. Wiles, que seleccionólos Problemas del Milenio, contradice frontalmente este pensamiento «tradicional»al seleccionar la pregunta «¿P = NP?» como uno de los 7 problemas que, en suopinión, más influenciarían las Matemáticas del siglo presente. Fue un acierto y unrasgo de sentido común, a veces poco común en este tipo de Comisiones.

Y es que el territorio incierto de la interacción entre Matemáticas e Informáticano es, ni puede ser, unidireccional. Si así fuera, la Matemática estaría renunciandoa uno de los proveedores más generosos, en términos mercantilistas, de problemascientíficos, desde la Teoría de las Fluxiones de Newton. Ya en las lista de Wilesencontramos dos problemas relacionados con la interacción entre Matemáticas eInformática: además de la Conjetura de Cook, la lista contiene el problema de laexistencia de algoritmos para eliminación de cuantificadores existenciales sobre va-riedades abelianas, por ejemplo. Un ejemplo aún más notable de la Informática comoproveedor de problemas es la lista de 18 Problemas para el siglo XXI, propuestos porS. Smale en [35]. La lista de la Comisión Wiles, del Instituto Clay, está esencialmentesubsumida en la de Smale y ambas contienen la Conjetura de Cook. Si acaso, puededestacarse un mayor énfasis en los Fundamentos de las Matemáticas Computaciona-les (FoCM) como «leitmotiv» de la lista de Smale. Ambas listas ya tienen problemasresueltos: así, destacaremos la resolución de la Conjetura de Poincaré, presente enambas listas, por G. Perelman; y la resolución de los Problemas 12 (en [11]), 14 (en[36]) y 17 ([7], [9] y el survey [8]). En ambas sigue, imperturbable, la Conjetura deCook como problema abierto.

La atracción por todo problema matemático es, obviamente, subjetiva y depen-diente de modas y épocas. Pero hay algo que hace de esta pregunta (¿P= NP?), yde todas aquellas que surgen en la interacción entre Matemáticas y Computación,un sujeto especial en la historia de la aplicabilidad de la Matemática: es una pre-gunta matemática procedente, aparentemente, de otro ámbito: la Informática. Sinembargo, la historia nos muestra cómo la Informática no es sino la traslación a larealidad de modelos abstractos (sobre todo de A. Turing), de naturaleza puramentematemática. Así, por vez primera en la historia, no es la matemática la que intentamodelizar la realidad, sino que es la realidad la que trata de imitar a la abstracciónmatemática y, por ende, el papel del conocimiento matemático se ve reforzado poreste tipo de problemas. Por ello nos parece especialmente significativo que estos as-pectos no sean contemplados en la formación habitual de un matemático, ni en lospasados modelos de formación de licenciados ni en los actuales modelos de grados yposgrados.

Como señalábamos arriba, de entre todos los problemas matemáticos con inspi-ración informática, el abanderado es la Conjetura de Cook, que se puede «encriptar»fácilmente (según el código introducido en [24]) como sigue:

Page 3: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 119

Problema Abierto 1 (Conjetura de Cook). Decidir si el contenido siguiente esestricto:

P ⊆ NP.

En otras ocasiones lo encontramos bajo la forma ¿P = NP? o, incluso, P 6= NP.Trataremos a continuación, de manera muy sucinta, de formalizar este enunciado.

En este punto debemos señalar un matiz importante en la concepción de estasnotas que el lector tiene en sus manos. Existen excelentes resúmenes —de poco másde dos páginas— que exponen el enunciado del problema subyacente a la Conjetura.Estos resúmenes, por mor de divulgativos, adolecen de una dificultad natural: la faltade formalismo preciso. Y es que resulta fácil, con una definición imprecisa, establecerformas diversas del enunciado del problema, habilitando respuestas casi inmediataso preguntas tan duras como la original. Basta con interpretar la competencia entredeterminismo e indeterminismo en el contexto de las máquinas (de Turing) de Blum,Shub y Smale, con especificaciones restrictivas, para encontrar respuestas de maneracasi inmediata que, sin embargo, no aportan gran cosa a la Conjetura original. Otrosejemplos de interpretaciones alteradas se exhiben en el Teorema 35, en el contextode máquinas de Turing con oráculos. Obviamente, pretender precisión formal en untexto corto supone perder agilidad, dinamismo y fuerza en el mismo.

La Conjetura de Cook pertenece al ámbito de la Complejidad Computacional.No es la Conjetura de Cook ni el único ni, posiblemente, el más relevante problemaabierto en Complejidad Computacional, pero sí es el que más ha llamado la atencióndel público. La Complejidad Computacional es una noción casi reciente para la Ma-temática. Parte del principio obvio de que no basta con disponer de un algoritmo queresuelva un problema. Se necesita, además, que el comportamiento del algoritmo (entérminos de tiempo de ejecución y espacio/memoria requeridos) sea «razonable» enrelación con el tiempo de vida humano y la velocidad de las máquinas disponibles. Esrelativamente sencillo diseñar problemas matemáticos cuyo tiempo de ejecución su-pere todas las expectativas de vida del Universo (en su modelo actual) o, incluso, delnúmero total de partículas existentes en él. Ejemplos en eliminación de cuantificado-res (tanto en el caso de cuerpos reales como de cuerpos algebraicamente cerrados) oproblemas de pertenencia a ideales del anillo de polinomios, rápidamente requierentiempo doblemente exponencial y/o espacio expo-polinomial (véanse [30], [14], o [32],por ejemplo, sobre la complejidad de los problemas de Eliminación Geométrica).

Interpretemos estos resultados a la luz del ordenador más rápido existente. Se-gún el Top500, en 2011 estamos hablando del ordenador chino Tianhe-1A, cuyavelocidad máxima se puede estimar en unas 232 ≡ 4 · 1015 operaciones bit por se-gundo. Esto significa que para n = 10 variables (lo que representa menos de un «toyexample»), el tiempo de ejecución de cualquier algoritmo de eliminación de cuanti-ficadores sobre cuerpos algebraicamente cerrados en el Tianhe-1A es de 2940 años,lo que en una formulación más comprensible, significa que supera los 2920 millonesde años. . . Un ejemplo mucho más simple, sin trascendencia, podría ser la ejecuciónde un algoritmo de exponenciación. Tomando z = 2, iniciando en i = 1 y repitiendoel proceso «elevar al cuadrado» 158 veces, uno obtiene 22158 . En algún momento desu ejecución Tianhe-1A deberá escribir los dígitos de 22158 , lo que le exigirá realizar

Page 4: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

120 La Columna de Matemática Computacional

aproximadamente 2158 operaciones bit, lo que le supondrá, obvia división (veloci-dad := espacio/tiempo), un tiempo de unos 2100 años, lo cual no es muy esperanzadorpara quien quiera ver el resultado de estos cálculos en ese ordenador.

El lector podría pensar que el término «Computacional» hace imposible la exis-tencia de antepasados matemáticos de la noción, previos a la era digital en la quevivimos. Nada más lejos de la verdad. Si hemos de cumplir con la historia habráque darle a E. Galois la paternidad del concepto, dado que es él quien primero es-cribe, negro sobre blanco, la cuestión de la tratabilidad algorítmica de un problema;aunque, ciertamente, la preocupación por la realización de cálculos «complejos» (amano, obviamente) subyace a mucha de la algorítmica anterior. En sus memorias,transcripción de su testamento la víspera del famoso duelo, podemos leer

«. . . Si maintenant vous me donnez une équation que vous aurez choisieà votre gré et que vous désiriez connaître si elle est ou non soluble parradicaux, je n’aurai rien à y faire que de vous indiquer le moyen derépondre à votre question,. . . sans vouloir charger ni moi ni personne dele faire. En un mot, les calculs sont impraticables!!. . . »1

En realidad Galois se refiere a un problema cuyos algoritmos tratables tardaránaún 150 años en aparecer: la factorización de polinomios univariados por algoritmostratables, que demostrarán A.K. Lenstra, H.W. Lenstra y L. Lovász en 1981 ([28])y su generalización a extensiones finitas de cuerpos primos. Con todo, ya en el sigloXIX aparece el primer resultado sobre la complejidad de un problema: G. Lamé2

demuestra en 1844 que el número de divisiones realizadas por el algoritmo de Eu-clides para hallar el máximo común divisor de dos número enteros está acotado porel máximo de sus tallas (en codificación binaria o decimal), que es el máximo desus logaritmos. En otras palabras, no conviene usar factorización sino algoritmo deEuclides para el cálculo del máximo común divisor de dos números enteros. Asuntoeste que no parece claro a quienes diseñan la formación escolar en Matemáticas (enprimaria o secundaria) donde se enseña, con total naturalidad, a usar un algorit-mo «intratable» —factorización de enteros— y se omiten algoritmos tratables desdehace casi 2500 años.

Volviendo a la Conjetura de Cook, digamos que la relevancia de esta preguntareposa sobre un trípode socio-cultural. En primer lugar está el ya mencionado as-pecto de su presencia como Problema Abierto en dos de las listas más relevantespara las Matemáticas del siglo XXI.

En segundo lugar podemos pensar en la relativa simplicidad del enunciado, fren-te a la dureza de su resolución. Hordas de especialistas en Informática Teórica hanatacado el problema, algunos con resultados muy significativos que, sin embargo, nohan roto la barrera de la respuesta (entre ellos destaca el PCP-Theorem del que

1«. . . Si me diera usted una ecuación de su elección y usted deseara saber si es o no resolublepor radicales, yo no tendría nada que hacer salvo indicarle el medio de responder a su pregun-ta,. . . sin querer encargarme ni encargar a nadie de hacerlo. En una palabra, ¡los cálculos sonimpracticables!. . . »

2G. Lamé, Note sur la limite du nombre des divisions, C. R. Acad. Sci. Paris, Ser. A-B 19(1844), 867–869.

Page 5: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 121

hablaremos en la Parte II). Se trata de un Problema difícil para el que, según laopinión de muchos, la Matemática aún no está preparada. Personalmente, tiendo acreer (como la mayoría) en la respuesta negativa, aun sin tener una razón conscientepara defenderla. De todos modos, la mayoría de las revistas especializadas se ven,en muchas ocasiones, superadas por la ingente cantidad de producción que pretendehaber resuelto la Conjetura (en un sentido o en el otro) con argumentos desubicadoso, directamente, sin argumentos. Gestionar esa producción hipertrofiada lleva a po-líticas editoriales muy restrictivas con las propuestas de publicación que reciben entorno a estas preguntas (véase, por ejemplo, la restrictiva decisión del Journal of theAssoc. Comput. Mach., http://jacm.acm.org/, la principal revista científica de laasociación profesional de informática más influyente, por ejemplo).

El tercer punto de apoyo para el interés de la Conjetura de Cook es una suertede ubicuidad que ya estaba presente desde el mismo momento de su irrupción. Amodo de ejemplo, el clásico [18] ya incluye más de 350 ejemplos de problemas NP-completos provenientes de ámbitos que van desde la Lógica a la Teoría de Grafos,la Optimización o la Teoría de Números. Fácilmente se añaden más tarde ejemplosprovenientes del Álgebra Conmutativa, la Geometría Algebraica, el Análisis Numé-rico, la Geometría Diofántica, la Criptografía, los Códigos Correctores de Errores ola Teoría de Juegos, por poner solo unos ejemplos.

Es fácil trazar hacia el pasado los antecedentes de la Conjetura de Cook en lahistoria de las Matemáticas. El referente histórico natural es el Teorema de los Cerosde Hilbert-Kronecker (HN :=Hilbert Nullstellensatz). Por ejemplo, en su versióncomo Identidad de Bézout, toma la forma siguiente:Teorema 1 (Hilbert Nullstellensatz). Sea K un cuerpo y K su clausura algebraica.Sean dados f1, . . . , fm ∈ K[X1, . . . , Xn] polinomios con coeficientes en K y sea ael ideal que generan en el anillo K[X1, . . . , Xn]. Definamos V (a) ⊆ Kn la variedadde sus ceros, es decir, V (a) := {x ∈ Kn : f(x) = 0, ∀f ∈ a}. Entonces sonequivalentes V (a) = ∅ y 1 /∈ a. O, dicho de otra forma, V (a) = ∅ si y solamente siexisten g1, . . . , gm ∈ K[X1, . . . , Xn], tales que

1 = g1f1 + · · ·+ gmfm. (1)

Este enunciado es doblemente debido a D. Hilbert3 y L. Kronecker4. Lo quese pretende es esencialmente controlar si las ecuaciones f1 = 0, . . . , fm = 0 sonsatisfactibles sobre la clausura algebraica K del cuerpo de coeficientes. Es decir,como ya cita [35] en su formalización de la Conjetura de Cook, se trata de dar unalgoritmo que resuelva de manera tratable el siguiente problema:Problema 2 (Decisión en el Nullstellensatz). Dados polinomios f1, . . . , fs en elanillo C[X1, . . . , Xn], decidir si

∃x := (x1, . . . , xn) ∈ Cn, f1(x) = 0, . . . , fs(x) = 0.3D. Hilbert, Über theorie der Algebraischen Formen, Math. Ann. 36 (1890), 473–534.4L. Kronecker, Grundzüge einer arithmetischen theorie de algebraischen grössen, J. reine

angew. Math. 92 (1882), 1–122.

Page 6: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

122 La Columna de Matemática Computacional

Si alguien quisiera argumentar que, al contrario que Kronecker, Hilbert no estáinteresado en la algorítmica subyacente, bastaría con remitirle a la tesis de su propiaalumna G. Hermann, quien dedica su disertación doctoral al Nullstellensatz Efecti-vo5 que conducirá, a los algoritmos para el tratamiento simbólico del Nullstellensatzy el Problema de Consistencia (dentro de los Métodos Efectivos en Geometría Alge-braica), a posteriores estudios con estimaciones más finas tanto en el caso Efectivo(estimaciones de grado) como en el Aritmético (estimaciones de tallas de coeficientesen el caso diofántico y racional).

De hecho, el principal enunciado en [13] («3SAT es NP-completo») consiste endemostrar que el Nullstellensatz de Hilbert es NP-duro y que un subproblema suyoes NP-completo. Basta con suponer, por ejemplo, que los grados están acotadospor 3, que el cuerpo dado es un cuerpo finito K = F2 = {0, 1} y que la lista deecuaciones dadas incluye como sublista la lista {X2

1 −X1 = 0, . . . , X2n −Xn = 0}.6

A sabiendas de que esta no es la presentación más habitual de la Conjeturade Cook, es apropiado señalarlo, tanto por ser el antecedente natural matemático,no siempre reconocido, como por destacar la forzada distancia que informáticosteóricos y matemáticos gustan de interponer entre sus respectivos «dominios» deconocimiento.

Pero para tener una buena modelización de la Conjetura de Cook necesitamosun mayor detalle y precisión en las nociones involucradas. Así, dedicaremos buenaparte de esta primera entrega a fijar con detalle lo que es inhabitual en la formacióndel matemático: las nociones de máquina de Turing, las funciones de complejidaden tiempo y en espacio y las clases que determinan. Posteriormente introduciremosalgunos ejemplos de problemas NP-completos.

2. La Noción de Máquina de Turing

La historia del origen de la Informática está fuertemente ligada al Décimo Pro-blema de Hilbert, al surgimiento de las nociones de algoritmo e, incluso, a la Cripto-grafía y a la Segunda Guerra Mundial (con la aparición de los primero ordenadoresColossus I y II, creados en Bletchley Park y destruidos al final de la contienda).Siendo una historia entretenida, ha dejado mucho rastro escrito, por lo que deja-remos para otro texto su desarrollo, pero conservaremos un hecho sustancial. Losprimeros ordenadores se crean con la intención de acelerar la capacidad de cálcu-lo del ser humano y, para ello, se toman como modelos los de la máquina que, ala sazón, Alan Turing había introducido tras el éxito espectacular de los Teoremasde Incompletitud e Indecidibilidad de K. Gödel. La realidad imita a la abstracciónpor vez primera de la historia de la Humanidad. Desde entonces hasta la fecha, lasarquitecturas y estructuras internas de los ordenadores han preservado el mismocamino: desde la abstracción a la realidad, cuando sea posible. Cada vez son mejores

5Véase G. Hermann, Die Frage der endlich vielen Schritte in der Theorie der Polynomideale,Math. Ann. 95 (1926), 736–788.

6Es decir, el principal enunciado de la Conjetura de Cook (del que irán derivando todos los de-más) no es sino una pregunta relativa a la complejidad computacional de una subclase de instanciasdel Nullstellensatz de Hilbert, con grado acotado, sobre un cuerpo finito.

Page 7: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 123

y más eficientes. . . pero mantienen como estructura la establecida en la definiciónde Turing. Incluso cuando, en tiempos más recientes, se habla de la posibilidad dediseñar ordenadores cuánticos, el modelo matemático antecede a la realidad e, in-cluso, los análisis de complejidad de algoritmos potencialmente implementables enordenadores cuánticos (la factorización de primos en tiempo polinomial anunciadapor Shor es un ejemplo) anteceden la mera existencia de tales objetos. Por tanto, lamáquina de Turing sigue siendo el modelo por antonomasia, el patrón y la unidad demedida de la computación. Esto refuerza el papel de la Matemática: solo desde ellase pueden analizar los modelos abstractos y, por tanto, una realidad que imita inten-cionalmente a esa abstracción. Es un caso inaudito en la historia de la interacciónentre matemática y «realidad» física.

Para abordar la resolución del Décimo Problema de Hilbert, unos pocos matemá-ticos han decidido tratar el problema en el sentido opuesto: si no se conoce la nociónde algoritmo, poco o nada se puede reflexionar sobre el Décimo Problema. Por tan-to, es sobre la noción de algoritmo sobre la que vuelcan sus esfuerzos. En 1916, elmatemático noruego A. Thue introduce sus sistemas de reescritura que serán prontovistos como insuficientes para modelizar el concepto de algoritmo, aunque serán re-cuperados por Chomsky para su clasificación de los lenguajes formales (gramáticasformales).

Es hacia mediados de los años 30, cuando dos figuras relevantes aparecen parafijar la noción de algoritmo: el austríaco K. Gödel y el británico A. Turing. Rodeadospor las figuras de A. Church y su alumno S.C. Kleene.

K. Gödel elabora su famosa tesis (23 páginas) en la que demuestra la Incom-pletitud de la Teoría Elemental de Números.7 Aquí Gödel usa por primera vez unanoción que tiende a las funciones computables (él las llamó «rekursiv»). Hoy lasllamamos «funciones primitivas recursivas», i.e. sin el operador de minimización.

Durante los años 30, K. Gödel visita Princeton varias veces, hasta su trasladodefinitivo en 1940. En 1934, durante una de sus visitas, dio una charla cuyas notascircularon. Estas notas fueron tomadas por S.C. Kleene y Rosser, quienes, a lasazón, completaban sus estudios de doctorado bajo la dirección de A. Church.8 Enesta conferencia, Gödel introduce la noción de computabilidad efectiva. Notó queformas más generales de recursión deberían ser admitidas antes de que sus funciones«rekursiv» pudieran cubrir todo lo computable. Así definió una clase que llamó«funciones generales recursivas» (al parecer, sugerido por una carta de Herbrand).Había nacido la noción de algoritmo.

A. Church dirige la tesis de S.C. Kleene sobre una noción de recursividad al-ternativa a la noción introducida por Gödel. Se trata de la noción de λ-calculus.En los trabajos de Kleene9 y Church10 demuestran que su noción de algoritmo y la

7Véase la publicación del trabajo K. Gödel, Über formal unentscheidbare Sätze der PrincipiaMathematica und verwandter Systeme, I, Monatsh. Math. Phys. 38 (1931), 173–198.

8Las notas fueron publicadas en K. Gödel, On undecidable propositions of formal mathematicalsystems, The undecidable, Basic Papers on Undecidable Propositions, Unsolvable Problems andComputable Functions, Raven Press, Hewlett, NY, 1965, 41–71.

9S.C. Kleene, λ-definability and recursiveness, Duke Math. J. 2 (1936), 340–353.10A. Church, An unsolvable problem of elementary number theory, Am. J. Math. 58 (1936),

345–363.

Page 8: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

124 La Columna de Matemática Computacional

noción propuesta por K. Gödel son exactamente la misma. Está naciendo la Tesisde Church.

Por su parte, A. Turing basó gran parte de su investigación en la interacciónentre Matemáticas y la naciente Informática. Por ejemplo, en su trabajo de 1948,A. Turing11 introducirá la noción de condicionamiento del Álgebra Lineal Numérica,convirtiéndose en el fundador del Álgebra Lineal Numérica moderna (en los textosal uso se concede la prioridad a J. von Neumann y colaboradores o a autores comoWilkinson, olvidando la contribución esencial de Turing).

A. Turing publicaba su modelo en su trabajo de 193612 orientado a los númerosreales «definibles» (recursivamente enumerables) y, como Gödel, fue invitado a visi-tar Princeton entre 1936 y 1938, donde defenderá su tesis introduciendo las máquinasde Turing con oráculos. Probó en un apéndice la equivalencia entre su modelo y laλ-definibilidad. De hecho, dos son las aportaciones fundamentales de Turing en estetrabajo del 36. De una parte, la introducción de una nueva definición de algoritmo(máquinas de Turing) y, de otro, el resultado de autorreducibilidad basado en laMáquina Universal.

Emil Post también introdujo su modelo de cálculo en 1936, que resultó equiva-lente al de Turing,13 cuyo formalismo ha influenciado fuertemente los introducidosa posteriori. Post llegó a describir la tesis de Church como una ley natural, «undescubrimiento fundamental» concerniente a «the mathematizing power of HomoSapiens». Así, la Tesis de Church toma la forma siguiente:Definición 3 (Tesis de Church). Llamaremos computable a toda función calculablepor alguno de los siguientes métodos equivalentes de caracterización:

Calculable por una máquina de Turing,es un función general recursiva,es λ-definible,es Post-calculable,

o calculable por cualquier otro procedimiento equivalente a alguno de estos.

2.1. Máquina de Turing: Definición

De las distintas nociones que subyacen a la Tesis de Church, la máquina de Turingtiene la mayor simplicidad definitoria y refleja fielmente los ordenadores físicos; seconvierte así en el Patrón, en la unidad de medida. En este sentido, la máquina deTuring es el entorno matemático natural para el diseño y análisis de los algoritmos.

Comencemos definiendo el monoide de las palabras sobre un alfabeto. Dado unconjunto finito Σ (alfabeto), consideramos el conjunto de las palabras sobre Σ como

11A. Turing, Rounding-off errors in matrix processes, Quart. J. Mech. Appl. Math. 1 (1948),287–308.

12A. Turing, On computable numbers, with an application to the Enscheidungspoblem, Proc.London Math. Soc., Ser. 2, 42 (1936), 230–265.

13Véase E. Post, Finite Combinatory processes – formulation I, J. Symbolic Logic 1, (1936),103–105.

Page 9: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 125

el conjuntoΣ∗ :=

⋃k∈N

Σk.

Es un monoide con la operación adjunción de palabras y la palabra vacía λ ∈ Σ0 es elelemento unidad. Para cada palabra x ∈ Σ∗ denotaremos por |x| su talla (o longitud)(i.e. x ∈ Σk se reescribe |x| = k). Nótese que λ es la única palabra de longitud 0.Los subconjuntos de Σ∗ se denominarán, conforme a la tradición, lenguajes.Definición 4. Llamaremos máquina de Turing indeterminista (con una sola cintade Input (IT), en la que autorizamos solamente lectura, y con k cintas de trabajo(WTi, 1 ≤ i ≤ k)) a todo quíntuplo M := (Σ, Q, q0, F, δ) donde(1). Σ es un conjunto finito (alfabeto),(2). Q es un conjunto finito (espacio de estados),(3). q0 ∈ Q es el estado inicial,(4). F ⊆ Q son los estados finales aceptadores, F1 ⊆ Q son los estados finales de

rechazo.(5). Una correspondencia (llamada función de transición)

δ : Q× (Σ)k −→ Q× (Σ)k × {−1, 0, 1}k+1.

Si δ es un aplicación, la máquina de Turing M se denomina determinista.Para entender la dinámica de una máquina de Turing introduciremos en el si-

guiente epígrafe el concepto de sistema de transición asociado.

2.2. El Modelo Gráfico y el Sistema de Transición

Para cada máquina de TuringM = (Σ, Q, q0, F, δ) consideraremos un grafo orien-tado infinito (SM ,→M ), que denominaremos sistema de transición y que representala acción (dinámica) de una máquina de Turing. Los elementos de SM se denominanconfiguraciones (o snapshots) de la máquina M y representan la imagen de la má-quina en un instante determinado. Las configuraciones vienen dadas por la siguientedefinición:

SM ⊆ Q× (Σ∗)k+2 × (N)k+2.

Si denotamos

C := (q, x, y1, . . . , yk, yk+1, n0, n1, . . . , nk) ∈ Q× (Σ∗)k+2 × (N)k+2,

diremos que C ∈ SM si y solamente si se verifican las propiedades siguientes:q ∈ Q es un estado (el estado de la configuración).x := x1 . . . xn ∈ Σ∗.Para cada i, 1 ≤ i ≤ k, yi := yi,1 . . . yi,si

∈ Σ∗.n0, n1, . . . , nk ∈ N son las posiciones de las unidades de control, 0 ≤ ni ≤ si+1,1 ≤ i ≤ k y 0 ≤ n0 ≤ n+ 1.

Page 10: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

126 La Columna de Matemática Computacional

2.2.1. Modelo gráfico de una máquina de Turing

A menudo se usa una imagen gráfica de configuraciones como se indica en el dibu-jo siguiente. Disponemos de una cinta de input y k cintas de trabajo. Cada cinta estádividida en unidades de memoria (o celdas) que son capaces de contener un símbolodel alfabeto Σ (o el símbolo auxiliar .). Cada cinta tiene adosada una unidad de con-trol, con una memoria finita. En esa unidad de control podemos guardar un estado(i.e. las unidades de control pueden almacenar una cantidad finita de información).La configuración C anterior queda descrita mediante la figura siguiente:

IT := | . | x1 | · · · | xn0 | · · · | · · · | xn | $ · · ·↑q

WT1 := | . | y1,1 | · · · | · · · | y1,n1 | · · · | y1,m1 | $ · · ·↑q

...

WTk := | . | yk,1 | · · · | yk,nk| · · · | · · · | y1,m1 | $ · · ·

↑q

El estado q es el indicador de la fase de cálculo en la que nos encontramos,almacenado en las unidades de control (todas con el mismo estado, aunque endiferentes posiciones).Cada unidad de control está señalando una celda de cada cinta (ni representael lugar señalado por la unidad i). Es el número del registro de memoria quedebemos atender en la fase de Lectura.Las cintas representan una partición del disco duro en k+1 trozos. La informa-ción completa contenida en el disco duro no será utilizada simultáneamente,solo la señalada por las unidades de control.El símbolo auxiliar . es el cursor : indica el principio de cinta.

2.2.2. Un paso de cálculo

Cuando una máquina de Turing se encuentra frente a una configuración como ladescrita por la representación gráfica anterior, actúa del modo siguiente, teniendoen cuenta que hay que dividir su acción en cinco etapas (el conjunto de todas ellasconfigura un paso de cálculo o, en términos coloquiales, una operación bit): Parada,Lectura, Transición, Escritura, Movimientos.

Page 11: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 127

Parada. Se trata de verificar la Condición de Parada que viene marcada porlos estados finales del modo siguiente:

while el estado q no es un estado final aceptador (i.e. q /∈ F ) doLecturaTransiciónEscrituraMovimientos

endwhileOutput el contenido de la cinta de trabajo k-ésima.

Lectura. La fase de Lectura consiste en la recuperar los contenidos de las celdasde las cintas señalados por las unidades de control. Así, tras verificar la condiciónde parada, procedemos a «leer» los contenidos de las distintas cintas de trabajo:

Lectura := (q, xn0 , y1,n1 , . . . , yk,nk) ∈ Q× Σ∗.

go to Transición

Transición. La máquina acude con el resultado de Lectura a la función detransición δ. Se obtiene el resultado de la transición mediante:

Transición := δ(Lectura) = (q′, w1, . . . , wk, ε0, . . . , εk) ∈ Q×Σk×{−1, 0, 1}k+1.go to Escritura

Escritura. El proceso de escritura contiene dos etapas. La primera es cambiarel contenido de las unidades de control (esto es, cambiar el estado q que estaba en lasunidades de control por el nuevo estado q′). En la segunda se reemplaza el contenidode cada celda de cada cinta de trabajo (en el lugar donde estaba señalado) escribiendo(sustituyendo por) el símbolo wi:

Nuevo Estado: q := q′

for i = 1 to k do yi,ni := wi

odgo to Movimientos

Movimientos. Ahora se trata de mover las unidades de control conforme a lasreglas indicadas en la lista de movimientos (ε0, . . . , εk) ∈ {−1, 0, 1}k+1:

ε = −1 ≡ Un paso a la izquierdaε = 0 ≡ No te muevasε = 1 ≡ Un paso a la derecha

Así, las posiciones de las unidades de control se modifican mediante el proceso obvioni 7→ ni + εi, 0 ≤ i ≤ k + 1.

Page 12: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

128 La Columna de Matemática Computacional

El resultado de un paso (esto es, de las cuatro etapas descritas) es la configuración

C ′ := (q′, x, y′1, . . . , y′k;n′0, . . . , n′k),

dondeq′ es el nuevo estado,el input x no ha sido modificado,y′i es como yi salvo en el lugar ni, donde yi,ni

ha sido reemplazado por wi,las nuevas posiciones han sido cambiadas de acuerdo a los movimientos, estoes, n′i := ni + εi.

El lector interesado en comprender el concepto a través de lápiz y papel, bienpuede intentar diseñar una máquina de Turing que realice las operaciones elementales({+,−,×}) entre naturales en base 2 (i.e. sobre el alfabeto {0, 1}).

2.3. Algoritmos, funciones computables. Indecidibilidad

Dadas dos configuraciones C y C ′ de una máquina de Turing M , escribiremosC →M C ′ para denotar que C ′ se obtiene desde C en un paso de cálculo. EscribiremosC `M C ′ para denotar que C ′ se puede obtener de la configuración C en un númerofinito de pasos de cálculo de la máquina de Turing M (es decir, alcanzable por uncamino finito dentro del grafo del sistema de transición asociado).Definición 5 (Terminología Básica). Dada una palabra x ∈ Σ∗, llamaremos con-figuración inicial sobre x a la configuración

I(x) := (q0, .x, ., . . . , ., 1, . . . , 1) ∈ SM ,

esto es, aquella en la que todas las cintas de trabajo están vacías salvo la cinta deInput, donde aparece la palabra x. Las unidades de control están sobre el cursor paraempezar a trabajar.

Una palabra x ∈ Σ∗ se dice aceptada por una máquina de Turing M si, a partirde la configuración inicial I(x), se alcanza una configuración C (i.e. I(x) `M C)cuyo estado es un estado final aceptador (i.e. el estado de C está en F ). El conjuntode las palabras aceptadas por M se llama lenguaje aceptado por M y se denotapor L(M).

Si x ∈ L(M) (i.e. si existe C configuración final aceptadora tal que I(x) `M C),la máquina devuelve el contenido de la k-ésima cinta de trabajo de C, que denotamospor ResM (x) ∈ Σ∗. Se denomina resultado (output) de la máquina de Turing sobreel input aceptado x.Definición 6. Un lenguaje L ⊆ Σ∗ se llama recursivamente enumerable si es ellenguaje aceptado por alguna máquina de Turing (i.e. L = L(M) para alguna má-quina M). Se llama recursivo si tanto L como su complementario Σ∗ \L son recur-sivamente enumerables.Definición 7 (Funciones Computables). Una función computable es una funciónf : D(f) ⊆ Σ∗ −→ Σ∗ tal que existe una máquina de Turing M sobre Σ verificando

L(M) = D(f) ∧ ResM = f : L(M) ⊆ Σ∗ −→ Σ∗.

Page 13: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 129

2.3.1. La Máquina Universal y el Problema de Parada.

El objetivo de A. Turing, K. Gödel y A. Church consistió en mostrar ejemplosde problemas recursivamente enumerables que no son recursivos (i.e. problemas in-decidibles por métodos algorítmicos).Teorema 8 (A. Turing, 1936). Existe una máquina de Turing U sobre el alfabeto{0, 1} de tal modo que el lenguaje aceptado L(U) (Halting Problem) está formadopor los pares (cM , x) tales que:

cM es el código binario de una máquina de Turing M ,x es una palabra sobre el alfabeto de M tal que x es aceptada por M (i.e.x ∈ L(M)).

Además, el resultado de U sobre (cM , x) es el mismo que el resultado de M sobre x,i.e.

ResU (cm, x) = ResM (x), ∀x ∈ L(M).La máquina U se denomina la Máquina de Turing Universal.

Junto a esta Máquina Universal, A. Turing presentó el siguiente enunciado:Teorema 9 (Problema de Parada). El lenguaje HP ⊆ {0, 1}∗ es un lenguaje re-cursivamente enumerable que no es recursivo:

HP := {(cM , x) : x ∈ L(M)}.

La interpretación de estos dos resultados es la siguiente. En primer lugar, la má-quina de Turing universal es también el lenguaje al que se transfiere (técnicamentese compila, se interpreta) todo programa, escrito en algún lenguaje de programación,en cada máquina concreta. De otro lado, HP no es solo un ejemplo de problema irre-soluble algorítmicamente, sino que demuestra, además, que el sueño de la verificaciónde programas es indecidible.

3. Funciones y Clases de Complejidad

A mediados de los años sesenta, Hartmanis y Stearns inician la ideología delas funciones de tiempo y espacio sobre máquinas de Turing, como funciones deltamaño de la entrada. Otros trabajos fundacionales de la complejidad computacionalson M. Blum ([10]), J. Hartmanis y R. Stearns ([22]), M.O. Rabin ([33]). Casi enla misma época se establece la Tesis de Cobham-Edmonds (cf. [12], [15, 16])sobre los problemas tratables informáticamente. Salvo la potencial aparición de lacomputación cuántica, el modelo de máquina de Turing como modelo de complejidadpermanece. Las nociones básicas son las siguientes:Definición 10. Sea M una máquina de Turing sobre el alfabeto Σ.(1). Para x ∈ Σ∗, una palabra aceptada por la máquina M (i.e. x ∈ L(M) ⊆ Σ∗),

llamaremos tiempo de la máquinaM sobre el input x al número de operacionesbit (pasos de cálculo) que la máquina M realiza cobre la configuración inicialen x (i.e. I(x)) hasta que alcanza alguna configuración final aceptadora. Sedenota tal función por TM (x) ∈ N.

Page 14: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

130 La Columna de Matemática Computacional

(2). Dada una configuración C deM , se llama talla de la configuración (y se denotapor |C|) al número total de bits ocupados en las distintas cintas de trabajo dela longitud (i.e. las longitudes de las palabras almacenadas en las cintas detrabajo).

(3). Dada una palabra x ∈ L(M) ⊆ Σ∗, llamaremos espacio de trabajo consumidopor M sobre x al máximo de las tallas de las configuraciones intermedias quesurgen en la computación que comienza en I(x) y termina en alguna configu-ración final aceptadora. Se denota mediante SM (x) ∈ N.

Las frase «alguna configuración final aceptadora», usada en las definiciones deTM y SM está justificada por el indeterminismo. Dada una palabra x ∈ Σ∗, y dadala configuración inicial IM (x), podemos construir un grafo (potencialmente infinito)que tiene a IM (x) como raíz: se trata del subgrafo del sistema de transición asociadoa M formado por todas las posibles configuraciones alcanzables desde IM (x). En elcaso determinístico este grafo se reduce a un camino, mientras que en el caso indeter-minístico surge una estructura arbórea con diversos caminos de diversas longitudesposibles, algunos de los cuales alcanzan una configuración final aceptadora y otrasno. En el caso indeterminista seleccionamos el camino de longitud mínima. Siguien-do la ideología de Stearn y Hartmanis, definimos las funciones de complejidad comofunciones del tamaño de la entrada.Definición 11 (Complejidad del Caso Peor). Sea M una máquina de Turing sobreel alfabeto Σ. Definimos las funciones siguientes:(1). Función de Tiempo: tM : N −→ R+, dada mediante

tM (n) := max{TM (x) : x ∈ L(M), |x| ≤ n}.

(2). Función de Espacio: sM : N −→ R+, dada mediante

sM (n) := max{SM (x) : x ∈ L(M), |x| ≤ n},

Nótese que se trata de las funciones del peor caso posible en tiempo y espacio.En ocasiones se utilizan las funciones de complejidad en promedio para el análisisdel comportamiento de algoritmos; pero no incluiremos aquí esa discusión. Los pri-meros resultados naturales (argumentos de diagonalización) se pueden resumir en elsiguiente teorema (cf. [23] y [21]).Teorema 12. Existe una máquina de Turing universal U verificando el Teorema 8y tal que

TU (M,x) ≤ CMTM (x) log2 TM (x), SU (M,x) ≤ DMSM (x),

donde CM y DM son dos constantes que solo dependen del tamaño del código de M .Nos restringiremos a máquinas cuyas funciones de complejidad están acotadas

por funciones constructibles en tiempo o espacio.Definición 13 (Funciones Constructibles en Tiempo y/o en Espacio). Sea f : N −→N una función monótona.

Page 15: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 131

(1). Diremos que f es constructible en tiempo si existe una máquina de Turing de-terminista M sobre el alfabeto unario Σ := {1} tal que M termina su compu-tación en todos los inputs y tal que existe una constante c > 0 verificando que,para todo n ∈ {1}∗ = N, la máquina M calcula f(n) ∈ {1}∗ = N en tiempotM (n) ≤ cf(n).

(2). Diremos que f es constructible en espacio si existe una máquina de Turing de-terminista M sobre el alfabeto unario Σ := {1} tal que M termina su compu-tación en todos los inputs y tal que existe una constante c > 0 verificando que,para todo n ∈ {1}∗ = N, la máquina M calcula f(n) ∈ {1}∗ = N en espaciosM (n) ≤ cf(n).

Para k ∈ N fijo, son funciones constructibles en tiempo las polinomiales (t1(n) :=nk), expo-polinomiales (t2(n) := 2nk) o (t3(n) := nblog2 nck). Y también lo son, parac fijo, las exponenciales (t4(n) := 2c·n) o doblemente exponenciales (t5(n) := 22c·n).

Son funciones constructibles en espacio todas las constructibles en tiempo y,además, las poli-logarítmicas t(n) := blog2 nck, para k ∈ N fijo.

La restricción a cotas constructibles nos permite, por ejemplo, evitar la repeti-ción de configuraciones (ciclos en el sistema de transición) mediante la introducciónde contadores y sin incrementar los recursos de tiempo o espacio. Los siguientesresultados, más relevantes, también pertenecen a la colaboración entre Hartmanis,Stearns, Lewis y Heine:Proposición 14 (Independencia de Alfabetos y Número de Cintas). Se verifica:(1). Cambio de Alfabeto. Sean M y M1 dos máquinas de Turing que resuelven

el mismo problema, mediante el mismo algoritmo en diferentes alfabetos Σ y τ .Supongamos que ambos alfabetos tienen al menos dos elementos. Entonces, lasfunciones de tiempo y espacio se relacionan mediante la siguiente expresión:

tM1(n) ≤ O(n+ stM

(⌊ns

⌋)), sM1(n) ≤ O

(ssM

(⌊ns

⌋)),

donde O(·) es la notación estándar del análisis y s := log2 ](τ).(2). Cambio del número de cintas. Sea Σ un alfabeto finito y sea M :=

(Σ, Q, qo, F, δ) una máquina de Turing sobre el alfabeto Σ. Supongamos queM utiliza k cintas de trabajo. Entonces, existe una máquina de Turing M1sobre el mismo alfabeto con menos de 6 cintas de trabajo tal que se verificaL(M1) = L(M), ResM1 = ResM y las funciones de tiempo y espacio mantienenla siguiente relación:

tM1(n) ≤ O(tM (n) logs tM (n)), SM1(n) ≤ O(SM (n)).

Se complementan estos resultados con el siguiente par de teoremas centrales,debidos a [22].Teorema 15 (Tape Compression Lemma). Sea L ⊆ Σ∗ un lenguaje aceptado poruna máquina de Turing (determinística o no) usando espacio acotado por una fun-ción constructible en espacio, y sea c ∈ R, 0 < c < 1. Entonces, existe un alfabetoτ tal que Σ ⊆ τ , y una máquina de Turing M1 (del mismo tipo de determinismo)sobre el alfabeto τ , tal que L(Mc) = L, ResMc

= ResM y sMc(n) ≤ csM (n).

Page 16: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

132 La Columna de Matemática Computacional

Teorema 16 (Linear Speed-Up). Sea L ⊆ Σ∗ un lenguaje aceptado por una máquinade Turing (determinística o no) usando tiempo acotado por una función constructibleen tiempo, y sea c ∈ R, 0 < c < 1. Entonces existe un alfabeto τ tal que Σ ⊆ τ , yuna máquina de Turing (del mismo tipo de determinismo) sobre el alfabeto τ , talque L(Mc) = L, ResMc = ResM y sMc(n) ≤ 2n+ csM (n).

En otras palabras, salvo una constante, que se puede llamar la «constante delordenador», las funciones de complejidad en tiempo y espacio se clasifican solamenteen términos de la clase asintótica, esto es, las clases de funciones O(tM ) u O(sM ).Esto justifica el estudio de clases de complejidad (y sus relaciones) atendiendo a laasintótica. Como el alfabeto no es relevante se suele fijar el alfabeto Σ := {0, 1}.

3.1. Clases en Términos de Complejidad

Los problemas a clasificar son esencialmente los Problemas Decisionales. Unproblema decisional está determinado por un lenguaje L ⊂ Σ∗ sobre un alfabetofinito. Se trata de evaluar la función característica definida por L, esto es, la funciónχL : Σ∗ −→ {0, 1} dada mediante

χL(x) :={

1 si x ∈ L,0 en caso contrario.

Los problemas decisionales se clasifican como sigue:Definición 17 (Clases Determinísticas). Sea f : N −→ R+ una función monótonacreciente. Se definen:

DTIME(f) := {L ⊆ {0, 1}∗ : ∃M determinista, ResM = χL ∧ tM ∈ O(f)}.

DSPACE(f) := {L ⊆ {0, 1}∗ : ∃M determinista, ResM = χL ∧ sM ∈ O(f)}.

Admitiendo máquinas indeterminísticas en la Definición anterior, uno puedeanálogamente definir las clases indeterminísticas NTIME(f) y NSPACE(f).

Inmediatamente tenemos las siguientes relaciones:

DTIME(f) ⊆ NTIME(f), DTIME(f) ⊆ DSPACE(f) ⊆ NSPACE(f).

Y si f ∈ O(g), tendremos los contenidos

DTIME(f) ⊆ DTIME(g), NTIME(f) ⊆ NTIME(g),DSPACE(f) ⊆ DSPACE(g), NSPACE(f) ⊆ NSPACE(g).

Los Teoremas de Jerarquía de Tiempo y Espacio, debidos también a Stearns yHartmanis, justifican el uso del término «clasificación».Teorema 18 (Teorema de Jerarquía en Espacio). Sean s, s′ : N −→ N dos funcionesconstructibles en espacio y supongamos que s′ ∈ ω(s) (esto es, s′ /∈ O(s)). Entonces,

DSPACE(s′) \DSPACE(s) 6= ∅, NSPACE(s′) \NSPACE(s) 6= ∅.

Page 17: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 133

Teorema 19 (Teorema de Jerarquía en Tiempo). Sean t, t′ : N −→ N dos funcionesmonótonas crecientes y supongamos que t′ ∈ ω(t log t) y n ∈ O(t′). Entonces,

DTIME(t′) \DTIME(t) 6= ∅.

En otras palabras, la clasificación anterior es justa. Uno puede encontrar pro-blemas cuyo tiempo es una función polinomial O(n5) pero que no se resuelven entiempo O(n4), por ejemplo. Un resultado sorprendente de los primeros tiempos esel Teorema de Aceleración de M. Blum en [10]. Una «traducción» del enunciado deBlum es debida a B. Trakhtenbrot14 y A. Borodin15:Teorema 20 (Gap Theorem). Dada una función computable g : N −→ N, tal queg(n) ≥ n para cada n ∈ N, entonces existe una cota de tiempo T tal que DTIME(g◦T ) ⊆ DTIME(T ).

Este enunciado no contradice el Teorema de Jerarquía. Más aún, como la cotaT puede ser muy grande, no aporta gran cosa a la relación entre P y NP que nosocupa aquí.

En ocasiones, sin embargo, uno puede estar interesado en determinar la comple-jidad de una cierta función. En este caso se consideran las clases de complejidad defunciones. Notacionalmente, se añade el sufijo F al nombre de la clase: DTIMEF(f)y DSPACEF(f).

3.2. Rudimentos con Indeterminismo

Incluiremos algunos resultados primarios en el manejo del indeterminismo. Re-cuérdese que el indeterminismo se puede representar mediante existencia de varioscaminos en el grafo del sistema de transición. Por tanto, una posible manera deatacar determinísticamente problemas modelizados mediante máquinas indetermi-nistas se basa en la generación de los grafos y en la reducción a un problema deAlcanzabilidad. Este es el fundamento de los resultados siguientes:Teorema 21. Sea t : N −→ N una función constructible en tiempo, t(n) ≥ n.Entonces, NSPACE(t) ⊆ DTIME(2O(t)).

Este resultado se basa en la simple construcción, para cada x ∈ Σ∗, del grafo Gx

cuyos vértices son todas las configuraciones de talla acotada por t(|x|), y del cálculode la clausura transitiva de la configuración inicial en x (IM (x)) dentro de ese grafo.El mismo grafo nos permitiría probar que NTIME(t) ⊆ DSPACE(t2), pero unpoco de sutileza (describiendo las posibles transiciones, en lugar de los nodos de Gx)nos permite refinar hasta obtener el resultado siguiente:Teorema 22. Sea t : N −→ N una función constructible en tiempo, t(n) ≥ n.Entonces, NTIME(t) ⊆ DSPACE(t).

14B. Trakhtenbrot, Turing computations with logarithmic delay (en ruso), Algebra and Logic3 (1964), 33–48.

15A. Borodin, Computational complexity and the existence of complexity gaps, J. of the ACM19 (1972), 158–174.

Page 18: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

134 La Columna de Matemática Computacional

Un resultado bastante más sutil nos permite mostrar la excelente relación quetiene el espacio con el indeterminismo. Se trata de recorrer el grafo minimizando elespacio.Teorema 23 ([34]). Si s : N −→ N es una función constructible en espacio ys(n) ≥ log2 n, se tiene NSPACE(s) ⊆ DSPACE(s2).

Este resultado supone la primera observación relevante en relación con el objetivode estas notas: el indeterminismo es un concepto esencialmente irrelevante cuando setrata de enfrentar problemas de espacio/memoria. La Conjetura de Cook pregunta,justamente, por la interacción entre indeterminismo y tiempo.

4. Clases Centrales de Complejidad

4.1. La tesis de Cobham-Edmonds

La tesis de Cobham-Edmonds se puede resumir en los términos siguientes:Definición 24 (Tesis de Cobham-Edmond). Un problema algorítmico se debe con-siderar tratable si la complejidad en tiempo determinístico es polinomial en la talladel input.

Esta definición es discutida y discutible con diversos argumentos (admisión deprobabilismo, discusión de tratabilidad de complejidades del orden O(n100), etc.)pero, en esencia, permanece como forma del lenguaje.Definición 25 (La clase P). Se define la clase de los lenguajes tratables como laclase

P :=⋃k∈N

DTIME(nk).

Se define la clase de las funciones tratables PF como la clase de funciones parcialesf : Σ∗ −→ Σ∗ evaluables en tiempo polinomial.

4.2. Centrales: Primeras Relaciones

(1). Clases Determinadas por el Tiempo. Se definen las clases deterministase indeterministas (prefijo N):

Deterministas IndeterministasP NP :=

⋃k∈N NTIME(nk)

EXTIME := DTIME(2O(n)) NEXTIME := NTIME(2O(n)).EXPTIME :=

⋃k∈N DTIME(2nk ) NEXPTIME :=

⋃k∈N NTIME(2nk )

DDEXTIME := DTIME(22O(n))

(2). Clases de Funciones/Correspondencias. Se denotan añadiendo el sufijoF: PF, NPF, EXTIMEF, etc.

Page 19: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 135

(3). Clases Determinadas por el Espacio. La clase límite en la que aún sepuede esperar tratabilidad es la clase PSPACE16:

Deterministas IndeterministasLOG := DSPACE(logn) NLOG := NSPACE(logn)PLOG :=

⋃k∈N DSPACE(logk n)

PSPACE :=⋃

k∈N DSPACE(nk)EXSPACE := DSPACE(2O(n))

Las clases de tiempo presentan contenidos estrictos como consecuencia de losTeoremas de Jerarquía en el Tiempo:

P EXTIME EXPTIME DDEXTIME,

NP NEXTIME NEXPTIME.

Las clases por encima de la clase P se consideran ya clases intratables. Una dis-cusión especial merece la clase NP, que se analizará más adelante. En términos deespacio, los siguientes contenidos son también estrictos:

LOG PLOG PSPACE EXSPACE EXPSPACE.

Adicionalmente, se tiene:Corolario 26. Se dan las siguientes relaciones entre las clases anteriores:(1). P ⊆ NP ⊆ PSPACE ⊆ EXPTIME.(2). PLOG EXTIME.(3). NLOG ⊆ P.

4.3. La clase NP: Reflexión, ejemplos

Debemos dar a Cook ([13]), Levin ([29]) y Karp ([24]) la prioridad en la definicióny primeras exploraciones de la clase NP, así como los primeros problemas NP-completos. Existen referencias anteriores de K. Gödel en las que ya se preanunciala relevancia de la clase; pero dejamos a manuscritos históricos como [17] y susreferencias para detalles y discusiones de anteriores períodos.

El concepto que hemos presentado del Indeterminismo se basa en el modelode máquina: una mera diferencia entre correspondencia y aplicación, basta paradiferenciarlos. Sin embargo, esta presentación es muy poco clarificadora de lo quesignifica el indeterminismo. En sentido informático simplista, el determinismo sería«lo programable», y el indeterminismo serían los programas mal diseñados en losque el programa no sabe dilucidar cuál es el «paso siguiente» de la computación.Esta interpretación simplista dista brutalmente de la relevancia del concepto. Aquívamos a discutir un poco más la noción.

16Exceptuando el caso de NLOG, las clases de espacio indeterminista no se consideran, comoconsecuencia del Teorema de Savitch.

Page 20: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

136 La Columna de Matemática Computacional

Definición 27 (Proyección de un lenguaje). Dado un lenguaje L ⊆ Σ∗, llamaremosproyección del lenguaje L al lenguaje

π(L) := {x ∈ Σ∗ : ∃y ∈ Σ∗, x · y ∈ L},

donde · es la adjunción de palabras.Hemos elegido el término proyección porque refleja el lenguaje geométrico (la pro-

yección de una subvariedad de Kn sobre un espacio ambiente de menor dimensión),en el lenguaje de la Teoría de Modelos hablaríamos de la presencia de un bloque decuantificadores existenciales. En términos de lenguajes, hablaríamos de los prefijosde las palabras en L. Un ejemplo inhabitual podría ser el siguiente. Consideremos la«variedad de incidencia» sobre Q dada por las ecuaciones polinomiales multivariadascon coeficientes racionales:

L := V (Q) := {(f, x) ∈ Q[X1, . . . , Xn]×Qn : f(x) = 0}.

Es obviamente un lenguaje sobre el alfabeto {0, 1} con, por ejemplo, codificacióndensa de los coeficientes. Es claramente un lenguaje recursivo. Si ahora proyecto Lobtengo π(L), el conjunto de polinomios con coeficientes enteros que poseen unasolución diofántica. Es decir, caemos en el Problema X de Hilbert (que es un pro-blema indecidible, tal como sabemos gracias a los trabajos de Gödel, Robinson yMatjiasievich). En Teoría Elemental de Números la eliminación de cuantificadoresexistenciales es indecidible (recursivamente enumerable, pero no recursivo).

Añadamos a la variedad de incidencia una condición sobre la talla de los ceros:

L1 := V Q1 :=

{(f, x) ∈ V Q : ht(x) ≤

(deg(f) + n

n

)‖f‖∆

},

donde ‖f‖∆ es la norma (unitariamente invariante) de Bombieri de f y ht(x) es laaltura de Weil del punto racional (i.e. la talla bit de x).

En este caso la proyección π(L1) ya es tratable algorítmicamente: basta conprobar con todos los posibles valores de x de altura acotada por la cantidad prescrita(que no es otra cosa que la esperanza de |f | sobre la esfera unidad en Cn).

Este proceso de proyección (la presencia de cuantificadores existenciales) es tam-bién modelizable mediante una forma de indeterminismo: máquinas que admitenuna especial operación de «guessing» (adivinando la respuesta). Así supongamosque tenemos una máquina de Turing determinista N que resuelve el problema L,entonces tendríamos una «máquina» que acepta indeterminísticamente π(L) y quetendría la estructura siguiente:

Input: x ∈ Σ∗guess indeterministically y ∈ Σ∗Aplicar N sobre x · y ∈ Σ∗.if N acepta x · y,

Output x es aceptado y ResN (x · y).else Output No respondasfiEl siguiente enunciado caracteriza la clase NP mediante máquinas con guessing:

Page 21: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 137

Proposición 28. Sea Σ un alfabeto finito y L ⊆ Σ∗ un lenguaje. Entonces, L ∈ NPsi y solamente si existen dos funciones polinomiales p, q : N −→ N, una máquina deTuring determinística M y un lenguaje L ⊆ Σ∗, tales que:(1). El lenguaje aceptado por M es L.(2). El tiempo de ejecución de la máquina M está acotado por p.(3). El lenguaje L está caracterizado por la propiedad siguiente: ∀x ∈ Σ∗, con

|x| = n ∈ N, se tiene

x ∈ L ⇔ ∃y ∈ Σ∗, [|y| ≤ q(n)] ∧ [x · y ∈ L].

Un ejemplo sencillo de problema en la clase NP es el siguiente:Problema 29 (SAT). Se define el lenguaje SAT como el conjunto de las fórmulasΦ(X1, . . . , Xn) del Cálculo Proposicional que son satisfactibles, es decir, tales queexiste una asignación de verdad x := (x1, . . . , xn) ∈ {0, 1}n tal que Φ(x) = 1. Enotras palabras,

SAT := {Φ : ∃x ∈ {0, 1}n, Φ(x) = 1}.

Es claro que para decidir si una fórmula del Cálculo Proposicional es satisfactible,basta con «adivinar» una asignación de verdad y evaluar la fórmula en esa asignación.

Una de las razones que resalta la relevancia de la relación entre las clases P yNP en la interacción entre determinismo, indeterminismo y tiempo es el siguienteresultado basado en un argumento de «padding». La siguiente proposición explicaríaque la igualdad entre las clases centrales P yNP se extendería a casi todas las clasesde tiempo determinístico e indeterminístico en una forma que traduciría a tiempo elTeorema 23 de Savitch sobre espacio.Proposición 30. Si P = NP, entonces, para toda función f constructible en tiempose tiene:

DTIME(2O(f)) = NTIME(2O(f)), DTIME(fO(1)) = NTIME(fO(1)).

En ocasiones tiene interés tratar las clases de complejidad de los complementariosde lenguajes.Definición 31 (co-C). Sea C una clase de complejidad. Entonces definimos la clasede lenguajes co-C del modo siguiente:

co-C := {L ⊆ Σ∗ : Σ∗ \ L ∈ C}.

Una clase de especial relevancia es la clase co-NP de complementarios de lengua-jes en NP. Se observa claramente que P ⊆ NP ∩ co-NP. Se desconoce la relaciónentre ambas clases. Por ejemplo, es obvio que si NP 6= co-NP, entonces P 6= NP(porque P es cerrada por complementación), pero se desconoce el recíproco de esapregunta.Problema Abierto 2. Decidir la respuesta a la pregunta ¿NP 6= co-NP?

Un ejemplo de problema en co-NP es el siguiente:

Page 22: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

138 La Columna de Matemática Computacional

Problema 32 (TAUT). Se define el lenguaje TAUT como el conjunto de las fórmulasΦ(X1, . . . , Xn) del Cálculo Proposicional que son tautologías. En otras palabras,

TAUT := {Φ : ∀x ∈ {0, 1}n, Φ(x) = 1}.

Proposición 33. El lenguaje TAUT está en co-NP.

4.4. Máquinas con Oráculos

Definición 34. Una máquina de Turing con oráculo L ⊆ Σ∗ es una máquina deTuring (determinística o no) que posee

una cinta especial en la que puede escribir, llamada la cinta del oráculo,tres estados especiales {query, qyes, qno} ⊆ Q

cuyo funcionamiento es tal que, en cualquier momento del cálculo, si la máquinaaccede al estado query, la máquina lee (en un solo paso) el contenido ω ∈ Σ∗de lacinta del oráculo y devuelve o bien qyes o qno según ω ∈ L o no. Después sigue sucomputación.

Para una clase de complejidad C y un lenguaje L, denotaremos por CL la cla-se formada por todos los lenguajes acotados por el recurso descrito por C, peroadmitiendo máquinas con oráculo L. Así podemos definir las clases PL, NPL, etc.

Obviamente, si L ∈ P, se tiene PL = P y lo mismo se verifica para cada clasede complejidad. La presencia de oráculos aumenta el poder computacional de unaclase, aunque uno debe ser cuidadoso con su presencia.

Una de las primeras observaciones que se hicieron en torno al problema de Cookseñalaba la dificultad de utilizar argumentos basados en diagonalización (à la Gödel,Turing o como en los citados Teoremas de Jerarquía): los argumentos basados endiagonalización tienen que ser «especiales», en la medida de que no son aplicables amáquinas de Turing con oráculos. Es el caso del siguiente resultado.Teorema 35 ([4]). Existe un lenguaje A tal que

PA = NPA = EXPTIMEA.

Y también existe un lenguaje B tal que

PB 6= NPB .

Demostración. Como resumen de la prueba, un lenguaje A que satisface el enun-ciado es el siguiente:

A := {(M,x, n) : x ∈ L(M), TM (x) ≤ 2n}.

Para un lenguaje cualquiera B, definamos UB := {1n : ∃x ∈ B, |x| = n}. Clara-mente UB ∈ NPB , pero se puede construir un lenguaje B tal que UB /∈ PB .

El lenguaje se define del modo siguiente (diagonalización). Para cada i ∈ {0, 1}∗,seaMi la máquina de Turing con oráculo B cuyo código es precisamente i. Definimos

Page 23: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 139

B inductivamente en función de i. En cada paso añadimos un número finito deelementos nuevos (o no añadimos ninguno).

Supongamos que ya hemos definido algunos elementos Bi−1 en pasos anteriores.Ahora elijamos n mayor que la longitud de todos los elementos de Bi−1 y ejecutamosla máquina Mi sobre 1n. Consideramos todas las palabras que se guardan en lacinta del oráculo y alcanzan el estado Query. Si alguna está en Bi−1 procedemoscon qyes, si alguna no ha sido predeterminada (no está en Bi−1), respondemos qno ycontinuamos. Estamos ejecutando, de hecho, MBi−1

i . Detendremos la computacióntras 2n/10 pasos.

Si la máquina MBi−1i termina su computación aceptando antes de realizar los

2n/10 pasos, escribiremos Bi = Bi−1 y, en particular, 1n /∈ UB . En caso contrario,elijamos una palabra x ∈ {0, 1}∗, de longitud n, que no haya aparecido en la cintadel oráculo (existen, porque el tiempo está acotado por 2n/10 y no hemos podidopasar por todos los x ∈ {0, 1}n) y definimos Bi := Bi−1 ∪ {x}.

Definimos finalmente B := ∪i∈NBi. Con esta construcción garantizamos que lamáquinaMi siempre devolverá una respuesta incorrecta sobre 1n en menos de 2n/10pasos. Por tanto, UB /∈ PB .

5. La Frontera de lo Intratable: NP-Completitud

5.1. Reducciones

En la literatura se pueden encontrar varios conceptos de reducción. Una reducciónes una simplificación de un problema en otro. Normalmente, en cuanto sigue, haremosreferencia a reducciones de Karp (también llamadas «polynomial-time many-onereductions»).Definición 36 (Reducción de Cook). Dados dos lenguajes L,L′ ⊆ Σ∗, decimosque L es Cook reducible a L′ (también llamada reducción de Turing) si existe unamáquina de Turing M con oráculo L′ que finaliza sus computaciones en tiempopolinomial en el tamaño de la entrada, y tal que el lenguaje aceptado por ML′ es L.

En esencia, se trata de lo siguiente: para un input x ∈ Σ∗, el problema depertenencia a L (i.e. evaluar χL(x)) se resuelve mediante la aplicación de la máquinaM con oráculo L′ a x. Por ejemplo, si L′ ∈ P y L es Cook reducible a L′, entoncesL ∈ P.Definición 37 (Reducción de Karp). Dados L,L′ ⊆ Σ∗, decimos que L es Karpreducible a L′ si existe una función f ∈ PF tal que, para cada x ∈ Σ∗, se verifica:

x ∈ L ⇐⇒ f(x) ∈ L′.

De nuevo, para resolver el problema de pertenencia a L para un input x ∈ Σ∗,primero evaluamos f(x) y luego aplicamos cualquier algoritmo que resuelva L′ af(x). En particular, si L′ ∈ P y si L es Karp reducible a L′, entonces L′ ∈ P.

Es claro que una reducción de Karp induce una reducción de Cook: la máquinacon oráculoM es una máquina que evalúa f , que trata la cinta de output como cinta

Page 24: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

140 La Columna de Matemática Computacional

del oráculo y que, al alcanzar un estado final aceptador, pasa al estado Query conoráculo L′, y acepta si y solamente el oráculo devuelve aceptar.

Debe indicarse que no se sabe si las reducciones de Cook son más fuertes quelas reducciones de Karp. De hecho, ni siquiera se sabe si la clase NP es estable porreducciones de Cook (aunque se sospecha que no es así).Problema Abierto 3. ¿Es la clase NP cerrada bajo reducciones de Cook?

Los problema de búsqueda y sus reducciones fueron la motivación de la aproxi-mación de Levin a la clase NP. En [29], Levin define una clase de reducción y, porende, problemas completos. Sin embargo, la brevedad de estas páginas no nos per-mite insistir mucho más en los problemas de búsqueda. Indiquemos solamente quelos problemas de búsqueda en la clase PC (relaciones [con tallas] polinomialmenteacotadas que admiten «checking» en tiempo polinomial) son Cook reducibles a pro-blemas en NP. Véase [20] para un tratamiento más pormenorizado de los problemasde búsqueda en relación con la Conjetura de Cook.

Dentro de la clase P y sus subclases (LOG, NLOG, NC,. . . ) se suelen usarreducciones log-space (i.e. reducciones en LOGF,. . . ). Aunque son temas igualmenteinteresantes, esto se sale del objetivo de estas notas, por lo que no insistiremos enesa dirección.Definición 38. Decimos que una clase de complejidad C es reducible (Cook, Karp,Levin, log-space. . . ) a otra clase C′ si los problemas de la primera son (Cook, Karp,Levin, log-space. . . ) reducibles a problemas en la segunda.

5.2. El Teorema de Cook: Problemas NP-completos

Aunque en ocasiones se usan reducciones de Cook para probar que ciertos pro-blemas sonNP-completos, nos restringiremos a las reducciones de Karp siempre quesea posible.Definición 39. Sea C una clase de complejidad, decimos que un lenguaje L es C-duro para reducciones Karp (resp. Cook) si todos los lenguajes S de la clase C sonKarp reducibles (resp. Cook reducibles) a L.Definición 40. Sea C una clase de complejidad, decimos que un lenguaje L esC-completo si verifica:

L ∈ C,L es C-duro.

Proposición 41. Sea C′ ⊆ C dos clases de complejidad y supongamos que C′ esestable por reducciones à la Karp (resp. à la Cook). Sea L un lenguaje C-completo,entonces

L ∈ C′ =⇒ C = C′.

Esta proposición muestra la potencialidad de los problemas completos en una cla-se: ellos parecen concentrar en sí mismos todo el potencial de la clase de complejidady, por tanto, si uno cualquiera de ellos «cae» a una clase menor, pero estable por

Page 25: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 141

las reducciones consideradas, toda la clase le sigue y «cae» también en esa subclase.Diremos que ambas clases colapsan.

Pero, además, los problemas NP-completos adolecen del don de la ubicuidad. Seencuentran en casi cualquier ámbito de la computación. Lo que sigue es una galeríade problemas NP-completos de diversos ámbitos del conocimiento. La galería nopretende ser completa, dado que se conocen miles de ejemplos, sino simplementeilustrar algunos de esos casos. El lector interesado puede acudir al ya clásico [18] oa la lista/resumen de Wikipedia en

http://en.wikipedia.org/wiki/List_of_NP-complete_problems

Señalemos que las pruebas de la NP-completitud de un problema suelen tener ele-mentos de elegante originalidad y, en algunos casos, ideas francamente brillantes.Omitiremos, por falta de espacio, el detalle y remitimos al lector a referencias espe-cializadas.Problema 42 (De la máquina universal a la NP-completitud). Consideremos ellenguaje K siguiente. Los elementos de K son listas (cM , x, t), donde

cM es el código de una máquina de Turing indeterminística M (como en laMáquina Universal).t ∈ {1}∗ es una cota de tiempo en unario.x ∈ Σ∗ es una palabra tal que x ∈ L(M) y TM (x) ≤ t.

Teorema 43. El lenguaje K anterior es NP-completo.

Demostración (Sumario). Para probar que K está en NP basta con aplicar laMáquina Universal siguiendo t transiciones «plausibles» (adivinadas) a (cM , x) yverificando queM acepta x en, a lo sumo, t pasos. La reducción de cualquier lenguajeL ∈ NP a K consiste en escribir cM (M es la máquina de Turing indeterminísticaque acepta L) y escribir TM (x) en unario.

Recordemos el problema SAT descrito como Problema 29.Teorema 44 ([13]). El problema SAT es NP-completo.

Demostración (Sumario). Es obvio que el problema está en la clase NP: bastacon «adivinar» una asignación de verdad x ∈ {0, 1}n y evaluar Φ en x. Aceptamosen el caso de que hayamos adivinado una asignación que satisface la fórmula. Es másdelicado probar que el problema es NP-completo. Basta con reducir K a SAT. Lareducción consiste en escribir, mediante fórmulas booleanas, el sistema de transiciónasociado a la máquina de código cM y verificar el resto de las condiciones.

Un literal x es una fórmula dada por una sola variable booleana x = Xi o lanegación de una variable booleana x = (¬Xj). Una cláusula es la disyunción devarios literales, es decir, una fórmula booleana

Φ(X1, . . . , Xn) = (x1 ∨ x2 ∨ · · · ∨ xr)

donde los xi son literales. Una fórmula booleana se dice en forma normal conjuntiva(CNF) si es una conjunción de cláusulas.

Page 26: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

142 La Columna de Matemática Computacional

Problema 45 (SAT-CNF). El problema SAT-CNF se define como el lenguaje de lasfórmulas Φ tales que Φ ∈ SAT ∩ CNF.

Observando que las fórmulas que salen de la reducción usada en el Teorema 44se pueden escribir directamente en CNF, se concluye:Teorema 46 ([13]). El problema SAT-CNF es NP-completo.

Un ejemplo curioso son las fórmulas de Horn. Una cláusula de Horn es unacláusula en la que hay a lo sumo un literal positivo. Se trata de las cláusulas quepueden reescribirse como

X1, X2, . . . , Xn =⇒ Y.

Una fórmula de Horn es una fórmula dada como la conjunción de varias cláusu-las de Horn. Se tiene el sorprendente resultado siguiente (punto de partida de laProgramación Lógica):Teorema 47. El lenguaje HORN ∩ SAT está en P.

Siguiendo con esta lista de ejemplos al uso, observamos que no se puede reducircualquier fórmula booleana a una fórmula de Horn. En cambio, sí es factible reducircualquier fórmula en CNF a una fórmula dada como la conjunción de cláusulas queinvolucran a lo sumo 3 literales en cada cláusula. Denotemos por 3CNF esas fórmulas.Problema 48 (3SAT). Definamos el lenguaje 3SAT como las fórmulas en la inter-sección SAT ∩ 3CNF.Teorema 49 ([24]). El problema 3SAT es NP-completo.

Demostración (Sumario). Basta con reproducir como cláusulas el proceso de eva-luación de una fórmula SAT-CNF a 3SAT.

Podemos también retomar el Nullstellensatz sobre cuerpos finitos. Así, podemosconsiderar PK

(3), el conjunto de listas f1, . . . , fn+1 de n+ 1 polinomios en n variablescon grado acotado por 3 y coeficientes en el cuerpo K. Supongamos K := Fq es uncuerpo finito con q elementos y sea K la clausura algebraica de K.Corolario 50. El Hilbert Nullstellensatz HN sobre cuerpos primos es un problemaNP-duro y el siguiente es NP-completo:

SAT-HN := {f = (f1, . . . , fn+1) ∈ PK(3) : ∃x ∈ Kn, f1(x) = 0, . . . , fn+1(x) = 0}.

Demostración. El Nullstellensatz (cf. Problema 2) es claramenteNP-duro porqueSAT es Karp reducible a él. Pero no se sabe si es NP-completo, puesto que nopodemos «adivinar» de manera controlada y simple las soluciones en Kn (recuérdeseque K es un cuerpo de cardinal infinito) a partir de los coeficientes y, por tanto, nopodemos garantizar que esté en NP.

En cambio sí está en NP su versión SAT-HN: la búsqueda de soluciones, no ya enKn sino en Kn = Fn

q , que son fáciles de «adivinar». Como SAT también es reduciblea SAT-HN, será un problema NP-completo.

Page 27: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 143

Problema 51 (CLIQUE). Un grafo G := (V,E) se dice completo si E contienetodas las posibles aristas entre cualesquiera dos nodos de V . El lenguaje CLIQUE esel lenguaje dado por los pares (G, k), donde G = (V,E) es un grafo y k es un enteropositivo, de tal modo que G contiene un subgrafo completo de cardinal mayor o igualque k.Teorema 52 ([24]). El problema CLIQUE es NP-completo.

Demostración (Sumario). Reduciremos SAT-CNF a CLIQUE del modo siguiente.Supongamos que la fórmula Φ es la conjunción Φ := C1 ∧ · · · ∧Cr, donde C1, . . . , Cr

son cláusulas que involucran variables en {X1, . . . , Xn} y literales {x1, . . . , xk}. De-finimos un grafo G = (V,E) del modo siguiente:

V := {(xj , Ci) : el literal xj aparece en la cláusula Ci}.E := {((xj , Ci), (xm, Cs)) : Ci 6= Cs, ¬xj 6= xm}, donde hemos supuesto quela doble negación es la variable original.k = r (i.e. el número de cláusulas).

Si el grafoG posee un subgrafo completo de cardinal mayor o igual que k, entoncesla fórmula original es satisfactible.

Problema 53 (3-COLOR). Se trata del lenguaje formado por los grafos no orientadosG := (V,E) que son tres-coloreables, esto es, tales que se pueden asignar colores(etiquetas {1, 2, 3}) de tal modo que dos vértices vecinos no posean el mismo color.

Mediante un ingenioso artilugio, se puede reducir 3SAT a 3-COLOR.Teorema 54 ([24]). El problema 3-COLOR es NP-completo.

Un circuito hamiltoniano en un grafo orientado G = (V,E) es una secuenciacerrada de vértices ν1, . . . , νs de tal modo que se puede pasar de cada uno al siguiente(νi, νi+1) ∈ V y (νs, ν1) ∈ V .Problema 55 (HC, Circuito Hamiltoniano). El lenguaje HC es el lenguaje formadopor todos los grafos orientados G que poseen un circuito hamiltoniano pasando portodos los nodos del grafo.

De nuevo, reduciendo 3SAT a HC obtendremos:Teorema 56. El problema HC es NP-completo.Problema 57 (SUBSET SUM). Se trata de las listas finitas de números enteros {ai :1 ≤ i ≤ n} ⊆ Z tales que existe S ⊆ {1, . . . , n} verificando∑

i∈S

ai = 0.

Una variante de este problema es el Problema de la Mochila.Problema 58 (KNAPSACK). Dada una lista de enteros {ai : 1 ≤ i ≤ n} ⊆ Z y dadok ∈ N, decidir si

∃S ⊆ {1, . . . , n},∑i∈S

ai = l.

Page 28: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

144 La Columna de Matemática Computacional

Ambos problemas pueden reescribirse como un problema de eliminación (Hil-bert Nullstellensatz): Decidir si el siguiente sistema de ecuaciones polinomiales concoeficientes en Z posee una solución en Cn:

X21 −X1 = 0, X2

2 −X2 = 0, . . . , X2n −Xn = 0, k −

n∑i=1

aiXi = 0.

Teorema 59. Tanto SUBSET SUM como KNAPSACK son problemas NP-completos.En Teoría de Códigos Correctores de Errores trabajamos sobre un cuerpo finito

Fq := GFq que actúa como alfabeto. El espacio Fnq es un espacio métrico con la

distancia de Hamming

dH(x, y) := ]{i : 1 ≤ i ≤ n, xi 6= yi}.

Un código es un subespacio lineal C ⊆ Fnq , que podemos definir mediante sus ecua-

ciones lineales por una matriz H ∈ Mm×n(Fq). La capacidad de un código vienedeterminada por el peso mínimo de las palabras en C o, equivalentemente, por elmínimo de las distancias de sus elementos.Problema 60 (Minimum Distance). Definimos el lenguaje Minimum Distance co-mo los pares (H, r), donde H es una matriz enMm×n(Fq) y r es un número natural,tal que existe x verificando

Hxt = 0, weight(x) := dH(x, 0) ≤ r.

Teorema 61 ([37]). El problema Minimum Distance es NP-completo.Problema 62 (ILP). El problema de optimización lineal entera se define comoel lenguaje de las cuaternas (M,a, c, g) donde M ∈ Mm×n(Z) es una matriz concoordenadas enteras, a ∈ Zm y c ∈ Zn son vectores con coordenadas enteras, y g ∈ Zes un entero positivo. Nos preguntamos si existe x ∈ Zn tal que

Mxt ≤ a, 〈c, x〉 ≥ g.

A pesar de que el problema de Programación lineal (con posibles solucionesracionales x ∈ Qn) se resuelve en tiempo polinomial (cf. [25]) no es el mismo casocuando se trata de soluciones diofánticas. El caso 0-1 ILP es debido a [24] y tratadel caso particular en que las matrices tienen coordenadas en {0, 1}.Teorema 63. El problema ILP es NP-completo.

Por retomar la clase co-NP ya citada anteriormente, y el Problema TAUT descritocomo Problema 32, tendremosTeorema 64. El Problema TAUT es co-NP completo para reducciones de Karp.

Algunas Referencias para una Bibliografía Básica

Entre las referencias básicas destaquemos, antes de nada, la fuerte influencia deun clásico como [1] (su nueva edición referenciada como [2]) y la muy influyente serie

Page 29: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 145

[26]. Sin embargo, deben destacarse, como textos muy influyentes para quien sus-cribe estas páginas, los dos volúmenes [5] y [6], así como el excelente texto [31] y laafortunadísima reciente aparición del texto [3]. Como texto de gran calidad podemoscitar la «vieja biblia» [38] (libro de lectura intratable, incluso para los especialistas,aunque, al mismo tiempo, debe destacarse como uno de los más completos del co-nocimiento de la época). Un pequeño texto, muy agradable para quienes provienende un entorno matemático, son las notas para un curso semestral redactadas porD. Kozen y publicadas bajo la forma [27]. Finalmente, no podemos menos que citarla guía de la intratabilidad [18] que es, sin ninguna duda, uno de los textos quemejor ha sabido impulsar la investigación en torno a la Conjetura de Cook-Levin-Karp. Otros textos, de menos agradable lectura para un matemático interesado enla completitud de las pruebas, pero excelente reputación, son los textos [19], [20].

Referencias

[1] A.V. Aho, J.E. Hopcroft y J.D. Ullman, The Design and Analysis ofComputer Algorithms. Addison-Wesley, 1975.

[2] A.V. Aho y J.D. Ullman, Foundations of Computer Science, W.H. Freeman,1995.

[3] S. Arora y B. Barak, Computational Complexity: A Modern Approach, Cam-bridge University Press, 2009.

[4] T. Baker, J. Gill y R. Solovay, Relativizations of the P =? NP question,SIAM J. on Comput. 4 (1975), 431–442.

[5] J.L. Balcázar, J.L. Díaz y J. Gabarró, Structural Complexity I, EATCSMon. on Theor. Comp. Sci. 11, Springer, 1988.

[6] J.L. Balcázar, J.L. Díaz y J. Gabarró. Structural Complexity II, EATCSMon. on Theor. Comp. Sci., Springer, 1990.

[7] C. Beltrán y L.M. Pardo, Smale’s 17th problem: average polynomial timeto compute affine and projective solutions, J. Amer. Math. Soc. 22 (2009),363–385.

[8] C. Beltrán y L.M. Pardo, Efficient polynomial system solving by numericalmethods, J. of Fixed Point Theor. & App. 6 (2009), 65–85.

[9] C. Beltrán y L.M. Pardo, Fast linear homotopy to find approximate zerosof polynomial systems, Found. of Comput. Math. 11 (2011), 95–129.

[10] M. Blum, A machine independent theory of the complexity of recursive fun-ctions, J. of the ACM 14 (1967), 322–336.

[11] C. Bonatti, S. Crovisier y A. Wilkinson, The C1-generic diffeomorphismhas trivial centralizer, Publ. Math. de l’IHÉS 109 (2009), 185–244.

[12] A. Cobham, The intrinsic computational difficulty of functions, Proc. Logic,Methodology, and Philosophy of Science II (Proc. 1964 Internat. Congr.), NorthHolland, 1965, 24–30.

[13] S. Cook, The complexity of theorem-proving procedures, Proc. 3rd Ann. ACMSToC (1971), 151–158.

Page 30: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

146 La Columna de Matemática Computacional

[14] J. Davenport y J. Heintz, Real quantifier elimination is doubly exponential,J. Symb. Comput. 5 (1988), 29–35.

[15] J. Edmonds, Minimum partition of a matroid into independent sets, J. of Res.of the Nat. Bureau of Stand. (B) 69 (1965), 67–72.

[16] J. Edmonds, Maximum matching and a polyhedron with 0,1-vertices, J. ofRes. of the Nat. Bureau of Stand. (B) 69 (1965), 125–130.

[17] L. Fortnow y S. Homer, A Short History of Computational Complexity,Bull. of the EATCS 80 (2003), 95–133.

[18] M.R. Garey y D.S. Johnson, Computers and Intractability: A Guide to theTheory of NP-Completeness, W.H. Freeman, 1979.

[19] O. Goldreich, Modern Cryptography, Probabilistic Proofs and Pseudo-Randomness, Algorithms and Combinatorics 17, Springer, 1999.

[20] O. Goldreich, Computational Complexity: A Conceptual Approach, Cambrid-ge University Press, 2008.

[21] J. Hartmanis, P.M. Lewis II y R.E. Stearns, Hierarchies of memory limi-ted computations, Proc. 6th Annual IEEE Symp. on Switching Circuit Theoryand Logical Design, 1965, 179–190.

[22] J. Hartmanis y R. Stearns, On the computational complexity of algorithms,Trans. of the AMS 117 (1965), 285–306.

[23] F. Hennie y R. Stearns, Two-tape simulation of multitape Turing machines,J. of the ACM 13 (1966), 533–546.

[24] R. Karp, Reducibility among combinatorial problems, Complexity of ComputerComputations (R.E. Miller y J.W. Hatcher, eds.), Plenum Press, 1972, 85–103.

[25] L. Khachiyan, A polynomial algorithm in linear programming, Soviet Math.Doklady 20 (1979), 191–194.

[26] D.E. Knuth, The Art of Computer Programming, vols. 1 to 4.4. Re-edited byAddison-Wesley, 1997–2005.

[27] D.C. Kozen, The Design and Analysis of Algorithms, Springer Verlag, 1992.[28] A.K. Lenstra, H.W. Lenstra, Jr. y L.Lovász, Factoring polynomials with

rational coefficients, Mathematische Ann. 261 (1982), 513–534.[29] L.A. Levin, Universal search problems, Probl. Pred. 7 (1973), 115–116.[30] E. Mayr y A. Meyer, The complexity of the word problem for commutative

semigroups, Adv. in Math. 46 (1982), 305–329.[31] C.H. Papadimitrou, Computational Complexity, Addison Wesley, 1994.[32] L.M. Pardo, How lower and upper complexity bounds meet in elimination

theory, Proc. AAECC-11 (G. Cohen, M. Giusti y T. Mora, eds.), SpringerLNCS 948, 1995, 33–69.

[33] M.O. Rabin, Mathematical theory of automata, Proc. of 19th ACM Symp. inApp. Math., 1966, 153–175.

[34] W.J. Savitch, Relationships between nondeterministic and deterministic tapecomplexities, J. Comput. Syst. Sci. 4 (1970), 177–192.

Page 31: La Conjetura de Cook (¿P = NP?). Parte I: Lo Básico

La Gaceta ? Secciones 147

[35] S. Smale, Mathematical problems for the next century, Mathematics: frontiersand perspectives, Amer. Math. Soc., Providence, RI, 2000, 271–294.

[36] W. Tucker, A Rigorous ODE Solver and Smale’s 14th Problem, Found. ofComput. Math. 2 (2002), 53–117.

[37] A. Vardy, Algorithmic Complexity in Coding Theory and the Minimum Dis-tance Problem, Proc. SToC’97, 1997, 92–109.

[38] K. Wagner y G. Wechsung, Computational Complexity, D. Reidel, 1986.

Dpto. de Matemáticas, Estadística y Computación, Fac. de Ciencias, Universidad de Can-tabria, Avda. Los Castros s/n, 39005 SantanderCorreo electrónico: [email protected]