P vs EXPTIME
- P = ⋃ c ≥ 1 TIME(nc)
- EXPTIME = ⋃ c ≥ 1TIME(2nc).
- time hierarchy theorem → P ⊂ EXPTIME
- PATH = {⌊(G, s, t)⌋ ∣ G un grafo dirigido con camino s → t}
- algoritmo brute-force (mm caminos posibles) → PATH ∈ 2EXPTIME
- algoritmo goal-oriented → PATH ∈ P (Sipser, thm. 7.14)
- RELPRIME = {⌊(x, y)⌋ ∣ x, y ∈ ℕ relativamente primos }
- enumerar todos los dividores de x y y, si otro que 1 aparece en ambas listas, output 0, sino 1
→ RELPRIME ∈ EXPTIME si ⌊(x, y)⌋ en binario!
- algoritmo de Euclides: ∈ P (Sipser, thm. 7.15)
Algoritmo de Euclides:
E: input: x,y
hasta que y == 0:
a) x ← x mod y
b) intercambiar x y
output x
R: input: x,y
si E(x,y) == 1 output accept
si no, output reject
- 2COLOR = {⌊G⌋ ∣ G es coloreable por 2 colores }
- 3COLOR = {⌊G⌋ ∣ G es coloreable por 3 colores }
- ∈ P? no se sabe
- ∈ EXPTIME por cierto
- ∈ TIME(O(1. 3289n)) (Beigel y Eppstein, 2000)
- VERTEXCOVER =
{⌊(G, k)⌋ ∣ se puede "cubrir" el grafo G con k nodos }
- ∈ EXPTIME
- ∈ P? no se sabe
LIN(0,1) = sistemas de inecuaciónes lineales con solución booleanas
(0-1 integer programming)
- sea E = :
- x1 + 2x2 + x3 + x4 ≥ 3
x1 + x4 ≥ 0
2x1 + x2 − x3 ≤ 1
- solución: (1, 1, 0, 0)
- E ∈ LIN(0,1)
LIN(0,1) ∈ EXPTIME (enumerar soluciones y verificar).
no se sabe si ∈ P
- formulas de lógica proposicional:
φ : : xi ∣ ¬ φ ∣ φ1 ∧ φ2 ∣ φ1 ∨ φ2
- sea x1, …, xn la variables que aparecen en φ,
escribimos φ(z) el valor de φ cuando sus variables son asignadas a z ∈ {0, 1}n
- si existe tal z, φ es satisfacible
- SAT = {⌊φ⌋ ∣ φ satisfacible }
- ∈ EXPTIME, no se sabe si ∈ P > si ⌊x⌋ ∈ SAT, 3COLOR, ..., x es un problema que tiene una solución, > que es pequeña y verificable rapidamente
No es el caso de todos los lenguajes en EXPTIME.
NP
Un lenguaje L ⊆ {0, 1} * está en NP ssi existe un polinomio p: ℕ ↦ ℕ y una MT M corriendo en tiempo polinomial tal que para todo x ∈ {0, 1} * :
x ∈ L ↔ ∃ u ∈ {0, 1}p(∣x∣) tal que
M(x, u) = 1
- M se llama la verificadora de L, y u un certificado de x (con respeto a L y M).
- La definición de NP es asimétrica!
Lenguajes en NP
existencia de certificados cortos = pertenencia a NP:
- SAT, LIN(0,1), 3COLOR
- traveling salesman
- subset sum
- graph isomorphism
- numeros compositos
- ...
P ⊆ NP ⊆ EXPTIME
- No se sabe si P ≠ NP, ni si NP ≠ EXPTIME.
P y NP
- en P están los problemas fáciles
- en NP están los problemas que tienen soluciones facilmente chequeables
- NP representa los problemas de búsqueda con soluciones cortas
MMTT nondeterminísticas
- Una MTND tiene δ0 and δ1 y un estado especial qaccept.
- En cada paso, una MTND hace una elección arbitraria entre las dos funciones de transición.
- Para un input x, si existe una secuencia de esos pasos (elecciones nondeterminísticas) que hace que M alcanza qaccept, decimos que M(x) = 1.
- Si toda secuencia de elecciones hace que M se detiene sin alcanzar qaccept, decimos que M(x) = 0.
- M corre en tiempo T(n) si para todo input x ∈ {0, 1} * y toda secuencia de elecciones nondeterminísticas, M alcanza qhalt o qaccept dentro de T(∣x∣) pasos.
Observación
Una MTND no representa cálculos fisicamente realisables.
Definición tradicional de NP
Sea T: ℕ ↦ ℕ y L ⊆ {0, 1} * . Decimos que L ∈ NTIME(T(n)) si existe una constante c > 0 y una TMND M en tiempo c⋅T(n) tal que para todo x ∈ {0, 1} * :
x ∈ L ↔ M(x) = 1
NPold = ⋃ c ∈ ℕ NTIME(nc)
Equivalencia
Las dos definiciones son equivalentes.
- L ∈ NPold → L ∈ NP
- si existe una MTND M que decide L, se puede construir una MTD Mʹ que, con input (x, u) y u de longitud adecuada, simula una computación de M con input x eligiendo δu[n] en cada paso n.
- L ∈ NP → L ∈ NPold
- se puede construir una MTND que, con input x, genera un certificado en p(∣x∣) pasos de manera nondeterministica, y luego lo averigua con la verificadora de L.
Filología computacional
Travelling Salesman está en NP porque una gira satisfaciendo l ≤ k puede ser eligida nondeterministicalmente en n pasos y luego la condicion l ≤ k verificada en un número polinomial de pasos [...].
(John E. Savage, Models of Computation: Exploring the Power of Computing, 1997)
Reducciones
Sea A, B ⊆ {0, 1} * . A es (tiempo-)polinomialmente reducible a B, denotado A ≤ pB, si existe una función f: {0, 1} * ↦ {0, 1} * calculable en tiempo polinomial tal que para todo x ∈ {0, 1} * , x ∈ A ssi f(x) ∈ B.
Proposiciones:
- si A ≤ pB y B ∈ P entonces A ∈ P
- ≤ p es transitiva
Ejercicio
- Mostrar que 3COLOR ≤ p SAT:
- Proveer una traducción G → φG
- Demostrar que: G tiene un coloreo → φG tiene una asignación
- Demostrar que: φG tiene una asignación → G tiene un coloreo
NP hardness, completeness
Decimos que B es NP difícil (hard) si para todo A ∈ NP, A ≤ pB. Decimos que B es NP completo (complete) si B es NP difícil y está en NP.
Proposiciones:
- si L es NP difícil y L ∈ P, entonces P = NP
- si L es NP completo, entonces L ∈ P ssi P = NP.
Un lenguaje NP completo
TMSAT = {⌊M, x, 1n, 1t⌋ ∣ ∃ u ∈ {0, 1}n. M(x, u) = 1 en t pasos}
- TMSAT ∈ NP: la verificadora de N es una máquina universal de Turing que simula M con input (x,u) y verifica que su output es 1 despues de t pasos. Su corrida es polinomial en función de su input porque se puede simular máquinas con una desaceleración polinomial.
- Sea L ∈ NP. Existe verificadora M corriendo en tiempo polinomial q(n), y existe un polinomio p(n) que determine el tamaño de los cartificados. Entonces a toda $x\inL$ le asociamos la string ⌊M, x, 1p(n), 1q(n + p(n))⌋.
CNF-SAT
- un literal es una variable o una variable negada (xi, ¬ xi)
- una cláusula es una disyuncción de literales tal que no aparece un literal y su contrario
- ej: x1 ∨ ¬ x2 ∨ ¬ x3
- una formula proposicional es en Forma Normal Conjunctiva si es una conjuncción de cláusulas
- ej: (x1 ∨ x3) ∧ (x1 ∨ ¬ x2 ∨ ¬ x3 ∨ x4) ∧ (¬ x1 ∨ ¬ x4)
- definimos CNF-SAT = {⌊φ⌋ ∣ φ es en FNC y es satisfacible }
SAT ≤ p CNF-SAT
- Idea: introducir variables nuevas para evitar explosión exponencial
3SAT
- una formula es en 3FNC si es en FNC y cada cláusula tiene como máximo 3 literales
- ej: (x1 ∨ x3) ∧ (¬ x2 ∨ ¬ x3 ∨ x4) ∧ (¬ x1 ∨ ¬ x4)
- 3SAT = {⌊φ⌋ ∣ φ es en 3FNC y es satisfacible }
CNF-SAT ≤ p 3SAT
- Idea: introducir variables nuevas para evitar explosión exponencial
Teorema de Cook-Levin
- Cook "The Complexity of Theorem Proving Procedures", 1971
- Levin "Универсальные задачи перебора", 1973
SAT es NP-complete
Poder expresivo booleano
- Igualdad: la formula
(x1 ∨ ¬ y1) ∧ (¬ x1 ∨ y1) ∧ … ∧ (xn ∨ ¬ yn) ∧ (¬ xn ∨ yn)
es satisfacible por una asignación z ssi xi(z) = yi(z) para todo i.
- Funciónes booleanas: dada f: {0, 1}k ↦ {0, 1}:
- para v ∈ {0, 1}k, definimos Cv(xi, . . , xk) una cláusula tal que Cv(v) = 0 y Cv(u) = 1 para u ≠ v
- definimos φ = ⋀ {v ∣ f(v) = 0}Cv(x1, x2, …, xk)
- entonces:
- ∀ z ∈ {0, 1}k, φ(z) = f(z)
- ∣φ∣ ≤ k2k
Sea L ∈ NP, queremos mostrar que L ≤ pSAT.
Por definición, ∃ M corriendo en tiempo polinomial y p polinomio tal que para todo x ∈ {0, 1} * :
x ∈ L ↔ ∃ u ∈ {0, 1}p(∣x∣). M(x, u) = 1
Queremos una transformación en tiempo polinomial x ↦ φx tq:
∃ u ∈ {0, 1}p(∣x∣). M(x, u) = 1 ↔ φx ∈ SAT
Reemplazamos la verificadora M por una version que:
- tiene 2 cintas (con input en lectura sola)
- es indiferente:
- las corridas de M toman el mismo tiempo para todo input de tamaño n
- la ubicación de los cabezales de M en un paso i sólo dependen del tamaño del input y de i
Un instantáneo de M es un tuple (a, b, q) ∈ Γ 2 × Q.
Un instantáneo puede ser representado con c bits, c dependiendo de Γ y Q (y independiente del input).
Una traza es una succesión de instantáneos.
- ¿Cuales son las condiciones que debe cumplir una traza para representar una corrida exitosa de M con input (x, u)?
- Vamos a construir φx como un patrón de traza que es satisfacible si y sólo si existe un u tal que M(x, u) = 1
A partir de la función de transición de M definimos:
- δwrite: Γ 2 × Q ↦ Γ
- δstate: Γ 2 × Q ↦ Q
Como M es indiferente, se pueden definir las funciones ℕ ↦ ℕ :
- inpos(i) la posición del cabezal de input en el paso i.
- prev(i) el último paso antes de i tal que el cabezal de escritura está en el mismo lugar que en el paso i. Definimos prev(i) = 1 por defecto.
Los valores de inpos(i) and prev(i) no dependen del input y = (x, u). Además esos valores pueden ser calculados en tiempo polinomial, corriendo M con un input trivial.
Restricciones que debe cumplir una traza [z1, z2, . . . , zT(n)] para representar una corrida exitosa de M con input y:
- z1 = ( ⊳ , ⊳ , qstart)
- zT(n) = (a, 1, qhalt), a ∈ Γ
- para todo zi = (ai, bi, qi) con i ∈ {2, …, T(n)}:
- ai = yinpos(i)
- bi = δwrite(zprev(i))
- qi = δstate(zi − 1)
- para cada i ∈ {2, …, T(n)}, existe une función f tal que esas restricciones son cumplidas ssi f(yinpos(i), zprev(i), zi − 1, zi) = 1
Queremos: φx ∈ SAT ↔ ∃ u ∈ {0, 1}p(∣x∣). y = (x, u). M(y) = 1
Variables de φx:
- Yi con i ∈ [1. . n + p(n)]
- Zi con i ∈ [1. . cT(n)]
Codificación de las restricciónes:
- y[1. . n] = x → formula de tamaño 2n
- z1 → formula de tamaño 2c
- zT(n) → formula de tamaño ≤ 2c
- para cada i ∈ [2. . T(n)],
f(yinpos(i), zprev(i), zi − 1, zi) = 1
→ formula φi de tamaño (3c + 1)23c + 1 tal que
φi(Yʹ, Zʹ1, Zʹ2, Zʹ3) = 1 ↔ f(. . . ) = 1
, con:
- Yʹ son las variables que codifican yinpos(i)
- Zʹ1 son las variables que codifican zprev(i)
- Zʹ2 → zi − 1
- Zʹ3 → zi
- para cada i, para conocer Yʹ, Zʹ1, Zʹ2, Zʹ3, hay que conocer inpos(i) y prev(i), y para eso hay que correr y observar M(0n + p(n))
Tamaño de φx:
2n + 2c + 2c + (T(n) − 1)(3c + 1)23c + 1 ≤ d(n + T(n)), d ∈ ℕ
- se puede construir x ↦ φx en tiempo polinomial:
- correr M(0n + p(n))
- generar φx
- φx es en FNC
- supongamos x ∈ L
→ ∃ u ∈ {0, 1}n. M(x, u) = 1
→ existe una traza que reprensenta la corrida exitosa de M(x, u)
→ usando u y la traza, se puede construir una asignacion z tal que φx(z) = 1
→ φx ∈ CNF-SAT
- supongamos φx ∈ CNF-SAT
→ existe z, φx(z) = 1
→ constuir u a partir de z
→ x ∈ L
- L ≤ p CNF-SAT
- Entonces CNF-SAT es NP-difícil
- Entonces es NP-completo
Conclusiones
No tenemos ninguna demostración que P ≠ NP (≠ EXPTIME) pero hoy en día se supone que NP es más dificil que P (y más fácil que EXPTIME).