Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Computabilidad y Algoritmia
F. de Sande
Curso 2023-2024
Introducción a las máquinas de Turing
Máquinas de Turing y lenguajes
Resolubilidad
Indice
3 Resolubilidad
Tesis de Church-Turing
Problemas resolubles e irresolubles
Indice
3 Resolubilidad
Tesis de Church-Turing
Problemas resolubles e irresolubles
Introducción
Hasta ahora...
Lenguajes regulares: autómatas finitos
Lenguajes independientes del contexto: autómatas de pila
Modelos de computación: reciben una cadena de sı́mbolos de
entrada, realizan ciertos movimientos en respuesta a los sı́mbolos de
la cadena y proporcionan una respuesta rudimentaria: sı́ o no
Introducción
Hasta ahora...
Lenguajes regulares: autómatas finitos
Lenguajes independientes del contexto: autómatas de pila
Modelos de computación: reciben una cadena de sı́mbolos de
entrada, realizan ciertos movimientos en respuesta a los sı́mbolos de
la cadena y proporcionan una respuesta rudimentaria: sı́ o no
A partir de ahora...
Hay lenguajes simples (L = {an bn cn | n ≥ 0}) que no son
independientes del contexto, y por ello ni los autómatas finitos ni los
autómatas de pila pueden ser considerados modelos generales de
computación
Se estudiará en este tema un modelo de computación más general
Máquina de Turing
Definición
Una Máquina de Turing (MT) es una tupla M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):
Máquina de Turing
Definición
Una Máquina de Turing (MT) es una tupla M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):
Q es el conjunto de estados (Q finito y Q ̸= ∅)
Máquina de Turing
Definición
Una Máquina de Turing (MT) es una tupla M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):
Q es el conjunto de estados (Q finito y Q ̸= ∅)
Γ es el alfabeto de cinta
Máquina de Turing
Definición
Una Máquina de Turing (MT) es una tupla M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):
Q es el conjunto de estados (Q finito y Q ̸= ∅)
Γ es el alfabeto de cinta
Σ es el alfabeto de entrada. Generalmente Σ ⊆ Γ − {␢}
Máquina de Turing
Definición
Una Máquina de Turing (MT) es una tupla M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):
Q es el conjunto de estados (Q finito y Q ̸= ∅)
Γ es el alfabeto de cinta
Σ es el alfabeto de entrada. Generalmente Σ ⊆ Γ − {␢}
q0 ∈ Q es el estado inicial o de arranque
Máquina de Turing
Definición
Una Máquina de Turing (MT) es una tupla M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):
Q es el conjunto de estados (Q finito y Q ̸= ∅)
Γ es el alfabeto de cinta
Σ es el alfabeto de entrada. Generalmente Σ ⊆ Γ − {␢}
q0 ∈ Q es el estado inicial o de arranque
F ⊆ Q es el conjunto de estados de aceptación
Máquina de Turing
Definición
Una Máquina de Turing (MT) es una tupla M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):
Q es el conjunto de estados (Q finito y Q ̸= ∅)
Γ es el alfabeto de cinta
Σ es el alfabeto de entrada. Generalmente Σ ⊆ Γ − {␢}
q0 ∈ Q es el estado inicial o de arranque
F ⊆ Q es el conjunto de estados de aceptación
␢∈ Γ es el sı́mbolo blanco (␢∈
/ Σ)
Máquina de Turing
Definición
Una Máquina de Turing (MT) es una tupla M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):
Q es el conjunto de estados (Q finito y Q ̸= ∅)
Γ es el alfabeto de cinta
Σ es el alfabeto de entrada. Generalmente Σ ⊆ Γ − {␢}
q0 ∈ Q es el estado inicial o de arranque
F ⊆ Q es el conjunto de estados de aceptación
␢∈ Γ es el sı́mbolo blanco (␢∈
/ Σ)
δ es la función de transición:
δ : Q × Γ → Q × Γ × {L, R}
(q, a) → (p, t, X)
con p, q ∈ Q, a, t ∈ (Σ ∪ {␢}), X ∈ {L, R}
Caracterı́sticas
Caracterı́sticas
Funcionamiento
Funcionamiento
Funcionamiento
Funcionamiento
Considérese la máquina de Turing definida mediante:
δ(q1 , a) = (q1 , a, R)
δ(q1 , b) = (q1 , a, R)
δ(q1 , ␢) = (q2 , ␢, L)
Funcionamiento
Considérese la máquina de Turing definida mediante:
δ(q1 , a) = (q1 , a, R)
δ(q1 , b) = (q1 , a, R)
δ(q1 , ␢) = (q2 , ␢, L)
Descripciones instantáneas
Cualquier configuración de una MT viene determinada por:
El estado actual
El contenido de la cinta
La posición de la cabeza de lectura/escritura sobre la cinta
Descripciones instantáneas
Cualquier configuración de una MT viene determinada por:
El estado actual
El contenido de la cinta
La posición de la cabeza de lectura/escritura sobre la cinta
Descripciones instantáneas
Ejemplo:
Notación 1:
(q1 , abba) ⊢ (q1 , abba) ⊢ (q1 , aaba) ⊢ (q1 , aaaa) ⊢ (q1 , aaaa␢) ⊢
(q2 , aaaa)
Notación 2:
q1 abba ⊢ aq1 bba ⊢ aaq1 ba ⊢ aaaq1 a ⊢ aaaaq1 ␢ ⊢ aaaq2 a
Descripciones instantáneas
Ejemplo:
Notación 1:
(q1 , abba) ⊢ (q1 , abba) ⊢ (q1 , aaba) ⊢ (q1 , aaaa) ⊢ (q1 , aaaa␢) ⊢
(q2 , aaaa)
Notación 2:
q1 abba ⊢ aq1 bba ⊢ aaq1 ba ⊢ aaaq1 a ⊢ aaaaq1 ␢ ⊢ aaaq2 a
Descripciones instantáneas
Ejemplo:
Q = {q1 , q2 , q3 } δ(q1 , a) = (q1 , a, L)
Σ = {a, b} δ(q1 , b) = (q1 , b, L)
Γ = {a, b, ␢} δ(q1 , ␢) = (q2 , ␢, R)
F = {q3 } δ(q2 , a) = (q3 , a, L)
q0 = q1 δ(q2 , b) = (q3 , b, L)
δ(q2 , ␢) = (q3 , ␢, R)
Descripciones instantáneas
Ejemplo:
Q = {q1 , q2 , q3 } δ(q1 , a) = (q1 , a, L)
Σ = {a, b} δ(q1 , b) = (q1 , b, L)
Γ = {a, b, ␢} δ(q1 , ␢) = (q2 , ␢, R)
F = {q3 } δ(q2 , a) = (q3 , a, L)
q0 = q1 δ(q2 , b) = (q3 , b, L)
δ(q2 , ␢) = (q3 , ␢, R)
Diagrama de transiciones
Diagrama de transiciones
Ejemplo: MT que reconoce L = {an bn | n ≥ 1}
d/d, R
a/a, R
a/c, R
q1 q2
d/d, R q4 q
3
b/b, L a/a, L
d/d, L
q5
Transformación de cadenas
Una MT tiene la capacidad de transformar una cadena de entrada
(secuencia de sı́mbolos sobre su cinta) en una cadena de salida
(secuencia resultante al finalizar el cómputo):
Modelo abstracto de computador
Transformación de cadenas
Ejemplo: MT que complementa cadenas de {a, b}
M ≡ (Q, Σ, Γ, q0 , ␢, F, δ) se define como:
Q = {q1 , q2 , q3 } F = {q3 }
Σ = {a, b} q0 = q1
Γ = {a, b, ␢}
δ a b ␢
q1 q1 , b, R q1 , a, R q2 , ␢, L
q2 q2 , a, L q2 , b, L q3 , ␢, R
Definición
Una función de cadena es una función f : Σ∗ → Σ∗
Definición
Una función de cadena es una función f : Σ∗ → Σ∗
Definición
Se dice que una función de cadena es Turing computable (o computable)
si existe una MT M ≡ (Q, Σ, Γ, q0 , ␢, F, δ) para la cual:
q0 w ⊢ ∗ qf u
Definición
Una función de cadena es una función f : Σ∗ → Σ∗
Definición
Se dice que una función de cadena es Turing computable (o computable)
si existe una MT M ≡ (Q, Σ, Γ, q0 , ␢, F, δ) para la cual:
q0 w ⊢ ∗ qf u
Combinación de MT
Definición
Sean M1 ≡ (Q1 , Σ, Γ, q01 , ␢, F1 , δ1 ) y M2 ≡ (Q2 , Σ, Γ, q02 , ␢, F2 , δ2 ) dos
MT sobre el mismo Σ, con el mismo Γ y con Q1 ∩ Q2 = ∅, definimos la
combinación de M1 y M2 como M1 M2 ≡ (Q, Σ, Γ, q0 , ␢, F, δ) con:
Q1 ∪ Q2 q0 = q01 F = F2
δ1 (q, a)
si q ∈ Q1 y δ1 (q, a) ̸= (p, t, X) ∀p ∈ F1
δ(q, a) = (q02 , t, X) si q ∈ Q1 y δ1 (q, a) = (p, t, X) con p ∈ F1
δ2 (q, a) si q ∈ Q2
Combinación de MT
Ejemplo
Consideremos una MT M1 :
δ a ␢
q1 q2 , a, R q2 , ␢, R
q2 q2 , a, R q3 , ␢, L
q3 q4 , a, R q4 , ␢, R
Consideremos una MT M2 :
δ a ␢
q1 q2 , a, R q2 , a, R
Combinación de MT
Ejemplo
Consideremos una MT M1 :
δ a ␢
q1 q2 , a, R q2 , ␢, R
q2 q2 , a, R q3 , ␢, L
q3 q4 , a, R q4 , ␢, R
Consideremos una MT M2 :
δ a ␢
q1 q2 , a, R q2 , a, R
Originalmente definimos:
δ : Q × Γ → Q × Γ × {L, R}
De forma alternativa podrı́amos definir:
δ : Q × Γ → Q × Γ × {L, R, S}
En este caso, la MT tendrı́a la posibilidad de no mover su cabeza de
L/E en cada paso de cómputo
Originalmente definimos:
δ : Q × Γ → Q × Γ × {L, R}
De forma alternativa podrı́amos definir:
δ : Q × Γ → Q × Γ × {L, R, S}
En este caso, la MT tendrı́a la posibilidad de no mover su cabeza de
L/E en cada paso de cómputo
δ(q2 , (0, 0,␢)) = (q2 , (0, 0, 0), L) δ(q3 , (0, 0,␢)) = (q2 , (0, 0, 1), L)
δ(q2 , (0, 1,␢)) = (q2 , (0, 1, 1), L) δ(q3 , (0, 1,␢)) = (q3 , (0, 1, 0), L)
δ(q2 , (1, 0,␢)) = (q2 , (1, 0, 1), L) δ(q3 , (1, 0,␢)) = (q3 , (1, 0, 0), L)
δ(q2 , (1, 1,␢)) = (q3 , (1, 1, 0), L) δ(q3 , (1, 1,␢)) = (q3 , (1, 1, 1), L)
δ(q2 , (␢,␢,␢)) = (q4 , (␢,␢, 0), S) δ(q3 , (␢,␢,␢)) = (q4 , (␢,␢, 1), S)
MT multi-cinta
MT multi-cinta
MT no determinista
Se elimina el requerimiento de que la regla de transición sea una
función
Para un estado y sı́mbolo actual, puede existir un número finito de
movimientos a elegir
Ejemplo
Si la MT tuviera la transición: δ(q1 , a) = {(q1 , b, R), (q2 , a, L)}
Podrı́amos tener los movimientos siguientes:
(q1 , abbab) ⊢ (q1 , abbbb)
(q1 , abbab) ⊢ (q2 , abbab)
Modificaciones de la MT
Definición
Una MT universal (MU ) es una MT que, a partir de una descripción
adecuada de una MT (M ) y una cadena de entrada (w ∈ Σ∗ ), simula el
comportamiento de M ante la cadena w
Implementación
MU se puede implementar como una MT con tres cintas (C1 , C2 , C3 )
cuyo alfabeto Σ contenga {0, 1}:
1 C1 contiene la codificación de M y tiene su cabeza de L/E situada
sobre el primer 0 de la codificación
2 C2 contiene la codificación (con {0, 1}) del contenido de la cinta de
M , con la cabeza de L/E situada sobre el primer 1 del sı́mbolo
actual
3 C3 almacena el estado actual de M e inicialmente contiene:
...␢1 ␢...
Es decir, la máquina está en su estado de arranque, q0
Implementación
El modo de funcionamiento de MU es el siguiente:
1 MU analiza y compara el contenido de las cintas C2 y C3 (sı́mbolo y
estado)
2 Busca en C1 una transición para ese par (sı́mbolo-estado) hasta
encontrarla o finalizar la búsqueda
3 Si no encuentra una transición, MU para (como lo harı́a M ). En
caso contrario, MU simula M
4 Si M para ante w, MU parará cuando tenga como entrada (M, w)
Indice
3 Resolubilidad
Tesis de Church-Turing
Problemas resolubles e irresolubles
Definición
Un lenguaje L es recursivo (LREC) si existe al menos una M T que
reconoce las cadenas de L y para con toda cadena de entrada.
Los lenguajes recursivos son un subconjunto de los lenguajes
recursivamente enumerables
Definición
Un lenguaje L es recursivo (LREC) si existe al menos una M T que
reconoce las cadenas de L y para con toda cadena de entrada.
Los lenguajes recursivos son un subconjunto de los lenguajes
recursivamente enumerables
Para que una MT reconozca un lenguaje no necesita parar sobre cualquier cadena de
entrada: basta que pare en un estado q ∈ F para aquellas cadenas w ∈ L.
Si un L es un LREC, existe al menos una MT M tal que, si le pasamos a M una
w ∈ L, entonces M para y acepta w. Si se le pasa una w ∈
/ L, entonces M para y
rechaza w
F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing
Introducción a las máquinas de Turing Lenguajes aceptados por máquinas de Turing
Máquinas de Turing y lenguajes Lenguajes regulares y lenguajes independientes del contexto
Resolubilidad Lenguajes recursivos y recursivamente enumerables
Teorema
Si L ⊆ Σ∗ es un lenguaje regular, entonces L es un lenguaje recursivo
Teorema
Si L ⊆ Σ∗ es un lenguaje regular, entonces L es un lenguaje recursivo
Ası́ pues, hay lenguajes recursivos que no son regulares: LREG ⊂ LREC
Teorema
Si L ⊆ Σ∗ es un lenguaje regular, entonces L es un lenguaje recursivo
Ası́ pues, hay lenguajes recursivos que no son regulares: LREG ⊂ LREC
Teorema
Si L ⊆ Σ∗ es un lenguaje independiente del contexto, entonces L es un
lenguaje recursivo
Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 ∩ L2 también lo es
Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 ∩ L2 también lo es
Demostración
Sean M1 y M2 las MT que reconocen L1 y L2 respectivamente, y
que paran ante cualquier cadena:
Si w ∈ L(Mi ), Mi parará en un estado de aceptación
Si w ∈
/ L(Mi ), Mi parará en un estado que no es de aceptación
Sea M una MT con 2 cintas. Se coloca w en la cinta 1 y M hará
una copia de ella en la cinta 2
Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 ∩ L2 también lo es
Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 ∩ L2 también lo es
Demostración
M emulará a M1 mediante la cinta 1 hasta que M1 pare
Si M1 para en un estado que no es de aceptación, entonces M
también para y rechaza w
Si M1 acepta w, entonces M emulará ahora a M2 usando la copia de
la cinta 2
Si M2 rechaza w entonces M rechaza la cadena
Si M2 acepta la cadena, entonces M acepta w
Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 ∩ L2 también lo es
Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 ∩ L2 también lo es
Demostración
Ası́ pues, tenemos que w ∈ L(M ) ⇔ w ∈ L(M1 ) y w ∈ L(M2 ),
luego L(M ) = L(M1 ) ∩ L(M2 )
M para ante cualquier cadena de entrada: L(M ) es recursivo
Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 ∪ L2 también lo es
Lenguajes recursivos
Teorema
Si L1 y L2 son lenguajes recursivos, entonces L1 ∪ L2 también lo es
Demostración
Lenguajes recursivos
Teorema
Si L es un lenguaje recursivo, entonces L también lo es
Lenguajes recursivos
Teorema
Si L es un lenguaje recursivo, entonces L también lo es
Demostración
Si L es recursivo, existe una MT M ≡ (Q, Σ, Γ, δ, F, q0 , ␢) que
acepta L y que para ante cualquier entrada
Sea M ′ ≡ (Q, Σ, Γ, δ, Q − F, q0 , ␢):
Si w ∈ L, M parará en un estado de aceptación y M ′ parará en un
estado que no es de aceptación
Si w ∈/ L, M parará en un estado que no es de aceptación y M ′
parará en un estado de aceptación
Ası́ pues, L(M ′ ) = Σ∗ − L = L
Puesto que M para ante cualquier cadena de entrada, M ′ también
Luego podemos concluir que L es recursivo
F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing
Introducción a las máquinas de Turing Lenguajes aceptados por máquinas de Turing
Máquinas de Turing y lenguajes Lenguajes regulares y lenguajes independientes del contexto
Resolubilidad Lenguajes recursivos y recursivamente enumerables
Lenguajes recursivos
Teorema
Si L es un lenguaje recursivo, entonces L también lo es
Lenguajes recursivos
Teorema
Si L es un lenguaje recursivo, entonces L también lo es
Demostración
Teorema
Existe un lenguaje recursivamente enumerable L para el cual L no es
recursivamente enumerable
Teorema
Existe un lenguaje recursivamente enumerable L para el cual L no es
recursivamente enumerable
Demostración
Sea Σ un alfabeto. Σ∗ es numerable, de modo que podemos enumerar:
Σ∗ = {w1 , w2 , w3 , ...}
Las MT con alfabeto Σ se pueden representar mediante números, de modo que
también son enumerables: M T (Σ) = {M1 , M2 , M3 , ...}
Sea L = {wi ∈ Σ∗ | wi es aceptada por Mi }
Demostración
La construcción que se hizo anteriormente no funciona en este caso porque las Mi
pueden no parar ante la cadena de entrada. Alternativa: M simula en paralelo M1 y
M2 sobre cintas separadas. Si cualquiera de ellas acepta, M también
Demostración
Sean M1 y M2 las MT tales que L = L(M1 ), L = L(M2 ), construiremos una
MT M que siempre para ante cualquier cadena de entrada y tal que L(M ′ ) = L
Gramáticas no restringidas
Hasta el momento
Gramáticas regulares:
Lado izquierdo de la producción: un único sı́mbolo no terminal
Lado derecho de la producción: cadena de terminales seguida por un
no terminal
Gramáticas independientes del contexto:
Lado izquierdo de la producción: un único sı́mbolo no terminal
Lado derecho de la producción: conjunto de terminales y no
terminales
Gramáticas no restringidas
Hasta el momento
Gramáticas regulares:
Lado izquierdo de la producción: un único sı́mbolo no terminal
Lado derecho de la producción: cadena de terminales seguida por un
no terminal
Gramáticas independientes del contexto:
Lado izquierdo de la producción: un único sı́mbolo no terminal
Lado derecho de la producción: conjunto de terminales y no
terminales
Definición
Una gramática no restringida (o gramática estructurada por frases)
G ≡ (N, Σ, S, P ) tiene producciones de la forma α → β, donde
α ∈ (N ∪ Σ)+ y β ∈ (N ∪ Σ)∗
Gramáticas no restringidas
Gramáticas no restringidas
Teorema
Si G es una gramática no restringida (de tipo-0), entonces L(G) es un
lenguaje recursivamente enumerable
Gramáticas no restringidas
Teorema
Si G es una gramática no restringida (de tipo-0), entonces L(G) es un
lenguaje recursivamente enumerable
Teorema
Un lenguaje L ⊆ Σ∗ es recursivamente enumerable ⇔ L = L(G) para
alguna gramática G no restringida (de tipo-0)
Teorema
El conjunto de los lenguajes sensibles al contexto contiene al conjunto de
los lenguajes independientes del contexto
Teorema
El conjunto de los lenguajes sensibles al contexto contiene al conjunto de
los lenguajes independientes del contexto
Teorema
Si L es un lenguaje sensible al contexto, entonces L es recursivo
Teorema
El conjunto de los lenguajes sensibles al contexto contiene al conjunto de
los lenguajes independientes del contexto
Teorema
Si L es un lenguaje sensible al contexto, entonces L es recursivo
Teorema
Hay lenguajes recursivos que no son sensibles al contexto
Jerarquı́a de Chomsky
Indice
3 Resolubilidad
Tesis de Church-Turing
Problemas resolubles e irresolubles
Cuestiones
¿Cuales son las similitudes con un computador real?
¿Y las diferencias?
Máquina de Turing
Tesis de Church-Turing
Tesis de Church-Turing
Procedimiento
Ha de constar de un número finito de instrucciones exactas, estando
cada instrucción especificada por un número finito de sı́mbolos
Debe producir el resultado deseado, si se ejecuta sin error, en un
número finito de pasos
Puede ser realizado por un humano sin asistencia de ninguna
máquina, utilizando sólamente lápiz y papel
No requiere “trucos” ni ingenio por parte del humano
F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing
Introducción a las máquinas de Turing
Tesis de Church-Turing
Máquinas de Turing y lenguajes
Problemas resolubles e irresolubles
Resolubilidad
Considérese un alfabeto Σ
Hemos estudiado que Σ∗ es enumerable: Σ∗ = {w1 , w2 , w3 , w4 , ...}
Puesto que las MT con alfabeto Σ se pueden codificar como
cadenas binarias, y hay un número numerable de cadenas binarias
(no todas representan codificaciones válidas de MTs), hay un
número numerable de M T (Σ) : M T (Σ) = {M1 , M2 , M3 , M4 , ...}
Considérese L = {wi ∈ Σ∗ | wi no es aceptada por Mi }
Demostraremos por reducción al absurdo que L no es
recursivamente enumerable
IMPORTANTE