You are on page 1of 55

Tema 7

Mquinas de Turing
Gabriel Navarro

Modelos de Computacin
Grado en Ingeniera Informtica

Gabriel Navarro

Tema 7 Mquinas de Turing

Introduccin

en los temas anteriores hemos estudiado...


Lenguajes sencillos (regulares, libres de contexto)
y sus utilidades prcticas en compiladores, bsquedas en
textos, escneres, codificacin,...
y unas mquinas tericas que reconocen estos lenguajes
ahora cambiamos de direccin...

Gabriel Navarro

Tema 7 Mquinas de Turing

Mquinas de Turing

Mquinas de Turing
Ms generales que AF y AP
Reconocen los lenguajes recursivamente enumerables
No se inventaron con el mismo proposito que los AF y AP
Se buscaban los lmites de clculo

Gabriel Navarro

Tema 7 Mquinas de Turing

Mquinas de Turing
Las mquinas de Turing se pueden representar de forma intuitiva
como un dispositivo mecnico, formado por:
una cinta infinita, dividida en celdas
un cabezal de lectura-escritura que se mueve sobre dicha
cinta tanto a derecha como a izquierda

Gabriel Navarro

Tema 7 Mquinas de Turing

Mquinas de Turing

Cinta
La cinta de entrada es una secuencia infinita de celdas. En cada
celda de la cinta solo se puede almacenar un smbolo. Las celdas
que no estn ocupadas, estn vacas, las vamos a denotar por el
carcter # (smbolo en blanco).

Gabriel Navarro

Tema 7 Mquinas de Turing

Mquinas de Turing
Cabeza
La MT posee una cabeza que puede emplearse para leer y escribir
smbolos en la cinta de la mquina. As, puede rastrear los datos de
la cinta y modificar las celdas que desee sin alterar las dems. Por
eso, una mquina de Turing puede estar en movimiento
indefinidamente.
Acciones
Las acciones especficas son operaciones de escritura y de
movimiento
La operacin de escritura consiste en reemplazar un smbolo en
la cinta con otro smbolo y luego cambiar de estado
La operacin de movimiento comprende mover la cabeza una
celda a la derecha o a la izquierda y luego pasar a un nuevo
estado. Dependera del smbolo de la celda y del estado actual
Gabriel Navarro

Tema 7 Mquinas de Turing

Mquinas de Turing

A Turing Machine - Overview


http://www.youtube.com/watch?v=E3keLeMwfHY&feature=related

Gabriel Navarro

Tema 7 Mquinas de Turing

Definicin: Mquina de Turing


Una mquina de Turing se define por la siguiente tupla:
MT = (, , #, Q, q0 , f , F )
donde
es el alfabeto de smbolos de entrada, distintos de #
es el alfabeto de smbolos de la cinta
Como la MT puede escribir en la cinta, es diferente el alfabeto
de los smbolos que inicialmente pueden aparecer en la cinta
del alfabeto de los smbolos que, en algn momento, pueden
aparecer en la cinta. Esto es, .
# es un smbolo de la cinta de entrada especial que representa
el espacio en blanco
#
/ , #
Gabriel Navarro

Tema 7 Mquinas de Turing

Definicin: Mquina de Turing


Una mquina de Turing se define por la siguiente tupla:
MT = (, , #, Q, q0 , f , F )
donde
Q es el conjunto de estados
q0 Q es el estado inicial
f es una funcin parcial que se llama funcin de transicin
f : Q Q {I , D}
Decimos que f es una funcin parcial porque puede que no
tenga imagen para algn par de Q
F Q es el conjunto de estados parada. F puede ser el
conjunto vaco.
Gabriel Navarro

Tema 7 Mquinas de Turing

Definicin: Mquina de Turing


Ejemplo:
Inicialmente la cinta contiene un nmero finito de smbolos,
precedidos y seguidos por infinitos espacios en blanco

Supongamos que tenemos la transicin f (q0 , a) = (q3 , c, D)

La MT transita al estado q3 , reemplaza el smbolo a por el


smbolo c y se desplaza una posicin a la derecha
Gabriel Navarro

Tema 7 Mquinas de Turing

Definicin: Mquina de Turing

Ejemplo
Sea (, , #, Q, q0 , f , F ) la mquina de Turing
= {a, b}
= {a, b, #}
Q = {q0 , q1 }
F = {q1 }
f
a
b
#
q0 (q0 , a, D) (q0 , a, D) (q1 , #, I )
q1

Gabriel Navarro

Tema 7 Mquinas de Turing

Definicin: Mquina de Turing

Ejemplo
Partimos de una configuracin inicial y representamos mediante
unos grficos las distintas etapas del proceso de lectura de la MT

Gabriel Navarro

Tema 7 Mquinas de Turing

Configuracin instantnea
Configuracin instantnea
Una configuracin instantnea viene determinada por el
estado actual, el contenido de la cinta y la posicin de la
cabeza sobre la cinta.
Una forma sencilla de notarla viene dada por una cadena del
tipo:
a1 a2 ak qi ak+1 an
La cabeza de la mquina se coloca sobre la celda que contiene
ak+1 y el estado actual es qi .
Para el ejemplo anterior, los pasos de clculo seran:
q0 abba aq0 bba aaq0 ba aaaq0 a aaaaq0 # aaaq1 a

Gabriel Navarro

Tema 7 Mquinas de Turing

Computacion

Puesto que la funcin de transicin f es una funcin parcial, puede


darse el caso que f (q, a) quede indefinido. Por tanto es imposible
que la mquina de Turing pase a otra configuracin. Entonces se
dice que la MT est parada.
La otra forma de que la mquina de Turing est parada es que
llegue a un estado de parada
Computacin
La secuencia de todos los movimientos que conducen a la MT a
una configuracin de parada se llama computacin.

Gabriel Navarro

Tema 7 Mquinas de Turing

Lenguaje aceptado

Aceptacin de lenguajes
Una mquina de Turing se puede comportar como un aceptador de
un lenguaje, de la misma forma que lo hacan los AF y los AP. Para
evaluar una cadena:
Registramos la cadena en la cinta de la mquina
Colocamos la cabeza de la mquina en la celda del extremo
izquierdo
Ponemos en marcha la mquina a partir de su estado inicial

Gabriel Navarro

Tema 7 Mquinas de Turing

Lenguaje aceptado
Aceptacin de lenguajes
La decisin de si una cadena es reconocida por una mquina de
Turing depende de si:
F = . Decimos que la mquina acepta la cadena por
estado de aceptacin, si despus de una secuencia de
movimientos, la mquina de Turing llega a un estado de
parada (y por tanto, se para).
F = . Diremos que la mquina acepta una cadena por
parada si es capaz de parar. Es decir, si una cadena no es
reconocida, la mquina entra en un bucle infinito y no para
nunca.
A diferencia de los AF y AP, una MT no necesita leer toda la
cadena para decidir si pertenece o no a un lenguaje

Gabriel Navarro

Tema 7 Mquinas de Turing

Lenguaje aceptado

Lenguaje aceptado
La coleccin de cadenas aceptadas por una mquina de Turing M
se llama lenguaje aceptado por la mquina de Turing (M).

Se dice que un lenguaje L es un lenguaje aceptado por una


mquina de Turing si existe un MT M tal que L = (M).

Gabriel Navarro

Tema 7 Mquinas de Turing

Ejemplos

El lenguaje de las palabras con un nmero par de ceros


{{0, 1}, {0, 1, #}, {q0 , q1 , q2 }, q0 , f , {q2 }}
f (q0 , 0) = (q1 , #, D) f (q0 , 1) = (q0 , #, D)
f (q1 , 0) = (q0 , #, D) f (q1 , 1) = (q1 , #, D)
f (q1 , #) = (q1 , #, I ) f (q0 , #) = (q2 , #, I )

Gabriel Navarro

Tema 7 Mquinas de Turing

Ejemplos

El lenguaje de las palabras con un nmero par de ceros


{{0, 1}, {0, 1, #}, {q0 , q1 , q2 }, q0 , f , {q2 }}
f (q0 , 0) = (q1 , #, D) f (q0 , 1) = (q0 , #, D)
f (q1 , 0) = (q0 , #, D) f (q1 , 1) = (q1 , #, D)
f (q1 , #) = (q1 , #, I ) f (q0 , #) = (q2 , #, I )

Gabriel Navarro

Tema 7 Mquinas de Turing

Ejemplos

El lenguaje {an bn con n 1}


{{a, b}, {a, b, A, B, #}, {q0 , q1 , q2 , q3 , q4 }, q0 , f , {q4 }}
f (q0 , a) = (q1 , A, D)
f (q1 , B) = (q1 , B, D)
f (q2 , B) = (q2 , B, I )
f (q2 , A) = (q0 , A, D)
f (q0 , B) = (q3 , B, D)
f (q3 , #) = (q4 , #, D)

Gabriel Navarro

f (q1 , a) = (q1 , a, D)
f (q1 , b) = (q2 , B, I )
f (q2 , a) = (q2 , a, I )
f (q3 , B) = (q3 , B, D)

Tema 7 Mquinas de Turing

Ejemplos

El lenguaje {an bn con n 1}


{{a, b}, {a, b, A, B, #}, {q0 , q1 , q2 , q3 , q4 }, q0 , f , {q4 }}
f (q0 , a) = (q1 , A, D)
f (q1 , B) = (q1 , B, D)
f (q2 , B) = (q2 , B, I )
f (q2 , A) = (q0 , A, D)
f (q0 , B) = (q3 , B, D)
f (q3 , #) = (q4 , #, D)

Gabriel Navarro

f (q1 , a) = (q1 , a, D)
f (q1 , b) = (q2 , B, I )
f (q2 , a) = (q2 , a, I )
f (q3 , B) = (q3 , B, D)

Tema 7 Mquinas de Turing

Ejemplos

El lenguaje {an bn c n con n 1}


{{a, b, c}, {a, b, c, X , Y , Z , #}, {q0 , qa , qb , qc , qY , qZ , qf }, q0 , f , {qf }}
f
q0
qa
qb
qc
qY
qZ

a
(qa , X , D)
(qa , a, D)

(qc , a, I )

(qb , Y , D)
(qb , b, D)
(qc , b, I )

(qc , Z , I )

(q0 , X , D)

Y
(qY , Y , D)
(qa , Y , D)

(qc , Y , I )
(qY , Y , D)

f (qZ , #) = (qf , #, R)

Gabriel Navarro

Tema 7 Mquinas de Turing

(qb , Z , D)
(qc , Z , I )
(qZ , Z , D)
(qZ , Z , D)

Ejemplos

El lenguaje {an bn c n con n 1}


{{a, b, c}, {a, b, c, X , Y , Z , #}, {q0 , qa , qb , qc , qY , qZ , qf }, q0 , f , {qf }}
f
q0
qa
qb
qc
qY
qZ

a
(qa , X , D)
(qa , a, D)

(qc , a, I )

(qb , Y , D)
(qb , b, D)
(qc , b, I )

(qc , Z , I )

(q0 , X , D)

Y
(qY , Y , D)
(qa , Y , D)

(qc , Y , I )
(qY , Y , D)

f (qZ , #) = (qf , #, R)

Gabriel Navarro

Tema 7 Mquinas de Turing

(qb , Z , D)
(qc , Z , I )
(qZ , Z , D)
(qZ , Z , D)

Lenguajes aceptados por un MT


Lenguaje recursivamente enumerable
Los lenguajes aceptados por una mquina de Turing se llaman
lenguajes recursivamente enumerables
Esta es una clase de lenguajes ms amplia que los lenguajes
independientes de contexto

Reg

Gabriel Navarro

LIC

LRE

Tema 7 Mquinas de Turing

Lenguajes aceptados por un MT


Lenguaje recursivo
Un lenguaje que es aceptado por una MT de manera que se produce
una parada para todas y cada una de las cadenas que se dan como
entrada a la mquina, se conocen como lenguajes recursivos.
Los lenguajes recursivos tambin forman una clase mayor que la de
los lenguajes independientes del contexto

Reg

Gabriel Navarro

LIC

LR

LRE

Tema 7 Mquinas de Turing

Gramticas y MT

Teorema
Para toda gramtica de tipo 0, existe una mquina de Turing que
reconoce el lenguaje generado por dicha gramtica
Teorema
Para toda mquina de Turing, existe una gramtica de tipo 0 que
genera un lenguaje igual al reconocido por la mquina de Turing

Gabriel Navarro

Tema 7 Mquinas de Turing

Autmata lineal acotado


Un autmata lineal acotado es una MT cuya cinta es finita,
concretamente,
Autmata lineal acotado
Un ALA es una MT (, , #, Q, q0 , f , F ) donde:
Tendr que realizar su computacin nicamente en las celdas
ocupadas originariamente por la cadena de entrada, utilizando
por consiguiente una cinta de entrada limitada, y no ilimitada
como es el caso de la Mquinas de Turing generales
Presenta dos smbolos de cinta y que marcan el principio y
final de cinta
La mquina no se puede mover a la izquierda de , ni a la
derecha
Los smbolos y no pueden ser sobreescritos

Gabriel Navarro

Tema 7 Mquinas de Turing

Autmata lineal acotado


Lenguaje aceptado
Los lenguajes aceptados por un ALA son los lenguajes
dependientes del contexto. Recprocamente, dado un lenguaje
dependiente del contexto existe un ALA que lo acepta

Reg

Gabriel Navarro

LIC

LDC

LR

Tema 7 Mquinas de Turing

LRE

Jerarqua de Chomsky

Lenguaje
Regular
Libre de Contexto
Dependiente del Contexto
Recursivo
Recursivamente enumerable

Gramtica
Tipo 3
Tipo 2
Tipo 1
Tipo 0

Gabriel Navarro

Mquina Terica
Autmata Finito
Autmata con pila
Autmata lineal acotado
Mquina de Turing que para
Mquina de Turing

Tema 7 Mquinas de Turing

Variaciones de una MT

Con la misma potencia de clculo


Mquina de Turing no determinista
Mquina de Turing con cinta infinita slo a un lado
Mquina de Turing multicinta
Mquina de Turing multidimensional

Gabriel Navarro

Tema 7 Mquinas de Turing

Por qu MT?
Lmites de clculo
Es un mdelo para establecer qu es posible calcular y qu no. Es
un modelo de computacin
Problemas de decisin
Es un problema que ante cualesquiera datos de entrada la respuesta
es s o no
No es muy restrictivo
Todos los problemas se pueden escribir como un problema de
decisin

Gabriel Navarro

Tema 7 Mquinas de Turing

Por qu MT?
Lmites de clculo
Es un mdelo para establecer qu es posible calcular y qu no. Es
un modelo de computacin
Problemas de decisin
Es un problema que ante cualesquiera datos de entrada la respuesta
es s o no
No es muy restrictivo
Todos los problemas se pueden escribir como un problema de
decisin

Gabriel Navarro

Tema 7 Mquinas de Turing

Por qu MT?
Lmites de clculo
Es un mdelo para establecer qu es posible calcular y qu no. Es
un modelo de computacin
Ejemplo
Conjetura de Goldbach: Todo nmero par mayor que 2 puede
escribirse como suma de dos nmeros primos
bool Goldbach (int n){
for (int i=2;i<=n;i++)
for (int j=2;j<=n;j++)
if (PRIMO(i) && PRIMO(j) && i+j==n)
return true;
return false;
}
Gabriel Navarro

Tema 7 Mquinas de Turing

Por qu MT?
Lmites de clculo
Es un mdelo para establecer qu es posible calcular y qu no. Es
un modelo de computacin
Problemas de decisin
En general, un problema de decisin cualquiera se puede representar
por un lenguaje
Turing-computable
Un problema ser Turing-computable si su lenguaje es aceptado
una MT. Esto es, si es recursivamente enumerable

Gabriel Navarro

Tema 7 Mquinas de Turing

Por qu MT?

No es el nico modelo de computacin


-clculo
Juego de la vida
Funciones recursivas parciales
...
aunque las propuestas serias son todas equivalentes
Tesis de Turing-Church
El poder computacional de una mquina de Turing es tan grande
como el de cualquier sistema computacional posible (por ejemplo,
los ordenadores actuales)

Gabriel Navarro

Tema 7 Mquinas de Turing

Por qu MT?
Algoritmo
Una MT que siempre para es una forma de definir la nocin de
algoritmo
Problemas decidibles
Un problema que es resuelto por una mquina de Turing que
siempre para se llama decidible
es decir, su lenguaje asociado es recursivo
es decir, existe un algoritmo que lo resuelve

Gabriel Navarro

Tema 7 Mquinas de Turing

Por qu MT?
Algoritmo
Una MT que siempre para es una forma de definir la nocin de
algoritmo
Problemas indecidibles
Un problema para el que NO existe una mquina de Turing que pare
se llama indecidible. Es decir, su lenguaje asociado NO es recursivo

Gabriel Navarro

Tema 7 Mquinas de Turing

Por qu MT?
Algoritmo
Una MT que siempre para es una forma de definir la nocin de
algoritmo
Es decir

Problemas

no Turing-computable (no rec. enum.)


Turing-computable

decidibles (recursivos)
indecidibles

Gabriel Navarro

Tema 7 Mquinas de Turing

Lenguajes que no son recursivamente enumerables


Pregunta
Existen lenguajes que no son recursivamente enumerables?
Respuesta
El lenguaje diagonal Ld

Gabriel Navarro

Tema 7 Mquinas de Turing

Lenguajes que no son recursivamente enumerables


Pregunta
Existen lenguajes que no son recursivamente enumerables?
Codificacin de mquinas de Turing
Para una MT, M = ({0, 1}, Q, {0, 1, B}, f , q1 , B, {q2}) (no es
restrictivo)
0 = x1 codifica a 0
1 = x2 codifica a 00
B = x3 codifica a 000
qi codifica a 0i
D = D1 codifica a 0
I = D2 codifica a 00

Gabriel Navarro

Tema 7 Mquinas de Turing

Lenguajes que no son recursivamente enumerables


Pregunta
Existen lenguajes que no son recursivamente enumerables?
Codificacin de mquinas de Turing
Para una MT, M = ({0, 1}, Q, {0, 1, B}, f , q1 , B, {q2}) (no es
restrictivo)
Cada transicin se codifica de la manera:
f (qi , xj ) = (qk , xl , Dm ) 0i 10j 10k 10l 10m
La mquina M se codifica a
111Transicion1 11Transicion2 11Transicion3 ....Transicionn 111

Gabriel Navarro

Tema 7 Mquinas de Turing

Lenguajes que no son recursivamente enumerables


Pregunta
Existen lenguajes que no son recursivamente enumerables?
Codificacin de mquinas de Turing
Por ejemplo,
f (q1 , 1) = (q3 , 0, R)
f (q3 , 0) = (q1 , 1, R)
f (q3 , 1) = (q2 , 0, R)
f (q3 , B) = (q3 , 1, L)
codifica a
1110100100010100110001010100100110
0010010010100110001000100010010111
De esta manera, cada MT es un nmero entero en binario
Gabriel Navarro

Tema 7 Mquinas de Turing

Lenguajes que no son recursivamente enumerables


Pregunta
Existen lenguajes que no son recursivamente enumerables?
Construccin de Ld
Se numeran las MT (1,2,3,...)
Se numeran las cadenas de {0, 1}*
Se construye la tabla T , donde T [i][j] es 1 si i es aceptada
por j y 0, si no lo es
1 2 3
1 0 1 1
2 1 0 1
3 1 1 1
.. .. .. ..
. . . .
Gabriel Navarro

4
0
1
0
..
.

..
.

Tema 7 Mquinas de Turing

Lenguajes que no son recursivamente enumerables


Pregunta
Existen lenguajes que no son recursivamente enumerables?
Construccin de Ld
Ld est formado por las cadenas i que no son reconocidas por
la MT i, es decir, las cadenas cuya fila tiene en la diagonal un
cero
1 2 3 4
1 0 1 1 0
2 1 0 1 1
3 1 1 1 0
.. .. .. .. .. . .
.
. . . . .

Gabriel Navarro

Tema 7 Mquinas de Turing

Lenguajes que no son recursivamente enumerables


Pregunta
Existen lenguajes que no son recursivamente enumerables?
Ld no es recursivamente enumerable
Si lo fuera, entonces Ld es reconocido por la MT j-sima, para
cierto j > 0. Esto es, Ld = (Mj ).
Pero,
si j Ld entonces (j, j) = 0, luego j
/ (Mj )
si j
/ Ld entonces (j, j) = 1, luego j (Mj )

En ambos casos, se llega a una contradiccion. Luego Ld no es


recursivamente enumerable

Gabriel Navarro

Tema 7 Mquinas de Turing

Lenguajes recursivamente enumerables

Pregunta
Existen lenguajes recursivamente enumerables que no son
recursivos? Esto es, existen problemas para los que no hay un
algoritmo que los resuelva pero que son Turing-computables?
Problema de la parada
Sea M una mquina de Turing y una cadena w , para M con
entrada w ?

Gabriel Navarro

Tema 7 Mquinas de Turing

Lenguajes recursivamente enumerables


Problema de la parada
Sea M una mquina de Turing y una cadena w , para M con
entrada w ?
No es decidible
Si existiese un algoritmo bool PARA(M,w) donde:
M es la codificacin de la MT
w la cadena
puedo construir
bool Diagonal (M){
if (PARA(M,M))
while (1){}
else
return 1;
}
Gabriel Navarro

Tema 7 Mquinas de Turing

Lenguajes recursivamente enumerables


Problema de la parada
Sea M una mquina de Turing y una cadena w , para M con
entrada w ?
No es decidible
Esto es,
Diagonal(M) termina si y slo si M(M) nunca termina
Si usamos M=Diagonal
Diagonal(Diagonal) termina si y slo si Diagonal(Diagonal)
nunca termina
lo cual es una contradiccion, por lo que PARA no puede existir
Sin embargo, el lenguaje asociado es recursivamente enumerable
Gabriel Navarro

Tema 7 Mquinas de Turing

Lenguajes recursivamente enumerables

Otro ejemplo (Hopcroft-Motwani-Ullman, Introduction to...)


Usando la codificacin de mquinas de Turing:
Le = {M mquina de Turing tal que (M) = }
Lne = {M mquina de Turing tal que (M) = }
se tiene que:
Le no es recursivamente enumerable
Lne es recursivamente enumerable no recursivo
...sin embargo, uno es el complementario de otro...

Gabriel Navarro

Tema 7 Mquinas de Turing

Problemas indecidibles

Algunos problemas indecidibles


Comprobar,
si dos LIC son el mismo lenguaje
si una LIC es un lenguaje regular
si un LIC es inherentemente ambiguo
si una GIC es ambigua
si la interseccin de dos LIC es el vaco
si el lenguaje aceptado por una MT es vaco

Gabriel Navarro

Tema 7 Mquinas de Turing

Problemas indecidibles

Otros problemas indecidibles


10o problema de Hilbert
El problema de la Correspondencia de Post
Hilbert Entscheidungsproblem
The mortal matrix problem

Gabriel Navarro

Tema 7 Mquinas de Turing

Problemas tratables e intratables

Aunque un problema sea decidible, puede que el clculo del


algoritmo que lo resuelve no se obtenga en un tiempo razonable
Tiempo de ejecucin
Llamamos tiempo de ejecucin T (M, w ) de una MT M para la
entrada w , al nmero de pasos que M ejecuta antes de pararse
Funcin de ejecucin
La funcin de ejecucin de un MT M, T : N N, se define por
T (n) = max{T (M, w ) con |w | = n}

Gabriel Navarro

Tema 7 Mquinas de Turing

Problemas tratables e intratables

Aunque un problema sea decidible, puede que el clculo del


algoritmo que lo resuelve no se obtenga en un tiempo razonable
Problema tratable
Un problema decidible es tratable si es resuelto por una MT con
tiempo de ejecucin polinomial
Problema intratable
Un problema decidible es intratable si no es tratable

Gabriel Navarro

Tema 7 Mquinas de Turing

La clase
Un problema decidible est en la clase si es resuelto por un MT
determinista en tiempo polinomial
La clase
Un problema decidible est en la clase si es resuelto por un
MT no determinista en tiempo polinomial

Gabriel Navarro

Tema 7 Mquinas de Turing

Es obvio que
Problema del milenio (1000000 $, Clay Mathematics Institute)
= ?

Gabriel Navarro

Tema 7 Mquinas de Turing

You might also like