Dados L ∈ NP y una string x, construimos φx tal que x ∈ L ssi φx ∈ CNF-SAT.
Idea: Sea M una verificadora de L indiferente y con 2 cintas.
φx es un "patrón de trazas" de las corridas exitosas de M con input x y u (u certificado de x).
Idea: usar regla de la resolución al revés.
INDSET = {⌊(G, k)⌋ ∣ ∃ S ⊆ N(G), ∣S∣ ≥ k, ∀ uv ∈ S, uv ∉ E(G)}
INDSET ∈ NP porque el certificado es el conjunto S.
Mostramos 3SAT ≤ p INDSET.
Sea φ = ⋀ Ci una formula en FNC3. Sea m el número de cláusulas de φ, construimos un grafo G tal que ⌊φ⌋ ∈ 3SAT ↔ ⌊(G, m)⌋ ∈ INDSET.
Cada cláusula C de φ tiene ≤ 3 literales, entonces hay ≤ 7 asignaciones que la satisfacen.
Construimos para C un cluster de 7 nodos, marquamos cada uno con las asignaciones que satisfacen su cluster.
Conectamos dos puntos si pertenecen a clusters distintos y representan asignaciones inconsistentes (ie, 1 variables es asignada a 1 en un nodo y 0 en el otro).
Conectamos entre si todos los puntos de un mismo cluster.
- La transformación se puede hacer en tiempo polinomial.
- φ satisfacible
→ existe asignación z tal que φ(z) = 1
→ definir S los nodos de cada cluster que corresponden a la restriccion de z a las variables del cluster
→ hay m nodos no conectados entre si en G- hay m nodos no conectados entre si en G
→ pertenecen a clusters distintos
→ las asignaciones parciales que esos nodos representan son consistentes
→ con ellas construimos z tal que φ(z) = 1
→ φ satisfacible
Reducción descrita en Sipser, teorema 7.44.
Demostración:
- 1956: Kurt Gödel escribe una carta a John von Neumann planteándole la posibilidad de decidir en tiempo polinomial si una formula de primer order tiene una prueba de longitud n
- 1971: Cook "The Complexity of Theorem Proving Procedures"
- 1972: Karp "Reducibility Among Combinatorial Problems"
- 1972: Miller and Thatcher, editors. "Complexity of computer computations". Plenum Press: proceedings de la conferencia donde se presentó el artículo de Karp frente a 200 investigadores en computación (según el deseo de Michael Rabin)
- 1971/3: Levin "Универсальные задачи перебора" (Universal search problems)
- Heuristicas: NP es acerca de todos los inputs posibles, mientras que en casos concretos los inputs pueden tener rasgos explotables (simplicidad, simetrías, variables interconectadas, etc.)
- Fijar parametros (parametrized complexity)
- Canjear exactitud por velocidad
Ejercicio: encontrar la definición equivalente con certificados.
Teorema:
Supongamos P=NP. Sea L ∈ NTIME(2nc), y M una MT para L.
Sea Lpad = {x012∣x∣c ∣ x ∈ L}. Mostramos que Lpad ∈ NP:
Entonces si P=NP, Lpad ∈ P y existe Mʹ deterministica que decide Lpad.
Entonces L ∈ EXP: para decidir si x ∈ L, lo padeamos con 012∣x∣c y vemos si esto pertenece a Lpad usando Mʹ.
Existen problemas naturales que se sospecha estar en NP \ P sin ser NP completos.
Factorización:
Dado n, m ∈ ℕ tal que 1 ≤ m ≤ n, ¿ n tiene un factor d tal que 1 < d < m?
Se sospecha que FACTOR no está en P, ni es NP completo ni coNP completo.
Observación: el problema ¿ n ∈ ℕ es un número compuesto? es una versión relajada de FACTOR y está en P (equivalentemente, PRIMES está en P).
Otros problemas en NP, sospechados de estar en NP \ (P ∪ NPC)
- isomorfirmo de grafos
- problema de la autopista con peaje (turnpike problem): dadas n(n − 1) / 2 distancias entre pares de puntos, ¿les corresponde alguna configuración de n puntos en una línea?
Idea: definir un problema tal que para ciertos inputs de tamaño n, el problema es resolver SAT (para que no este en P), y en otros inputs no hacer nada (para que no sea NP completo).
Prueba detallada adaptada de Arora y Barak