P vs EXPTIME



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       



LIN(0,1) = sistemas de inecuaciónes lineales con solución booleanas

(0-1 integer programming)

LIN(0,1)  ∈  EXPTIME (enumerar soluciones y verificar).

no se sabe si  ∈  P


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

Lenguajes en NP

existencia de certificados cortos = pertenencia a NP:

P  ⊆  NP  ⊆  EXPTIME


P y NP

MMTT nondeterminísticas

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 cT(n) tal que para todo x ∈ {0, 1} * :
x ∈ L ↔ M(x) = 1

NPold = ⋃ c ∈ ℕ NTIME(nc)

Equivalencia

Las dos definiciones son equivalentes.
  1. L ∈ NPoldL ∈ NP
  2. L ∈ NPL ∈ NPold

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:

Ejercicio

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:

Un lenguaje NP completo

TMSAT = {⌊M, x, 1n, 1t⌋ ∣ ∃ u ∈ {0, 1}n. M(x, u) = 1 en t pasos}

CNF-SAT

SAT  ≤ p CNF-SAT

3SAT

CNF-SAT  ≤ p 3SAT

Teorema de Cook-Levin

SAT es NP-complete

Poder expresivo booleano


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:

  1. tiene 2 cintas (con input en lectura sola)
  2. es indiferente:

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.


A partir de la función de transición de M definimos:

Como M es indiferente, se pueden definir las funciones ℕ  ↦ ℕ :

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:

Queremos: φx ∈ SAT ↔ ∃ u ∈ {0, 1}p(∣x∣). y = (x, u). M(y) = 1


Variables de φx:

Codificación de las restricciónes:



Tamaño de φx:

2n + 2c + 2c + (T(n) − 1)(3c + 1)23c + 1  ≤  d(n + T(n)), d ∈ ℕ 



Conclusiones

No tenemos ninguna demostración que PNP (≠ EXPTIME) pero hoy en día se supone que NP es más dificil que P (y más fácil que EXPTIME).