Post on 08-Feb-2021
Modelos de Computación y ComplejidadGrado en Ingenieŕıa Informática. Tecnoloǵıas Informáticas
Tema 5: Nociones básicas de Teoŕıa de laComplejidad Computacional
Mario de J. Pérez Jiménez
Dpto. Ciencias de la Computación e Inteligencia ArtificialE.T.S. Ingenieŕıa Informática
Universidad de Sevilla
marper@us.es
http://www.cs.us.es/~marper/
Curso 2019-2020
Objetivo general de la Teoŕıa de la Computabilidad:
? Dado un problema de decisión, determinar si existe un procedimientomecánico que lo resuelve.
Objetivo general de la Teoŕıa de la Complejidad Computacional:
? Dado un problema de decisión, determinar si existe un procedimientomecánico que lo resuelve de manera eficiente.
Objetivos espećıficos de este tema:
∗ Máquinas de Turing (deterministas y no deterministas).
∗ Medidas abstractas de Complejidad.
∗ Resolubilidad algoŕıtmica de problemas de decisión.
∗ Reducibilidad en tiempo polinomial.
2 / 25
Máquinas de Turing deterministas
Es una tupla, M = (Q,Σ, δ, q0,F ,B, .):
• Q es un conjunto finito no vaćıo (estados).
• Σ es un alfabeto (de la máquina) tal que Σ ∩ Q = ∅.
• δ es una aplicación (función de transición) de (Q − F )× Σ enQ × Σ× {0, 1,−1} tal que:
? Si δ(q, .) = (q′, s′, x) entonces s′ = . ∧ x = 1.
• q0 ∈ Q (estado inicial).
• F = {qh, qy , qn} ⊆ Q − {q0} (estados finales).
• B ∈ Σ (śımbolo blanco).
• . ∈ Σ (primer śımbolo), . 6= B.
3 / 25
Informalmente, una máquina de Turing determinista M consta de:
? Una cinta infinita a la derecha con primera casilla.
? Una cabeza de trabajo lectora/escritora que se puede desplazar a lolargo de la cinta.
s s s s s s s s s ss BB B B B B B B BB1 2 3 4 5 6 7 8 9 10 11
Unidad de Control
q
Si δ(q, s) = (q′, s ′, x), diremos que M pasa de q a q′, sustituye s por s ′ y semueve según el valor de x .
4 / 25
Ejecución de una MTDSea M una máquina de Turing determinista:
? Al comienzo, la configuración inicial de M se caracteriza por lo siguiente:
• El estado es q0;• El contenido de la cinta es del tipo .uBBBBB..., siendo
∗ u ∈ (Σ− {B})∗: cadena de entrada.
• La cabeza lectora analiza la primera casilla.
? Entonces M pasa a la siguiente configuración, ejecutando un paso detransición de acuerdo con la función δ.
? El proceso se reitera y puede suceder:
• O bien que M alcance un estado final (diremos que M para sobre u y notaremos M ↓ u):
∗ Si el estado final es es qy : M acepta el dato u (escribiremos M(u) = Y ).
∗ Si el estado final es qn : M rechaza el dato u (escribiremos M(u) = N).
∗ Si el estado final es qh : M(u) = u′ ∈ (Σ− {B})∗, siendo .u′BBBB... el contenido
final de la cinta.
• O bien que M no alcance un estado final (diremos que M no para sobre u y notaremos M ↑ u).
5 / 25
Computaciones en una MTD
Configuración de M: una terna (q,w , u), siendo q ∈ Q, w ∈ Σ∗ y u ∈ Σ∗.
? Interpretación:
∗ q es el estado actual en que se encuentra M.
∗ .wu es la palabra escrita en la cinta.
∗ M analiza el último śımbolo de la cadena .w .
s s s s s s s s s ss BB B B B B B B BB1 2 3 4 5 6 7 8 9 10 11
Unidad de Control
q
w u
6 / 25
Sea (q,w , u) una configuración de una MTD.
? Configuración de parada: q ∈ F .? Configuración de aceptación: q = qy .
? Configuración de rechazo: q = qn.
? Cómo pasar de una configuración a la siguiente (`M ):
• Si δ(q,wr ) = (q′,w′r ,−1): (q,w1 . . .wr−1wr , u1 . . . us ) `M (q′,w1 . . .wr−1,w
′r u1 . . . us )
• Si δ(q,wr ) = (q′,w′r ,+1): (q,w1 . . .wr−1wr , u1 . . . us ) `M (q′,w1 . . .wr−1w
′r u1, u2 . . . us )
• Si δ(q,wr ) = (q′,w′r , 0): (q,w1 . . .wr−1wr , u1 . . . us ) `M (q′,w1 . . .wr−1w
′r , u1 . . . us )
? Configuración inicial sobre u ∈ (Σ− {B})∗: (q0, λ, u). La notaremos Iu
Computación de una MTD sobre u: sucesión (finita o infinita) de configura-ciones (Iu es el primer término y los restantes se obtienen del anterior medianteun paso de computación.
∗ Si la sucesión es finita, la última configuración es de parada (diremos que M para sobre u: M ↓ u)).∗ Si la sucesión es infinita, entonces diremos que M no para sobre u: M ↑ u.
7 / 25
MTD de decisión y de cálculo de funciones
MTD, M, que decide un lenguaje L sobre el alfabeto Σ− {B} si se verifica:
? Si u ∈ L, entonces M(u) = Y (el estado de la configuracion de parada es qy ).
? Si u /∈ L, entonces M(u) = N (el estado de la configuracion de parada es qn).
MTD, M, que calcula una función parcial f de (Σ−{B})∗ en Σ∗: se verifica? M ↓ u sii f (u) ↓, para cada u ∈ (Σ− {B})∗.? Si M ↓ u, entonces M(u) = f (u), para cada u ∈ (Σ− {B})∗.
8 / 25
Ejemplo de una MTD de decisión
Q = {q0, q1, q2, q′1, q′2, q3, qh, qy , qn}; Σ = {0, 1,B, .}
(Q − F )× Σ Q × Σ× {0, 1,−1}(q0, 0) (q1, ., 1)(q0, 1) (q2, ., 1)(q0, B) (qy , B, 0)(q0, .) (q0, ., 1)(q1, 0) (q1, 0, 1)(q1, 1) (q1, 1, 1)
(q1, B) (q′1, B,−1)
(q2, 0) (q2, 0, 1)(q2, 1) (q2, 1, 1)
(q2, B) (q′2, B,−1)
(q′1, 0) (q3, B,−1)(q′1, 1) (qn, 1, 0)(q′1, .) (qy , B, 1)(q′2, 0) (qn, 1, 0)(q′2, 1) (q3, B,−1)(q′2, .) (qy , ., 1)(q3, 0) (q3, 0,−1)(q3, 1) (q3, 1,−1)(q3, .) (q0, ., 1)
9 / 25
Ejemplo de una MTD que calcula una función
Q = {q0, q1, qh, qy , qn}; Σ = {0, 1,B, .}
(Q − F )× Σ Q × Σ× {0, 1,−1}(q0, 0) (q0, 0, 1)(q0, 1) (q0, 1, 1)(q0,B) (q1,B,−1)(q0, .) (q0, ., 1)(q1, 0) (qh, 1, 0)(q1, 1) (q1, 0,−1)(q1,B) (q1,B, 0)(q1, .) (qh, ., 1)
Hallemos M(01)
1.q0. 0 1 B. 5. . 0
q11 B.
2. .q00 1 B. 6. .
q10 0 B.
3. . 0q01 B. 7. .
qh1 0 B.
4. . 0 1q0B.
10 / 25
MTD’s que resuelven problemas
¿Cómo resolver un problema X , mediante una MTD?
I Si X es un problema de decisión,
? Una MTD resuelve X sii decide el lenguaje LX asociado a X .
I Si X es un problema identificado por una aplicación fX : LX− → Σ∗,
? Una MTD resuelve X sii calcula la función fX .
11 / 25
Máquinas de Turing deterministas con k cintas
? En cada instante la máquina está en un estado.
? Consta de k cintas, infinitas a la derecha con primera casilla.
? Cada cinta tiene una cabeza que en cada instante:
• Analiza una casilla.
• Puede reescribir sobre la casilla.
• Puede cambiar de estado (el mismo en todas las casillas).
• Se puede desplazar: +1,−1, 0.
12 / 25
? Para realizar una computación con entrada u ∈ Σ∗:
• Se registra la entrada u ∈ Σ∗ en la primera cinta.
• Las restantes cintas están en blanco.
• Todas las cabezas apuntan a la primera casilla.
• La máquina está en el estado inicial.
• La función de transición actúa sobre cada cinta.
• Si termina en qh, la salida es el contenido de la cinta k–ésima.
Teorema : Para cada MTD, M, con k cintas existe una MTD, M ′, conuna cinta tal que M(w) = M ′(w), para cada entrada w .
¿Qué peaje se ha de pagar para “pasar” de una MTD con k cintas a una
MTD con una sóla cinta que sea “equivalente” a ella?
13 / 25
Máquinas de Turing no deterministas
Es una tupla, M = (Q,Σ, δ, q0,F ,B, .), en donde:
• Q es un conjunto finito no vaćıo (estados).
• Σ es un alfabeto (de la máquina), Q ∩ Σ = ∅.
• δ : (Q − F )× Σ→ P(Q × Σ× {0, 1,−1}) (función de transición).
• q0 ∈ Q (estado inicial).
• F = {qh, qy , qn} ⊆ Q − {q0} (estados finales).
• B ∈ Σ (śımbolo blanco)
• . ∈ Σ (primer śımbolo), . 6= B.
14 / 25
MTD versus MTND
Es una tupla M = (Q,Σ, δ, q0,F ,B, .):
Máquinas de Turing deterministas Máquinas de Turing no deterministas
? Q es un conjunto finito no vaćıo (estados).
? Σ es un alfabeto (de la máquina), Σ ∩ Q = ∅.
• δ : (Q − F )× Σ→ Q× Σ× {0, 1,−1}
? q0 ∈ Q (estado inicial).
? F = {qh, qy , qn} ⊆ Q − {q0} (estados finales).
? B ∈ Σ (śımbolo blanco).
? . ∈ Σ (primer śımbolo), . 6= B.
? Q es un conjunto finito no vaćıo (estados).
? Σ es un alfabeto (de la máquina), Q ∩ Σ = ∅.
• δ : (Q − F )× Σ→ P(Q× Σ× {0, 1,−1})
? q0 ∈ Q (estado inicial).
? F = {qh, qy , qn} ⊆ Q − {q0} (estados finales).
? B ∈ Σ (śımbolo blanco).
? . ∈ Σ (primer śımbolo), . 6= B.
15 / 25
Máquinas de Turing no deterministas
Los conceptos de configuración y computacion en MTNDs se definen demanera similar a como se hizo con las MTDs.
• Una configuración de una MTND puede tener más de una configuraciónsiguiente.
• Dada una MTND, M, y un dato de entrada u pueden existir muchascomputaciones de M sobre u.
• Toda MTD es, en particular, una MTND.
• Una MTND de decisión es aquella cuyos estados finales son {qy , qn}.
16 / 25
Decisión en una MTND y resolución de problemas
MTND, M, que decide un lenguaje L sobre el alfabeto Σ− {B} si se verifica:
? u ∈ L si y sólo si existe, al menos, una computación de M(u) tal que paray devuelve Y (śı).
Teorema : Sea L un lenguaje tal que una MTND, M, decide L. Entoncesexiste otra MTD, M ′, con tres cintas que también decide L.
¿Qué peaje se ha de pagar para “pasar” de una MTND que decide L a unaMTD que también decide L?
Una MTND resuelve un problema de decisión X sii decide el lenguaje LXasociado a X .
17 / 25
Medidas abstractas de complejidad
Al igual que se hizo con los programas GOTO, las MTDs se pueden enumerar através de sus códigos: {Me : e ∈ N}).
∗ ϕ(k)n : función de aridad k calculada por la MTD, Mn, de código n.
Definición: Una medida de complejidad computacional es una clase defunciones 1–arias sobre N, {fn : n ∈ N}, tal que:
(a) dom(fn) = dom(ϕ(1)n ), para cada n ∈ N.
(b) El predicado θ(n, x , y) ≡ fn(x) = y , es computable.
Las condiciones (a) y (b) se denominan axiomas de Blum.
18 / 25
Ejemplos:
1.- TIEMPO
tn(x) =
{número de pasos en la computación Mn(x), si Mn(x) ↓↑ e.c.o.c.
2.- ESPACIO
cn(x) =
{mayor valor de cualquier variable en la computación Mn(x), si Mn(x) ↓↑ e.c.o.c.
3.- {ϕ(1)n : n ∈ N} no es una medida de complejidad.
19 / 25
Consecuencias de los axiomas de Blum
? Teorema de recursividad relativa.
• Una consecuencia: entre dos medidas de complejidad arbitrarias, siempre existe una relación entre
ellas (expresadas a través de lo que se denomina un factor de escala).
? Teorema de existencia de problemas intratables.
• Respecto de cualquier medida de complejidad, siempre existe, al menos, un problema tal que
cualquier programa que lo resuelve utiliza una cantidad de recursos que tiene tamaño exponencial.
? Teorema de aceleración (Blum).
• Respecto de cualquier medida de complejidad, siempre existe, al menos, un problema que carece de
un programa óptimo (en función de los recursos de la medida) que lo resuelve.
20 / 25
Complejidad computacional de un problema abstracto (respecto de unamedida; por ejemplo, tiempo o espacio):
? Idea para una definición local:
• Se consideran todas las soluciones mecánicas del problema abstracto.• Se calcula el coste de cada solución a partir de la medida de complejidad.• Se elige la solución más económica.
? No es posible una definición local (teorema de aceleración).
? Estudio de forma global a través de las clases de complejidad.
Una clase de complejidad estará especificada por:
? Un modelo de computación.
? Un modo de computación.
? Los recursos a contabilizar.
? Una cota superior de los recursos permitidos.
21 / 25
Coste en tiempo de una MTD
Sea M una MTD.
Definición: Si C = (Cu ,C1, . . . ,Ct ) es una computación de parada de M con entradau ∈ (Σ \ {B})∗, diremos que t es el tiempo de ejecución de la computación C.
Definición: La complejidad en tiempo de M es la función parcial tM : N− → Ndefinida aśı:
tM (n) =
{max{tiempo de ejecución de M(u) : u ∈ (Σ \ {B})∗ ∧ |u| = n}, si existe dicho máximoNo definida, en caso contrario
¿Cómo se interpreta que tM (27) = 1594? Esto quiere decir que al ejecutar M(u),siendo u cualquier entrada de tamaño 27, el máximo número de pasos que se ha dedar para saber si M acepta u, es 1594.
Definición: Diremos que M trabaja en tiempo polinomial si existe un polinomio p(n)tal que ∃c > 0 ∃n0 ∀n (n ≥ n0 ∧ tM (n) ↓ ⇒ tM (n) ≤ c · p(n)).
22 / 25
Coste en tiempo de una MTND
Sea M una MTND.
Definición: Si C = (Cu ,C1, . . . ,Ct ) es una computación de parada de M con entradau ∈ (Σ \ {B})∗, diremos que t es el tiempo de ejecución de la computación C.
Definición: La complejidad en tiempo de M es la función total tM : N→ N definidaaśı:
tM (n) = máx{t∗M (u) : u ∈ (Σ \ {B})∗ ∧ |u| = n}
en donde:
t∗M (u) ={
min{t(C) : C es computación de aceptación de u} si existe dicho ḿınimo0 e.c.o.c.
¿Cómo se interpreta que tM (27) = 1594? Esto quiere decir que al ejecutar M(u),siendo u cualquier entrada de tamaño 27, el máximo número de pasos que ha de darcualquier computación de M(u) para saber si M acepta u, es 1594. Dicho con otraspalabras, si tras realizar 1594 pasos de cualquier computación de M(u) no se hallegado a una computación de aceptación, entonces “rechazar” ese dato de entrada.
Definición: M trabaja en tiempo polinomial si existe un polinomio p(n) tal que∃c > 0 ∃n0 ∀n (n ≥ n0 → tM (n) ≤ c · p(n)).
23 / 25
Resolubilidad algoŕıtmica de problemas de decisión
Definición: Una MTD de decisión, M, resuelve algoŕıtmicamente unproblema de decisión X sii M decide el lenguaje LX asociado a X .
? Una MTD de decisión, M, decide un lenguaje L ⊆ Σ∗ si para cada u ∈ Σ∗: si u ∈ L entonces M(u) es
una computación de aceptación, y si u /∈ L entonces M(u) es una computación de rechazo.
Definición: Una MTND de decisión, M, resuelve algoŕıtmicamente unproblema de decisión X sii M decide el lenguaje LX asociado a X .
? Una MTND de decisión, M, decide un lenguaje L ⊆ Σ∗ si para cada u ∈ Σ∗: u ∈ L sii
existe, al menos, una computación de aceptación de M(u).
Definición: Un problema de decisión es resoluble algoŕıtmicamente entiempo polinomial si existe una MTD o una MTND que decide el lenguajeasociado al problema y trabaja en tiempo polinomial.
24 / 25
Reducibilidad en tiempo polinomial
Formalizar la dificultad comparativa de la resolubilidad algoŕıtmica de un problemarespecto de la de otro.
Definición: Sean X1 = (EX1 , θX1 ) y X2 = (EX2 , θX2 ) dos problemas de decisión.Diremos que X1 es es reducible en tiempo polinomial a X2 (notaremos X1 6p X2) siiexiste una función computable g : EX1 → EX2 tal que? g es de coste en tiempo polinomial (calculable por una MTD que trabaja en
tiempo polinomial).
? Para cada u ∈ EX1 se verifica: u ∈ LX1 ⇐⇒ g(u) ∈ LX2 .Diremos que g : X1 6p X2 es una reducción polinomial de X1 a X2.
Proposición: Sean X1,X2,X3 problemas de decisión. Se verifica:
? X1 6p X1.
? X1 6p X2 ∧ X2 6p X3 =⇒ X1 6p X3.
Definición: (Equivalencia en tiempo polinomial)
X1 ≡p X2 ⇐⇒ X1 6p X2 ∧ X2 6p X1.
25 / 25