Está en la página 1de 21

Clases 18 y 19: Mquina de Turing

M. en C. Edgardo Adrin Franco Martnez


http://computacion.cs.cinvestav.mx/~efranco
@efranco_escom

edfranco@ipn.mx

Mquinas de Turing
Definicin formal de la mquina de Turing
Funcionamiento de la mquina de Turing
Ejemplo 01
Representacin grfica
Descripciones instantneas
Movimiento
Cierre transitivo de (serie de movimientos)
Ejemplo 02
Lenguaje reconocido por una MT
Definicin
Convenciones
Ejemplo 03
Funcin computada por una MT
Convenciones
Ejemplo 04
Compiladores (Lenguajes y gramticas - Edgardo A. Franco)

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

Contenido

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

Dispositivo capaz de adoptar un estado


determinado (de Q) y que est conectado a una
cabeza lectura/escritura que puede leer y escribir
smbolos en una cinta infinita.

definir

: Es el alfabeto de smbolos de la cinta.


: Es el alfabeto de smbolos de entrada, .
: Es el smbolo blanco que no pertenece a , .
Q: Es un conjunto finito de estados.
q0: Es el estado inicial, y cumple q0 Q.
f: Es una funcin de transicin parcial, de la forma:
f: Q Q{L,R}
F: Es el conjunto de estados finales, F Q.

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

Una mquina de Turing se puede


formalmente como una sptupla:
M= (,,,Q,q0,f,F)

La mquina lee el smbolo de la cinta en la posicin


donde se encuentra la cabeza de lectura/escritura.
En funcin del smbolo ledo y del estado actual la
mquina:

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

En cada accin o movimiento:

a. Pasa a un nuevo estado (de forma determinista).


b. Imprime un smbolo en la cinta en la misma posicin
donde acaba de leer el smbolo actual.
c. Mueve la cabeza de lectura/escritura una posicin a la
izquierda (L), o a la derecha (R).
5

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

Inicialmente, la cinta (infinita a ambos lados)


contiene un nmero finito de smbolos de ,
precedidos y seguidos por un nmero infinito de
blancos. La cinta se comporta como un dispositivo
de entrada/salida.

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

M= ({a,b,},{a,b},,{q0,q1},q0,f,{q1})
f(q0,a)=(q0,a,R)
f(q0,b)=(q1,,L)

a a b
q0

a a

para en

q1
7

q0

a a

para en

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

a a

q0

pasa todos los as que haya y cuando encuentra una b


lo cambia por y para en el estado q1
8

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

Cada nodo corresponde a un estado de la MT.


Cada transicin f(qi,a)=(qj,b,X) con qi,qjQ, a,b y
X{L,R} corresponde a un arco del nodo qi al nodo
qj marcado con la etiqueta (a,b,X).
El estado inicial se marca con y los estado finales
con *.

Se incluye el estado de la mquina en la posicin


delante del smbolo donde se encuentra la cabeza
lectora/escritora.

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

Contiene el contenido de la cinta (slo escribiremos


los blancos cuando sea necesario).

q0aaaab
aaaabq1

10

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

q0aaab aq0aab posible si y slo si f(q0,a)=(q0,a,R)


q0aaab q0baab posible si y slo si f(q0,a)=(q0,b,L)
aaaq0b aaaq1 posible si y slo si f(q0,b)=(q1,,R)

11

Una MT comienza en un estado inicial con alguna


informacin en la cinta, x1qix2 ,realiza una serie de
movimientos y posiblemente:
1. Entre en un
x1qix2*

bucle

infinito

(no

pare

nunca):

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

q0aaab * aaaq1 si existe q0aaab ... aaaq1

2. Llegue a una configuracin en la que no es posible


ningn
movimiento:
x1qix2 * y1qjay2 (para algn qj y a, tal que f(qj,a) no
esta definido)
12

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

Si, adems, qjF, decimos que la mquina para en un


estado final. (por convencin no definimos
transiciones f(qj,a) para ningn estado final qj)

13

f(q0,a)=(q1,a,R)
f(q1,b)=(q0,b,L) f(q1,)=(q0,,L)
f(q0,b)=(q2,b,R)
f(q1,a)=(q0,a,L)
diferentes casos:
1.
2.
3.

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

M= ({a,b,},{a,b},,{q0,q1,q2},q0,f,{q2})

q0
para en q0
q0bx1x2...xn bq2x1x2...xn
para en q2
q0ax1x2...xn aq1x1x2...xn q0ax1x2...xn ... (bucle infinito)

14

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

El contenido de la cinta al iniciar una mquina puede


interpretarse como una palabra de un determinado
lenguaje.

Sea M= (,,,Q,q0,f,F) una MT. El lenguaje


aceptado por M es:
L(M) = {x | q0x * y1qiay2, con qi
F,
x
*,y1,y2
*, a
y f(qi,a) no esta definido}
15

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

Inicialmente la cinta contiene una palabra x y la


cabeza de lectura/escritura se encuentra en la
posicin del primer smbolo de x en el estado q0:
q0x.
La mquina acepta x si se para en un estado final.
El contenido de la cinta al parar es irrelevante.
Se rechaza x si la mquina no se para nunca o se
para en un estado que no es final.
Si la palabra es , la configuracin inicial es q0.

16

17

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

La entrada son todos los smbolos no blancos en la


cinta en el momento inicial.
El contenido de la cinta (los smbolos no blancos) al
final de la computacin (cuando la mquina se para
en un estado final) se considera como salida.
En otras palabras, se puede considerar una MT como
la implementacin de una funcin f: y=f(x) si para la
configuracin inicial q0x la mquina M para en una
configuracin qfy, donde qf es un estado final de M:
q0xM*qfy

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

Las MTs pueden transformar entradas en salidas:

18

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

Codificacin de los nmeros naturales en el sistema


unario:
Se representa cada x por una palabra w(x){1}+
tal que |w(x)|-1=x
(01; 111; 2111; 31111 ...)
(se pueden usar otros tipos de codificaciones)
Al inicio y al final de la ejecucin la cabeza se
encuentra sobre el primer 1 a la izquierda.
No hay transiciones definidas para estados finales.

19

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

M= ({1,},{1},,{q0,q1,q2,q3,q4,q5},q0,f,{q5})
f(q0,1)=(q0,1,R)
f(q2,1)=(q3,,L)
f(q0,)=(q1,1,R)
f(q3,1)=(q4,,L)
f(q1,1)=(q1,1,R)
f(q4,1)=(q4,1,L)
f(q1,)=(q2,,L)
f(q4,)=(q5,,R)

20

Teora computacional
Clases 18 y 19: Mquina de Turing
Prof. Edgardo Adrin Franco Martnez

q011111 1q01111 11q0111


111q011 1111q111 11111q11
111111q1 11111q21 1111q31
111q41 11q411 1q4111
q41111 q41111 q51111
q011111*q51111
calcula la suma de dos enteros positivos x+y,
donde x e y se representan mediante notacin
unaria:1n corresponde al nmero n-1 . Es decir, x=0
se representa con 1, x=1 se representa con 11.

21

También podría gustarte