Organización de la materia

Bibliografía

Preámbulo

Se recomienda conocer un poco acerca de máquinas de Turing, y el resultado de la existencia de una máquina universal de Turing.

Referirse a CC:AMA, capítulo 1 en particular secciones 1.2 a 1.4.

Computabilidad

1936: la propuesta de Turing

Turing propuso de manera convincente un modelo de computación que llamó "computing machines".

Su forma de proponerlo era:

Resultados importantes

Años 1960: complejidad computacional

Formas inadecuadas de encarar el problema

Ya sabemos medir las cosas siguientes en función de la longitud de la entrada:

Como los vamos a resolver

Lenguages y funciones

Unos lenguajes sobre {0, 1} * 

Los problemas de decisión no son...

...problemas de función (encontrar el x tal que...).

Sin embargo, los problemas de función suelen tener su equivalente en problemas de decisión:

Nuestras Máquinas de Turing

Tienen:

MT: un paso

En función de su estado interno activo y de los símbolos leidos por los cabezales en todas las cintas, y según la función de transición, un paso de una MT consiste en:

Una MT es un tuple (Γ , Q, δ) con:

MT que computan

Una MT computa una función f: {0, 1} *  ↦ {0, 1} si, dada una configuración inicial con entrada x ∈ {0, 1} * , se detiene después de un número finito de pasos con f(x) escrito en la última cinta.

Una MT computa f en tiempo T(n) si su computación en cada entrada x necesita cómo máximo T(∣x∣) pasos.

Observación

Nos interesa la cantidad de pasos hechos por una MT, pero el número de estados internos no importa.

Resultado: una MT puede simular n "registros" (estados activos) tomando valores en los conjuntos R1, R2, . . . , Rn con un registro tomando valores en R1 × R2 × . . .  × Rn.

MT indiferente

Una MT es indiferente (eng. oblivious) si los movimientos de sus cabezales sólo dependen de la longitud de sus inputs y no de los bits.

Es decir, para todos los inputs de longitud n, existe une función pos: ℕ  ↦ ℕ k tal que pos(x) es la posición de los k cabezales en el paso x.

Substitución de MT

Para toda f: {0, 1} *  ↦ {0, 1} y T: ℕ  ↦ ℕ  constructible en tiempo, si f es computable por una MT con k cintas y un alfabeto Γ  en tiempo T(n), entonces es computable por:

  1. una MT con alfabeto {0, 1, ▫,  ⊳ } en tiempo 4log∣Γ ∣(T(n))
  2. una MT con 2 cintas en tiempo O(T(n)2)
  3. una MT indiferente en tiempo O(T(n)2)

Más resultados similares

Más resultados de cambio de tipo de MT con deceleración polinomial:

Linear speed-up theorem (Hartmanis y Stearns, 1965)

Si f es computable por una MT M en tiempo T(n), entonces para cualquiera constante c ≥ 1, f es computable por una MT Mʹ en tiempo T(n) / c.

Clase de complejidad TIME

Sea T: ℕ  ↦ ℕ . Un lenguaje L es en TIME(T(n)) si existe una MT que corre en tiempo cT(n) (para un c > 0) y decide L.

P

Una manera formal de definir los calculos rápidos:

P = ⋃ ppolinomio TIME(p(n)) = ⋃ c ≥ 1 TIME(nc)

La clase es robusta si cambiamos el tipo de MT que usamos.

Doblar el tamaño del input sólo necesita k veces más tiempo (con k constante):

Con P (y arriba), no importa (tanto) el modelo

Cuando vamos a describir algoritmos para P, no vamos a describir MMTT hasta los últimos detalles.

Cuando tenemos un algoritmo en pseudocódigo cuya complejidad podemos caracterizar, podemos decir que tenemos una MT que implementa ese mismo algoritmo, con una deceleración polinomial.

Codificación

Críticas de "P = problemas fáciles"

¿Dónde está P?

Problemas arbitrariamente difíciles

Para toda función T: ℕ  ↦ ℕ  constructible en tiempo, existe un lenguaje LT decidible que no puede ser decidido por una MT corriendo en tiempo T(n).

Demostración

LT = {⌊M⌋ ∣ M es una MT y M(⌊M⌋) = 1 en T(∣⌊M⌋∣) pasos }

Time hierarchy theorem (Hartmanis y Stearns, 1965)

Generalización del resultado previo:

Si f,g son funciones constructibles en tiempo tales que f(n). log(f(n)) = o(g(n)), entonces

TIME(f(n))  ⊂  ≠  TIME(g(n))

En particular: TIME(nc)  ⊂  ≠  TIME(nd) con c < d.

Aplicación

EXPTIME = ⋃ c ≥ 0TIME(2nc).
Consecuencia del time hierarchy theorem:
P  ⊂  EXPTIME

Conclusiones

Referencias