modelos de computaci on y complejidad · 2020. 4. 11. · modelos de computaci on y complejidad...

25
Modelos de Computaci´ on y Complejidad Grado en Ingenier´ ıa Inform´ atica. Tecnolog´ ıas Inform´ aticas Tema 5: Nociones b´ asicas de Teor´ ıa de la Complejidad Computacional Mario de J. P´ erez Jim´ enez Dpto. Ciencias de la Computaci´ on e Inteligencia Artificial E.T.S. Ingenier´ ıa Inform´ atica Universidad de Sevilla [email protected] http://www.cs.us.es/~marper/ Curso 2019-2020

Upload: others

Post on 08-Feb-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

  • 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

    [email protected]

    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