TEMA 1 Modelos convencionales de computación Mario de J. Pérez Jiménez Grupo de investigación en Computación Natural Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Computabilidad y Complejidad Curso 2011-12 Modelos convencionales de Computación Modelos formales de computación implementables en soporte electrónico. I Modelo de computación GOTO (orientado a programas). I Programas GOTO. I Programa universal. I Modelo de computación universal. I Existencia de problemas indecidibles en este modelo. I Modelo de computación de las MT (orientado a máquinas). I Máquinas de Turing. I Máquina de Turing universal. I Modelo de computación universal. I Existencia de problemas indecidibles en este modelo. 2 / 23 Preliminares. Lenguajes Formales I Alfabeto: Conjunto finito no vacı́o. I Palabra (cadena) sobre un alfabeto Σ. I Sucesión finita de elementos de Σ. I Palabra vacı́a: λ. I Longitud de una palabra u: longitud de la sucesión (|u|). I Σn = conjunto de palabras sobre Σ de longitud n . I Σ∗ = conjunto de palabras sobre Σ. 3 / 23 I Lenguaje sobre un alfabeto Σ: Subconjunto de Σ. I Concatenación de palabras σ : n → Σ y τ : m → Σ. I Es la palabra στ : n + m → Σ definida ası́: στ (x) = σ(x) τ (x − n) si x < n si n 6 x < n + m I Concatenación de lenguajes sobre Σ: L1 L2 = {στ : σ ∈ L1 ∧ τ ∈ L2 } I Clausuras de Kleene de un lenguaje. L0 = {λ}, L1 = L Ln+1 = LLn [ n L∗ = L n∈N L+ = L∗ − {λ} 4 / 23 Preliminares. Problemas de optimización Un problema de optimización, X , es una tupla (IX , sX , fX ) donde: I IX es un lenguaje sobre un alfabeto. I sX es una función cuyo domino es IX y para cada a ∈ IX , el conjunto sX (a) es finito. I fX es una función (objetivo) que asigna a cada a ∈ IX y cada ca ∈ sX (a), un número racional positivo fX (a, ca ). Elementos de IX : instancias del problema. ∀a ∈ IX , cada elemento de sX (a) es un candidato (una solución). ∀a ∈ IX , ca ∈ sX (a), el número fX (a, ca ): valor para ca . fX proporciona el criterio para determinar una mejor solución. 5 / 23 Un ejemplo: El problema Minimum Vertex Cover • Informalmente: I Problema Minimum Vertex Cover : dado un grafo no dirigido, determinar el tamaño mı́nimo de un recubrimiento de vértices I Un conjunto de vértices de un grafo es un r.v. si cada arista posee, al menos, uno de sus extremos en ese conjunto . • Formalmente: I IX : conjunto de grafos no dirigidos. I Para cada grafo no dirigido G , sX (G ) = conjunto de todos los r.v. de G . I La función objetivo fX se define ası́: I Para cada grafo no dirigido G y cada r.v. V 0 de G : fX (G , V 0 ) = cardinal de V 0 6 / 23 Sea X = (IX , sX , fX ) un problema de optimización: I Una solución óptima para a ∈ IX es un candidato c ∈ sX (a) tal que: I O bien, ∀c 0 ∈ sX (a) se tiene fX (a, c) ≤ fX (a, c 0 ) (c es una solución minimal para a). I O bien ∀c 0 ∈ sX (a) se tiene fX (a, c) ≥ fX (a, c 0 ) (c es una solución maximal para a). Un problema de minimización (resp. maximización) es un problema de optimización tal que cada solución óptima es minimal (resp. maximal). I El problema Minimum Vertex Cover es un problema de minimización. 7 / 23 Problemas de decisión • Informalmente: I Problemas que sólo admiten como respuesta/salida Sı́ o No. • Formalmente: I Un problema de decisión X , es un par (IX , θX ) tal que IX es un lenguaje sobre un alfabeto y θX es un predicado sobre IX . Un problema de decisión X = (IX , θX ) se puede considerar como un problema de optimización (IX , sX , fX ) tal que ∀a ∈ IX : I sX (a) = {θX (a)}. I fX (a, θX (a)) = 1. 8 / 23 Correspondencia entre problemas de decisión y lenguajes: I Cada lenguaje, L, sobre un alfabeto Σ tiene asociado un problema de decisión, XL : I I IXL = Σ∗ . θXL = {(x, 1) : x ∈ L} ∪ {(x, 0) : x ∈ / L}. I Cada problema de decisión X = (IX , θX ) tiene asociado un lenguaje, LX , sobre IX : I LX = {a ∈ IX : θX (a) = 1}. 9 / 23 Todo problema de optimización se puede transformar en un problema de decisión equivalente. Ejemplo: I El problema Minimum Vertex Cover. I I Versión de optimización: Dado un grafo no dirigido G , hallar el tamaño mı́nimo de un r.v. de G . Versión de decisión: Dado un grafo no dirigido G y un número natural k, determinar si G posee un r.v. de tamaño menor o igual que k . ¿Qué peaje se ha de pagar para transformar un problema de optimización en un problema de decisión “equivalente”? 10 / 23 Máquinas de Turing I Es una tupla, M = (Q, Σ, δ, q0 , F , B, .): I Q es un conjunto finito no vacı́o (estados). I Σ es un alfabeto (de la máquina), Q ∩ Σ = ∅. I δ: (Q − F ) × Σ → Q × Σ × {0, 1, −1} (función de transición) tal que δ(q, .) = (q 0 , s 0 , x) =⇒ s 0 = . ∧ x = 1. I q0 ∈ Q (estado inicial). I F = {qh , qy , qn } ⊆ Q (estados finales). I B ∈ Σ (sı́mbolo blanco). I . ∈ Σ (primer sı́mbolo), . 6= B. 11 / 23 Una máquina de Turing M consta de: I Una cinta infinita a la derecha con primera casilla. I Una cabeza de trabajo lectora/escritora que se puede desplazar a lo largo de la cinta. Si δ(q, s) = (q 0 , s 0 , x), diremos que M pasa de q a q 0 , sustituye s por s 0 y se mueve según el valor de x. Unidad de Control q s1 s2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s10 s11 B B B B B B B B B 12 / 23 Ejecución de una máquina de Turing I Inicialmente: ? El estado es q0 ; ? La cinta es del tipo .wBBBBB..., I w ∈ (Σ − {B})∗ : cadena de entrada. ? La cabeza lectora analiza la primera casilla. I A partir de la configuración inicial, la máquina ejecuta un paso de acuerdo con la función de transición δ. I La máquina para sii se alcanza un estado final: ? Si es qy : M acepta el dato w . Escribiremos M(w ) = Y . ? Si es qn : M rechaza el dato w . Escribiremos M(w ) = N. ? Si es qh : M(w ) = w 0 ∈ (Σ − {B})∗ , siendo .w 0 BBBB... el contenido final de la cinta. I Si M no para escribiremos M(w ) ↑ 13 / 23 Computaciones en una MT I Una descripción instantánea (configuración) de M es una terna (q, w , u), con q ∈ Q, w ∈ Σ∗ y u ∈ Σ∗ . I Interpretación: I q es el estado actual en que se encuentra M. I wu es la palabra escrita en la cinta. I M analiza el último sı́mbolo de w . Unidad de Control q s1 s2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s10 s11 B B B B B B B B B w u 14 / 23 I Una d.i. (q, w , u) de M es de parada si q ∈ F . I Una d.i. (q, w , u) de M es de aceptación si q = qy . I Una d.i. (q, w , u) de M es de rechazo si q = qn . I La relación `M en el conjunto de d.i. de M se define ası́: • Si δ(q, wr ) = (q 0 , wr0 , −1), entonces (q, w1 . . . wr −1 wr , u1 . . . us ) `M (q 0 , w1 . . . wr −1 , wr0 u1 . . . us ) • Si δ(q, wr ) = (q 0 , wr0 , +1), entonces (q, w1 . . . wr −1 wr , u1 . . . us ) `M (q 0 , w1 . . . wr −1 wr0 u1 , u2 . . . us ) • Si δ(q, wr ) = (q 0 , wr0 , 0), entonces (q, w1 . . . wr −1 wr , u1 . . . us ) `M (q 0 , w1 . . . wr −1 wr0 , u1 . . . us ) I `∗M cierre reflexivo y transitivo de `M . 15 / 23 Decisión y aceptación en una MT I La d.i. inicial de M sobre w , Iw , es (q0 , ., w ). I M para sobre w (M ↓ w ) si existe una d.i. I de parada tal que Iw `∗M I . Caso contrario, M no para sobre w (M ↑ w ). I M decide un lenguaje L ⊆ (Σ − {B})∗ sii para cada w ∈ (Σ − {B})∗ : I I Si w ∈ L, entonces M(w ) = Y . Si w ∈ / L, entonces M(w ) = N. I M acepta un lenguaje L ⊆ (Σ − {B})∗ sii para cada w ∈ (Σ − {B})∗ : I I Si w ∈ L, entonces M(w ) = Y . Si w ∈ / L, entonces M(w ) ↑. 16 / 23 Lenguajes recursivos y recursivamente enumerables I L ⊆ (Σ − {B})∗ es recursivo sii existe una MT que decide L. I L ⊆ (Σ − {B})∗ es recursivamente enumerable sii existe una MT que acepta L. Proposición 1: Todo lenguaje recursivo es r.e. Proposición 2: Existen lenguajes r.e. que no son recursivos. 17 / 23 Ejemplo de una MT de decisión Q = {q0 , q1 , q2 , q10 , q20 , q3 , qh , qy , qn }; Σ = {0, 1, B, .} (Q − F ) × Σ (q0 , 0) (q0 , 1) (q0 , B) (q0 , .) (q1 , 0) (q1 , 1) (q1 , B) (q2 , 0) (q2 , 1) (q2 , B) (q10 , 0) (q10 , 1) (q10 , .) (q20 , 0) (q20 , 1) (q20 , .) (q3 , 0) (q3 , 1) (q3 , .) Q × Σ × {0, 1, −1} (q1 , ., 1) (q2 , ., 1) (qy , B, 0) (q0 , ., 1) (q1 , 0, 1) (q1 , 1, 1) (q10 , B, −1) (q2 , 0, 1) (q2 , 1, 1) (q20 , B, −1) (q3 , B, −1) (qn , 1, 0) (qy , B, 1) (qn , 1, 0) (q3 , B, −1) (qy , ., 1) (q3 , 0, −1) (q3 , 1, −1) (q0 , ., 1) 18 / 23 Máquinas de Turing que calculan funciones I Una MT, M, calcula f : (Σ − {B})∗ → Σ∗ sii para cada w ∈ (Σ − {B})∗ se tiene que M(w ) = f (w ). I Una función f es recursiva sii existe una MT que calcula f . Un ejemplo: Q = {q0 , q1 , qh , qy , qn }; Σ = {0, 1, B, .} (Q − F ) × Σ (q0 , 0) (q0 , 1) (q0 , B) (q0 , .) (q1 , 0) (q1 , 1) (q1 , B) (q1 , .) Q × Σ × {0, 1, −1} (q0 , 0, 1) (q0 , 1, 1) (q1 , B, −1) (q0 , ., 1) (qh , 1, 0) (q1 , 0, −1) (q1 , B, 0) (qh , ., 1) Hallemos M(01) 1. 2. 3. 4. q0 . . . . 0 q0 0 0 0 1 B. 1 B. q0 1 B. q0 1 B. q1 5. . 0 1 B. q1 6. . 0 0 B. qh 7. . 1 0 B. 19 / 23 Máquinas de Turing que resuelven problemas ¿Cómo resolver un problema X ? I Si X es un problema de decisión, I Una MT resuelve X si decide el lenguaje LX asociado a X . I Si X es un problema identificado por una aplicación fX : LX → Σ∗ , I Una MT resuelve X si calcula la función fX . 20 / 23 Máquinas de Turing con k cintas I En cada instante la máquina está en un estado. I Consta de k cintas, infinitas a la derecha con primera casilla. I Cada cinta tiene una cabeza que en cada instante: I Analiza una casilla. I Puede reescribir sobre la casilla. I Puede cambiar de estado (el mismo en todas las casillas). I Se puede desplazar: +1, −1, 0. 21 / 23 I Para realizar una computación con entrada w ∈ Σ∗ : I Se registra la entrada en la primera cinta. I Las restantes cintas están en blanco. I Todas las cabezas apuntan a la primera casilla. I La máquina está en el estado inicial. I 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 MT, M, con k cintas existe una MT, M 0 , con una cinta tal que M(w ) = M 0 (w ), para cada entrada w . ¿Qué peaje se ha de pagar para “pasar” de una MT con k cintas a una MT con una cinta que sea equivalente a ella? 22 / 23 Máquinas de Turing no deterministas Es una tupla, M = (Q, Σ, δ, q0 , F , B, .), en donde: I Q es un conjunto finito no vacı́o (estados). I Σ es un alfabeto (de la máquina), Q ∩ Σ = ∅. I δ : (Q − F ) × Σ → P(Q × Σ × {0, 1, −1}) (función de transición). I q0 ∈ Q (estado inicial). I F ⊆ Q (estados finales). I B ∈ Σ (sı́mbolo blanco). I . ∈ Σ (primer sı́mbolo), . 6= B. Toda MT determinista es una MT no determinista. Teorema : Si una MT no determinista decide L, entonces existe otra MT determinista con tres cintas que decide L. ¿Qué peaje se ha de pagar para “pasar” de una MTND que decide L a una MTD que también decide L? 23 / 23