Está en la página 1de 133

Grado en Ingenierı́a Informática

Computabilidad y Algoritmia

Tema 4: Máquinas de Turing

F. de Sande
Curso 2023-2024
Introducción a las máquinas de Turing
Máquinas de Turing y lenguajes
Resolubilidad

Indice

1 Introducción a las máquinas de Turing


Descripción y funcionamiento
Modificaciones de las máquinas de Turing
Máquinas de Turing universales

2 Máquinas de Turing y lenguajes


Lenguajes aceptados por máquinas de Turing
Lenguajes regulares y lenguajes independientes del contexto
Lenguajes recursivos y recursivamente enumerables

3 Resolubilidad
Tesis de Church-Turing
Problemas resolubles e irresolubles

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Indice

1 Introducción a las máquinas de Turing


Descripción y funcionamiento
Modificaciones de las máquinas de Turing
Máquinas de Turing universales

2 Máquinas de Turing y lenguajes


Lenguajes aceptados por máquinas de Turing
Lenguajes regulares y lenguajes independientes del contexto
Lenguajes recursivos y recursivamente enumerables

3 Resolubilidad
Tesis de Church-Turing
Problemas resolubles e irresolubles

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing

Definición
Una Máquina de Turing (MT) es una tupla M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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 ̸= ∅)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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 Σ ⊆ Γ − {␢}

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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 (␢∈
/ Σ)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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}

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Caracterı́sticas

Una MT consiste en una colección de celdas de almacenamiento que se


extiende infinitamente en ambas direcciones: cinta infinita

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Caracterı́sticas

Posee una cabeza de lectura/escritura que puede moverse sobre la


cinta y por cada movimiento lee o escribe un sı́mbolo
Cada celda es capaz de almacenar un único sı́mbolo
El valor inicial de todas las celdas de la cinta es es sı́mbolo ␢
A los contenidos de las celdas se puede acceder en cualquier orden
Las transiciones dependen únicamente del estado actual y del
contenido de la celda sobre la que se encuentre la cabeza de
lectura/escritura

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Funcionamiento

Consideremos la máquina de Turing definida mediante:


Q = {q1 , q2 }
Σ = {a, b}
Γ = {a, b, ␢}
F = {q2 }
s = q1
δ:
δ(q1 , a) = (q1 , a, R)
δ(q1 , b) = (q1 , a, R)
δ(q1 , ␢) = (q2 , ␢, L)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Funcionamiento

Considérese la máquina de Turing definida mediante:


δ(q1 , a) = (q1 , a, R)
δ(q1 , b) = (q1 , a, R)
δ(q1 , ␢) = (q2 , ␢, L)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Funcionamiento

Considérese la máquina de Turing definida mediante:


δ(q1 , a) = (q1 , a, R)
δ(q1 , b) = (q1 , a, R)
δ(q1 , ␢) = (q2 , ␢, L)

El funcionamiento de la máquina es el siguiente:


La máquina comienza sus operaciones en el estado q1
Si el contenido de la celda sobre la que se encuentra la cabeza de
lectura/escritura es a, se aplica la transición δ(q1 , a) = (q1 , a, R):
La MT sobreescribirá el sı́mbolo a que está en la cinta con otra a
La cabeza de lectura/escritura se moverá una posición a la derecha
La MT permanecerá en el estado q1

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Funcionamiento
Considérese la máquina de Turing definida mediante:
δ(q1 , a) = (q1 , a, R)
δ(q1 , b) = (q1 , a, R)
δ(q1 , ␢) = (q2 , ␢, L)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Funcionamiento
Considérese la máquina de Turing definida mediante:
δ(q1 , a) = (q1 , a, R)
δ(q1 , b) = (q1 , a, R)
δ(q1 , ␢) = (q2 , ␢, L)

El funcionamiento de la máquina es el siguiente:


Cualquiera de las siguientes aes que haya en la cinta no se cambiará,
sin embargo, las bes serán sustituidas por aes: δ(q1 , b) = (q1 , a, R)
Si la maquina de Turing encuentra un blanco (sı́mbolo ␢), se moverá
una celda hacia la izquierda y pasará al estado final, q2 :
δ(q1 , ␢) = (q2 , ␢, L)
Puesto que no hay ninguna transición definida desde el estado q2 , la
MT parará una vez que esté en ese estado

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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

Se usarán dos notaciones para representar las configuraciones:


1 (qi , w1 aw2 ):
qi es el estado actual
w1 ∈ Γ∗ es la cadena a la izquierda de la cabeza de L/E
w2 ∈ Γ∗ es la cadena a la derecha de la cabeza de L/E
a ∈ Γ es el sı́mbolo sobre el que se encuentra la cabeza de L/E
2 a1 a2 ...ak−1 qi ak ...an :
a1 a2 ...ak−1 = w1
ak = a
ak+1 ak+2 ...an = w2
F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing
Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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

⊢ denota el paso de una configuración a otra


⊢∗ y ⊢+ tienen el significado usual de “cero o más” y “uno o más”
pasos

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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)

Esta MT examina su cinta hacia la izquierda hasta hallar el primer ␢.


Entonces para y se coloca sobre el ␢:
(q1 , ␢aababb␢) ⊢ (q1 , ␢aababb␢) ⊢ (q1 , ␢aababb␢) ⊢ (q1 , ␢aababb␢) ⊢
(q1 , ␢aababb␢) ⊢ (q2 , ␢aababb␢) ⊢ (q3 , ␢aababb␢)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Lenguaje aceptado por una MT

Sea una MT M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):


El lenguaje aceptado por M se denota como L(M ) y se define como:

L(M ) = {w ∈ Σ∗ | q0 w ⊢∗ w1 pw2 para p ∈ F, wi ∈ Γ∗ }

Una cadena w ∈ Σ∗ es aceptada si M alcanza un estado de


aceptación p y para

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Lenguaje aceptado por una MT

Sea una MT M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):


El lenguaje aceptado por M se denota como L(M ) y se define como:

L(M ) = {w ∈ Σ∗ | q0 w ⊢∗ w1 pw2 para p ∈ F, wi ∈ Γ∗ }

Una cadena w ∈ Σ∗ es aceptada si M alcanza un estado de


aceptación p y para

Nota: Se ha supuesto que una MT siempre para al alcanzar un estado de


aceptación puesto que no se definen transiciones en los estados p ∈ F

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Parada de una máquina de Turing

Considérese una MT M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):


Cuando δ(q, a) no está definida y la configuración de la MT es
(q, w1 aw2 ) es imposible que la MT cambie la configuración
En estas circunstancias, se dice que la MT está parada
Una MT puede estar parada en un estado q ∈ F o en un estado
q∈/F
Para simplificar se asumirá que no se definirán transiciones para los
estados de F , y consecuentemente
La MT se parará siempre que llegue a un estado de aceptación
La secuencia de todos los movimientos que conducen a una MT a
una configuración de parada se llama computación

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing que nunca para


Considérese una MT M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):
Q = {q1 , q2 } δ(q1 , a) = (q2 , a, R)
Σ = {a, b} δ(q1 , b) = (q2 , b, R)
Γ = {a, b, ␢} δ(q1 , ␢) = (q2 , ␢, R)
F =∅ δ(q2 , a) = (q1 , a, L)
q0 = q1 δ(q2 , b) = (q1 , b, L)
δ(q2 , ␢) = (q1 , ␢, L)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing que nunca para


Considérese una MT M ≡ (Q, Σ, Γ, q0 , ␢, F, δ):
Q = {q1 , q2 } δ(q1 , a) = (q2 , a, R)
Σ = {a, b} δ(q1 , b) = (q2 , b, R)
Γ = {a, b, ␢} δ(q1 , ␢) = (q2 , ␢, R)
F =∅ δ(q2 , a) = (q1 , a, L)
q0 = q1 δ(q2 , b) = (q1 , b, L)
δ(q2 , ␢) = (q1 , ␢, L)

Si se estudia el cómputo que realiza esta MT:


q1 abw ⊢ aq2 bw ⊢ q1 abw ⊢ aq2 bw ⊢ ...
Esta MT nunca para: podrı́a decirse que entra en un “bucle infinito”
Esta situación se representa como:
(q, w1 aw2 ) ⊢∗ ∞
w1 qaw2 ⊢∗ ∞
F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing
Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Diferencias entre las máquinas de Turing y los autómatas


finitos

Una MT puede leer o escribir información de la cinta, mientras que


un AF sólo puede leer su “entrada”

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Diferencias entre las máquinas de Turing y los autómatas


finitos

Una MT puede leer o escribir información de la cinta, mientras que


un AF sólo puede leer su “entrada”
La cabeza de lectura/escritura de una MT puede moverse a
izquierda o derecha, mientras que un AF lee sı́mbolos en una sola
“dirección”

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Diferencias entre las máquinas de Turing y los autómatas


finitos

Una MT puede leer o escribir información de la cinta, mientras que


un AF sólo puede leer su “entrada”
La cabeza de lectura/escritura de una MT puede moverse a
izquierda o derecha, mientras que un AF lee sı́mbolos en una sola
“dirección”
La cinta de una MT es infinita, la entrada en un AF es finita

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Diferencias entre las máquinas de Turing y los autómatas


finitos

Una MT puede leer o escribir información de la cinta, mientras que


un AF sólo puede leer su “entrada”
La cabeza de lectura/escritura de una MT puede moverse a
izquierda o derecha, mientras que un AF lee sı́mbolos en una sola
“dirección”
La cinta de una MT es infinita, la entrada en un AF es finita
Los estados en los que una MT acepta o rechaza toman efecto
inmediatamente, mientras que un AF debe consumir toda su
entrada para terminar su cómputo

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Ejemplo de máquina de Turing

Diseñar una MT M tal que L(M ) = L[a∗] sobre {a, b}


Q = {q1 , q2 } δ(q1 , a) = (q1 , a, R)
Σ = {a, b} δ(q1 , ␢) = (q2 , ␢, R)
Γ = {a, b, ␢}
F = {q2 }
q0 = q1

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Ejemplo de máquina de Turing

Diseñar una MT M tal que L(M ) = L[a∗] sobre {a, b}


Q = {q1 , q2 } δ(q1 , a) = (q1 , a, R)
Σ = {a, b} δ(q1 , ␢) = (q2 , ␢, R)
Γ = {a, b, ␢}
F = {q2 }
q0 = q1

Hay dos posibilidades para rechazar una cadena w ∈ Σ∗ :


1 M para en un estado que no es de aceptación
2 M no para nunca (entrando en un “bucle infinito”)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Ejemplo de máquina de Turing

Diseñar otra MT M tal que L(M ) = L[a∗] sobre {a, b}


Q = {q1 , q2 , q3 } δ(q1 , a) = (q1 , a, R)
Σ = {a, b} δ(q1 , b) = (q2 , b, R)
Γ = {a, b, ␢} δ(q1 , ␢) = (q3 , ␢, R)
F = {q3 } δ(q2 , a) = (q2 , a, R)
q0 = q1 δ(q2 , b) = (q2 , b, R)
δ(q2 , ␢) = (q2 , ␢, R)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Ejemplo de máquina de Turing

Diseñar otra MT M tal que L(M ) = L[a∗] sobre {a, b}


Q = {q1 , q2 , q3 } δ(q1 , a) = (q1 , a, R)
Σ = {a, b} δ(q1 , b) = (q2 , b, R)
Γ = {a, b, ␢} δ(q1 , ␢) = (q3 , ␢, R)
F = {q3 } δ(q2 , a) = (q2 , a, R)
q0 = q1 δ(q2 , b) = (q2 , b, R)
δ(q2 , ␢) = (q2 , ␢, R)

Si esta MT lee un sı́mbolo b, pasa al estado q2 donde se moverá


indefinidamente hacia la derecha

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing que reconoce un CFL

Diseñar una MT M tal que L(M ) = {an bn | n ≥ 1}

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing que reconoce un CFL

Diseñar una MT M tal que L(M ) = {an bn | n ≥ 1}


M cambia la primera a por c: δ(q1 , a) = (q2 , c, R)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing que reconoce un CFL

Diseñar una MT M tal que L(M ) = {an bn | n ≥ 1}


M cambia la primera a por c: δ(q1 , a) = (q2 , c, R)
Luego se desplaza hacia la derecha hasta hallar la primera b y
cambiarla por d:
δ(q2 , a) = (q2 , a, R)
δ(q2 , d) = (q2 , d, R)
δ(q2 , b) = (q3 , d, L)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing que reconoce un CFL

Diseñar una MT M tal que L(M ) = {an bn | n ≥ 1}


M cambia la primera a por c: δ(q1 , a) = (q2 , c, R)
Luego se desplaza hacia la derecha hasta hallar la primera b y
cambiarla por d:
δ(q2 , a) = (q2 , a, R)
δ(q2 , d) = (q2 , d, R)
δ(q2 , b) = (q3 , d, L)
A continuación se mueve a la izquierda hasta posicionarse en la c de
más a la derecha:
δ(q3 , d) = (q3 , d, L)
δ(q3 , a) = (q3 , a, L)
δ(q3 , c) = (q1 , c, R)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing que reconoce un CFL


Diseñar una MT M tal que L(M ) = {an bn | n ≥ 1}
Si se acaban los sı́mbolos a, M estará situada sobre un sı́mbolo d en
el estado q1

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing que reconoce un CFL


Diseñar una MT M tal que L(M ) = {an bn | n ≥ 1}
Si se acaban los sı́mbolos a, M estará situada sobre un sı́mbolo d en
el estado q1
Bastarı́a con comprobar que todos los sı́mbolos b han sido
sustituidos por d:
δ(q1 , d) = (q4 , d, R)
δ(q4 , d) = (q4 , d, R)
δ(q4 , ␢) = (q5 , ␢, L)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing que reconoce un CFL


Diseñar una MT M tal que L(M ) = {an bn | n ≥ 1}
Si se acaban los sı́mbolos a, M estará situada sobre un sı́mbolo d en
el estado q1
Bastarı́a con comprobar que todos los sı́mbolos b han sido
sustituidos por d:
δ(q1 , d) = (q4 , d, R)
δ(q4 , d) = (q4 , d, R)
δ(q4 , ␢) = (q5 , ␢, L)
El resto de componentes de M se definen como:
Q = {q1 , q2 , q3 , q4 , q5 }
Σ = {a, b}
Γ = {a, b, c, d, ␢}
F = {q5}
q0 = q1
F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing
Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Diagrama de transiciones

Una MT puede ser representada gráficamente mediante un diagrama de


transiciones
Sea M ≡ (Q, Σ, Γ, q0 , ␢, F, δ)
Una transición δ(qi , x) = (qj , y, T ) con T ∈ {L, R} se representa
mediante el diagrama:

El estado de arranque de M se indica tal como se hace con los


diagramas de transiciones de los AFs
Los estados de aceptación se representan usando doble trazo

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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 c/c, R b/d, L

d/d, R q4 q
3

b/b, L a/a, L
d/d, L

q5

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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

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

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Función Turing computable

Definición
Una función de cadena es una función f : Σ∗ → Σ∗

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Función Turing computable

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

para algún qf ∈ F cuando f (w) = u

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Función Turing computable

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

para algún qf ∈ F cuando f (w) = u

Aunque la computabilidad de Turing se ha definido sólo para funciones


de cadena, la definición se puede extender a las funciones integrables

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Función Turing computable


Ejemplo
Supongamos Σ = {a, b} y representemos los enteros positivos mediante
cadenas de “aes”:
El entero positivo n estarı́a representado por an
La función suma f (n, m) = n + m se puede implementar mediante
la transformación de an bam en an+m b
δ a b ␢
q1 q1 , a, R q2 , a, R
q2 q2 , a, R q3 , ␢, L
q3 q4 , b, L
q4 q4 , a, L q5 , ␢, R
Esta MT desplaza el sı́mbolo b hacia la derecha, después de an+m
Cuando termina (q5 ∈ F ), la MT sitúa su cabeza de L/E sobre el sı́mbolo a
situado más a la izquierda

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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

M1 M2 se comporta como M1 hasta que alcanza un estado de F1


En ese momento, cambia al estado q02 y se comporta como M2 hasta el final del
cómputo

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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

M1 busca el primer ␢ a la derecha de la posición inicial de su cabeza L/E


M2 escribe un sı́mbolo a y para
Al combinar M1 y M2 de modo que una computación de M1 vaya seguida de
una de M2 obtendremos una MT M1 M2 que busca el primer sı́mbolo ␢ a la
derecha de la posición inicial de su cabeza L/E y lo sustituye por una a
F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing
Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

MT con posibilidad de no moverse

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

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

MT con posibilidad de no moverse

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

Este tipo de MT se puede simular por una MT de las definidas


originalmente

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

MT con múltiples pistas

En una MT con múltiples pistas, cada celda no contiene un único


sı́mbolo, sino un vector de sı́mbolos:
δ : Q × Γk → Q × Γk × {L, R}
En cada movimiento:
La MT lee un vector de sı́mbolos
La MT cambia de estado
La MT escribe un nuevo vector
La MT mueve su cabeza de L/E

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

MT con múltiples pistas


Ejemplo: MT multi-pista para sumar números binarios
(
(q1 , a, R) si a ̸= (̸ b, ̸ b, ̸ b)
δ(q1 , a) =
(q2 , a, L) si a = (̸ b, ̸ b, ̸ b)

δ(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)

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

MT multi-cinta

La MT tiene varias cintas, cada una con su cabeza de L/E


En un sólo movimiento, la MT:
Cambia de estado, dependiendo del estado actual y del contenido de
todas las cintas
Escribe un nuevo sı́mbolo en cada una de sus cintas
Mueve, de forma independiente, cada cabeza de L/E a izquierda o
derecha ({L, R})
Para una MT con n cintas:
δ : Q × Γn → Q × Γn × {L, R, S}n
Es decir, δ(q, (a1 , a2 , ..., an )) = (p, (b1 , b2 , ..., bn ), (X1 , X2 , ..., Xn ))

Este tipo de MT se puede simular por una MT tal como se definió


originalmente

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

MT multi-cinta

Ejemplo: MT con dos cintas C1 y C2 que reconoce L = {an bn | n ≥ 1}


La cadena a analizar la colocamos en la cinta C1
Suponemos que el estado inicial es q1 y que inicialmente la cabeza de L/E de C1
está situada sobre el sı́mbolo del extremo izquierdo de la cadena
Mientras encuentra sı́mbolos a los deja en C1 y los copia en C2 :
δ(q1 , (a,␢)) = (q1 , (a, a), (R, R))
Cuando encuentra la primera b la deja en C1 y se mueve a la izquierda (L) en C2 :
δ(q1 , (b,␢)) = (q2 , (b,␢), (S, L))
A continuación, se van emparejando las b de C1 con las a copiadas en C2 :
δ(q2 , (b, a)) = (q2 , (b, a), (R, L))
Cuando encuentra (␢,␢) pasa a q3 y acaba:
δ(q2 , (␢,␢)) = (q3 , (␢, ␢), (R, L))

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

MT con cinta multidimensional

En este caso la cinta de la MT es N-dimensional


Una posibilidad será una cinta bidimensional, que se extiende
infinitamente hacia la izquierda, derecha, arriba y abajo, de modo
que la función de transición estará definida por:
δ : Q × Γ → Q × Γ × {L, R, U, D}

Este tipo de MT se puede simular por una MT tal como se definió


originalmente

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

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)

Este tipo de MT se puede simular por una MT tal como se definió


originalmente
F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing
Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Modificaciones de la MT

Se puede demostrar que todas las variantes que hemos introducido


con respecto a la MT tal como se definió originalmente, tienen la
misma capacidad de cómputo que la MT original
Todo cómputo que pueda realizarse con una MT “de la forma
original” puede ser también realizado por cualquiera de las variantes
Alternativamente, si un cómputo puede realizarse con cualquiera de
las variantes, también puede ser llevado a cabo por una MT definida
“de la forma original”
La finalidad es que, si una de las variantes resulta más adecuada para
resolver un determinado problema, se pueda utilizar para simplificar

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing universal

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

Codificación de una MT arbitraria M ≡ (Q, Σ, Γ, q0 , ␢, F, δ)}


Encontrar una manera de describir M , puesto que la descripción se
dará a MU como entrada
Las entradas para MU serán (M, w)
Codificaremos M utilizando un alfabeto Σ = {0, 1} estableciendo
algunos convenios

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing universal

Codificación de una MT arbitraria M ≡ (Q, Σ, Γ, q0 , ␢, F, δ)}


1 Haremos que |F | = 1 (siempre se puede conseguir) y supondremos que
Q = {q1 , q2 , ..., qn } siendo q0 = q1 y F = {qn }
2 Supondremos Γ = {a1 , a2 , ..., am } siendo a1 = ␢
3 Se representará qi mediante 1i (p. ej. q5 = 11111)
4 Se representará ai mediante 1i (p. ej. a3 = 111)
5 Se representará L = 1 y R = 11
6 Utilizando el sı́mbolo 0 como separador se representará:
δ(q2 , a3 ) = (q3 , a2 , R) como 01101110111011011
δ(q5 , a1 ) = (q2 , a3 , L) como 01111101011011101
Ası́ se puede especificar completamente la función δ de M
7 Una MT arbitraria M tiene una codificación representada por una cadena de
ceros y unos de longitud finita
8 Dada una codificación, ésta se puede decodificar unı́vocamente

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing universal

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

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing Descripción y funcionamiento
Máquinas de Turing y lenguajes Modificaciones de las máquinas de Turing
Resolubilidad Máquinas de Turing universales

Máquina de Turing universal

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)

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

Indice

1 Introducción a las máquinas de Turing


Descripción y funcionamiento
Modificaciones de las máquinas de Turing
Máquinas de Turing universales

2 Máquinas de Turing y lenguajes


Lenguajes aceptados por máquinas de Turing
Lenguajes regulares y lenguajes independientes del contexto
Lenguajes recursivos y recursivamente enumerables

3 Resolubilidad
Tesis de Church-Turing
Problemas resolubles e irresolubles

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 aceptados por máquinas de Turing


Definición
Un lenguaje L se dice que es recursivamente enumerable (LRE) si
existe una MT M ≡ (Q, Σ, Γ, q0 , ␢, F, δ) tal que L = L(M )

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 aceptados por máquinas de Turing


Definición
Un lenguaje L se dice que es recursivamente enumerable (LRE) si
existe una MT M ≡ (Q, Σ, Γ, q0 , ␢, F, δ) tal que L = L(M )

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

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 aceptados por máquinas de Turing


Definición
Un lenguaje L se dice que es recursivamente enumerable (LRE) si
existe una MT M ≡ (Q, Σ, Γ, q0 , ␢, F, δ) tal que L = L(M )

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

Máquina de Turing a partir de un DFA


Sea M ≡ (Q, Σ, q0 , F, δ) un DFA
Se puede construir una MT M ′ ≡ (Q′ , Σ′ , Γ, ␢, q0′ , F ′ , δ ′ ) tal que
L(M ′ ) = L(M ):
Q′ = Q ∪ {q ′ } (q ′ ∈
/ Q)
Σ′ = Σ
Γ = Σ ∪ {␢}
F ′ = {q ′ }
δ ′ (q, a) = (δ(q, a), a, R) ∀q ∈ Q, ∀a ∈ Σ
δ ′ (q, ␢) = (q ′ , ␢, S) ∀q ∈ F

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

Máquina de Turing a partir de un DFA


Sea M ≡ (Q, Σ, q0 , F, δ) un DFA
Se puede construir una MT M ′ ≡ (Q′ , Σ′ , Γ, ␢, q0′ , F ′ , δ ′ ) tal que
L(M ′ ) = L(M ):
Q′ = Q ∪ {q ′ } (q ′ ∈
/ Q)
Σ′ = Σ
Γ = Σ ∪ {␢}
F ′ = {q ′ }
δ ′ (q, a) = (δ(q, a), a, R) ∀q ∈ Q, ∀a ∈ Σ
δ ′ (q, ␢) = (q ′ , ␢, S) ∀q ∈ F

La MT analiza su entrada de izquierda a derecha y con cada sı́mbolo cambia de estado


del mismo modo que lo hace el DFA. Aceptará la cadena si al llegar al final de la
misma encuentra un ␢ y se encuentra en un estado de aceptación

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 regulares y lenguajes independientes del contexto

Teorema
Si L ⊆ Σ∗ es un lenguaje regular, entonces L es un lenguaje 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 regulares y lenguajes independientes del contexto

Teorema
Si L ⊆ Σ∗ es un lenguaje regular, entonces L es un lenguaje recursivo

L = {an bn | n ≥ 1} es un lenguaje recursivo (se han estudiado varias MT


que lo reconocen) pero hemos estudiado asimismo que L no es regular

Ası́ pues, hay lenguajes recursivos que no son regulares: LREG ⊂ LREC

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 regulares y lenguajes independientes del contexto

Teorema
Si L ⊆ Σ∗ es un lenguaje regular, entonces L es un lenguaje recursivo

L = {an bn | n ≥ 1} es un lenguaje recursivo (se han estudiado varias MT


que lo reconocen) pero hemos estudiado asimismo que L no es regular

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

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 L1 y L2 son lenguajes recursivos, entonces L1 ∩ L2 también lo es

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 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

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 L1 y L2 son lenguajes recursivos, entonces L1 ∩ L2 también lo es

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 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

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 L1 y L2 son lenguajes recursivos, entonces L1 ∩ L2 también lo es

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 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

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 L1 y L2 son lenguajes recursivos, entonces L1 ∪ L2 también lo es

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 L1 y L2 son lenguajes recursivos, entonces L1 ∪ L2 también lo es

Demostración

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

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

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

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

Demostración

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 recursivamente enumerables


Si L es un lenguaje recursivo, entonces L también lo es
En general, esta propiedad no es cierta para lenguajes recursivamente
enumerables

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 recursivamente enumerables


Si L es un lenguaje recursivo, entonces L también lo es
En general, esta propiedad no es cierta para lenguajes recursivamente
enumerables

Teorema
Existe un lenguaje recursivamente enumerable L para el cual L no es
recursivamente enumerable

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 recursivamente enumerables


Si L es un lenguaje recursivo, entonces L también lo es
En general, esta propiedad no es cierta para lenguajes recursivamente
enumerables

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 }

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 recursivamente enumerables


Demostración: estudiemos en primer lugar que L es recursivamente
enumerable

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 recursivamente enumerables


Demostración: estudiemos en primer lugar que L es recursivamente
enumerable
Para demostrarlo, se construirá una MT, M que acepte L
La MT que construiremos será una composición de varias MT
auxiliares:
Sea w ∈ Σ∗ . La MT M genera las cadenas w1 , w2 , w3 , ... hasta hallar un
i∈ N | w = wi
A continuación, M genera (codificada) la i-ésima M T (Σ), Mi
M pasa el par (Mi , wi ) a la MT Universal, MU , que simulará Mi con
wi = w como entrada
Si Mi para y acepta wi entonces M para y acepta w
Puede ocurrir que Mi pare sin aceptar wi o puede que Mi no pare ante wi
En ambos casos, M rechaza la cadena w
Por lo tanto, w ∈ L(M ) ⇔ wi ∈ L(Mi )
Se ha construido una MT, M que reconoce L y por lo tanto L es
recursivamente enumerable

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 recursivamente enumerables

Demostración: veamos por reducción al absurdo que L no es


recursivamente enumerable
Sea L = {wi ∈ Σ∗ | wi es aceptada por Mi }
Si L es recursivamente enumerable, ha de ser aceptado por una
M T (Σ)
Sea Mj la MT que reconoce L: L = L(Mj )
Considérese la cadena wj ∈ Σ∗ :
Si wj ∈ L(Mj ) entonces wj ∈ L ⇒ wj ∈
/ L = L(Mj ) ⇒ wj ∈
/ L(Mj )
Si wj ∈
/ L(Mj ) entonces wj ∈
/ L ⇒ wj ∈ L = L(Mj ) ⇒ wj ∈ L(Mj )
En ambos casos hemos llegado a un absurdo, ası́ que podemos
concluir que L no es recursivamente enumerable

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 recursivamente enumerables


Teorema
Si L1 y L2 son lenguajes recursivamente enumerables, entonces L1 ∪ L2
también lo es

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 recursivamente enumerables


Teorema
Si L1 y L2 son lenguajes recursivamente enumerables, entonces L1 ∪ L2
también lo es

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

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 y recursivamente enumerables


Teorema
Si un lenguaje L y su complementario L son ambos recursivamente
enumerables, entonces L (y por tanto 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 y recursivamente enumerables


Teorema
Si un lenguaje L y su complementario L son ambos recursivamente
enumerables, entonces L (y por tanto L) es recursivo

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

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 y recursivamente enumerables

Dados un par de lenguajes complementarios L y L, de los teoremas


anteriores se deduce que sólo caben las siguientes posibilidades:

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 y recursivamente enumerables

Dados un par de lenguajes complementarios L y L, de los teoremas


anteriores se deduce que sólo caben las siguientes posibilidades:
1 Tanto L como L son recursivos

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 y recursivamente enumerables

Dados un par de lenguajes complementarios L y L, de los teoremas


anteriores se deduce que sólo caben las siguientes posibilidades:
1 Tanto L como L son recursivos
2 Ni L ni L son recursivamente enumerables

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 y recursivamente enumerables

Dados un par de lenguajes complementarios L y L, de los teoremas


anteriores se deduce que sólo caben las siguientes posibilidades:
1 Tanto L como L son recursivos
2 Ni L ni L son recursivamente enumerables
3 Uno de los dos (L o bien L) es recursivamente enumerable pero no
recursivo; el otro no es recursivamente enumerable

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

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

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

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 ∪ Σ)∗

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

Gramáticas no restringidas

Obsérvese que cualquier gramática regular o independiente del contexto


es además una gramática no restringida

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

Gramáticas no restringidas

Obsérvese que cualquier gramática regular o independiente del contexto


es además una gramática no restringida

Teorema
Si G es una gramática no restringida (de tipo-0), entonces L(G) es un
lenguaje recursivamente enumerable

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

Gramáticas no restringidas

Obsérvese que cualquier gramática regular o independiente del contexto


es además una gramática no restringida

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)

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

Gramáticas sensibles al contexto


Definición
Una gramática sensible al contexto G ≡ (N, Σ, S, P ) tiene producciones
de la forma α → β, donde α, β ∈ (N ∪ Σ)+ y |α| ≤ |β|

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

Gramáticas sensibles al contexto


Definición
Una gramática sensible al contexto G ≡ (N, Σ, S, P ) tiene producciones
de la forma α → β, donde α, β ∈ (N ∪ Σ)+ y |α| ≤ |β|

Teorema
El conjunto de los lenguajes sensibles al contexto contiene al conjunto de
los lenguajes independientes del contexto

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

Gramáticas sensibles al contexto


Definición
Una gramática sensible al contexto G ≡ (N, Σ, S, P ) tiene producciones
de la forma α → β, donde α, β ∈ (N ∪ Σ)+ y |α| ≤ |β|

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

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

Gramáticas sensibles al contexto


Definición
Una gramática sensible al contexto G ≡ (N, Σ, S, P ) tiene producciones
de la forma α → β, donde α, β ∈ (N ∪ Σ)+ y |α| ≤ |β|

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

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

Jerarquı́a de Chomsky

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

Indice

1 Introducción a las máquinas de Turing


Descripción y funcionamiento
Modificaciones de las máquinas de Turing
Máquinas de Turing universales

2 Máquinas de Turing y lenguajes


Lenguajes aceptados por máquinas de Turing
Lenguajes regulares y lenguajes independientes del contexto
Lenguajes recursivos y recursivamente enumerables

3 Resolubilidad
Tesis de Church-Turing
Problemas resolubles e irresolubles

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

Simulación de un computador con una MT

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

Simulación de un computador con una MT

Memoria MT: cinta infinita


E/S MT: cabeza lectora que puede leer/escribir sı́mbolos y moverse
por la cinta
Procesador MT: dispositivo de control que procesa los sı́mbolos
referenciados por la cabeza lectora cuando ésta se mueve

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

Simulación de un computador con una MT

Memoria MT: cinta infinita


E/S MT: cabeza lectora que puede leer/escribir sı́mbolos y moverse
por la cinta
Procesador MT: dispositivo de control que procesa los sı́mbolos
referenciados por la cabeza lectora cuando ésta se mueve

Cuestiones
¿Cuales son las similitudes con un computador real?
¿Y las diferencias?

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

Máquina de Turing

Mecanismo abstracto de cómputo capaz de ejecutar algoritmos paso a


paso
La noción de “paso computacional” está claramente definida. Esto
permite precisar sin ambigüedades el concepto de “tiempo de
computación”
La noción de “lugar de almacenamiento” está claramente
presentada, por medio de las casillas individuales en la cinta
Estos dos recursos, “tiempo” y “espacio”, aparecen en la máquina
de Turing de una manera muy realista y permiten analizar los
efectos de imponer limitaciones sobre ellos, lo cual es muy adecuado
en las investigaciones sobre complejidad computacional

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

Tesis de Church-Turing

Toda función efectivamente computable es Turing-computable.


Alonzo Church, American Journal of Mathematics 58: 345-363, 1936

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

Tesis de Church-Turing

Toda función efectivamente computable es Turing-computable.


Alonzo Church, American Journal of Mathematics 58: 345-363, 1936

Cualquier procedimiento algorı́tmico que pueda ser implementado


por un humano, un grupo de humanos o un ordenador, puede ser
realizado por alguna máquina de Turing
Se le llama tesis porque no se trata de una sentencia
matemáticamente precisa, debido a la carencia de una definición
precisa de procedimiento algorı́tmico (o algoritmo) y debido a ello,
la tesis no es una sentencia que pueda ser demostrada
matemáticamente

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

Procedimiento algorı́tmico o algoritmo


Noción intuitiva
Secuencia de instrucciones simples para llevar a cabo alguna tarea:
Hallar números primos
Calcular el máximo común denominador
...

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

Procedimiento algorı́tmico o algoritmo


Noción intuitiva
Secuencia de instrucciones simples para llevar a cabo alguna tarea:
Hallar números primos
Calcular el máximo común denominador
...

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

Problemas resolubles e irresolubles

Algoritmos y máquinas de Turing


La máquina de Turing modela un proceso (reconocimiento de una
cadena o codificación de una secuencia de sı́mbolos en su cinta)
Un algoritmo es un proceso que siempre ha de terminar en un
número finito de pasos
Una máquina de Turing que pare ante cualquier entrada es un
modelo abstracto de algoritmo
Para un lenguaje L ⊆ Σ∗ que sea recursivo existe un algoritmo M
que permite determinar si una w ∈ Σ∗ es w ∈ L
Sin embargo, el problema ¿w ∈ L? en el caso de un lenguaje L
recursivamente enumerable pero no recursivo es un ejemplo de
problema irresoluble: no existe un algoritmo que lo resuelva

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

Problemas resolubles e irresolubles


Función caracterı́sticas de un lenguaje
Dado un lenguaje L ⊆ Σ∗ , se define su función caracterı́stica
χL : Σ∗ → {0, 1} como: (
1 si w ∈ L
χL (w) =
0 si w ∈
/L

Una función f es Turing computable si existe una MT que computa


f (w) ∀w del dominio de f
De este modo tenemos que χL es Turing computable si L es un
lenguaje recursivo
Por el contrario sabemos que la función χL para un lenguaje L que
sea recursivamente enumerable pero no recursivo no es computable,
puesto que hay cadenas de Σ∗ para las que la MT que reconoce L
no para
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

Problemas resolubles e irresolubles

El problema de la parada (Halting Problem)


Sea M una máquina de Turing arbitraria, con alfabeto de entrada Σ, y
sea w ∈ Σ∗ , el problema de la parada ΠHP se define como:

¿Parará M ante la cadena w?

Una instancia de ΠHP es un par < M, w >


Una solución al problema serı́a un algoritmo (una MT) que ante
cualquier codificación de una instancia del problema respondiera
SI/NO de forma correcta

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

Problemas resolubles e irresolubles

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

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

Problemas resolubles e irresolubles

L = {wi ∈ Σ∗ | wi no aceptada por Mi } no es recursivamente


enumerable
Sea Mk la MT que reconoce L: L = L(Mk )
Consideremos la cadena wk ∈ Σ∗ :
Si wk ∈ L, wk no es aceptada por Mk , ası́ que wk ∈
/ L(Mk ) = L
Si wk ∈
/ L, wk es aceptada por Mk , ası́ que wk ∈ L(Mk ) = L
Por lo tanto, no existe una MT que reconozca L y, por ello, L no es
recursivamente enumerable

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

Problemas resolubles e irresolubles

Teorema: El problema de la parada es irresoluble


Por reducción al absurdo: veremos que si ΠHP es resoluble,
podrı́amos construir una MT ML que reconozca el lenguaje anterior:
L = {wi ∈ Σ∗ | wi no es aceptada por Mi }
Supongamos que ΠHP es resoluble y que, por tanto, existe un
algoritmo que resuelve el problema: una MT MHP que para ante
cualquier entrada y que ante descripciones codificadas de una MT
M y una cadena de entrada w determina si M para ante w

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

Problemas resolubles e irresolubles

Teorema: El problema de la parada es irresoluble


Sea w ∈ Σ∗ , ML enumera w1 , w2 , w3 , w4 , ... hasta hallar un
N
k ∈ | w = wk
ML genera la MT Mk
ML pasa < Mk , wk > a la MHP
Si ML obtiene que Mk no para ante wk , entonces ML para y acepta
wk = w
Si ML obtiene que Mk para ante wk , entonces ML pasa
< Mk , wk > a MU

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

Problemas resolubles e irresolubles

Teorema: El problema de la parada es irresoluble


Sabemos que MU parará (lo “dice” MHP ) indicando si wk ∈ L(Mk )
Si wk ∈ L(Mk ) entonces ML para y rechaza w = wk
Si wk ∈
/ L(Mk ) entonces ML para y acepta w = wk
Por lo tanto, w ∈ L(ML ) ⇔ w ∈ L de modo que L = L(ML ) y esto
contradice el hecho de que L no es recursivamente enumerable

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing


Introducción a las máquinas de Turing
Máquinas de Turing y lenguajes
Resolubilidad

IMPORTANTE

Estas transparencias se utilizan ÚNICAMENTE


como guı́a para el profesorado durante las clases.

Estas transparencias NO son un material


completo y autocontenido para el uso del alumnado.

F. de Sande - Gara Miranda Valladares Tema 4: Máquinas de Turing

También podría gustarte