Subido por luis.salinas1089

Máquina de Turing

Anuncio
Clases 18 y 19: Máquina de Turing
M. en C. Edgardo Adrián Franco Martínez
http://computacion.cs.cinvestav.mx/~efranco
@efranco_escom
[email protected]
1
• Máquinas de Turing
• Definición formal de la máquina de Turing
• Funcionamiento de la máquina de Turing
• Ejemplo 01
• Representación gráfica
• Descripciones instantáneas
• Movimiento
• Cierre transitivo de ├ (serie de movimientos)
• Ejemplo 02
• Lenguaje reconocido por una MT
• Definición
• Convenciones
• Ejemplo 03
• Función computada por una MT
• Convenciones
• Ejemplo 04
Compiladores (Lenguajes y gramáticas - Edgardo A. Franco)
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
Contenido
2
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• Dispositivo capaz de adoptar un estado
determinado (de Q) y que está conectado a una
cabeza lectura/escritura que puede leer y escribir
símbolos en una cinta infinita.
3
•
•
•
•
•
•
definir
Γ: Es el alfabeto de símbolos de la cinta.
Σ: Es el alfabeto de símbolos de entrada, Σ ⊂ Γ.
•: Es el símbolo blanco que no pertenece a Σ, • ∈ Γ.
Q: Es un conjunto finito de estados.
q0: Es el estado inicial, y cumple q0 ∈ Q.
f: Es una función de transición parcial, de la forma:
f: Q×Γ → Q×Γ×{L,R}
• F: Es el conjunto de estados finales, F ⊆ Q.
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• Una máquina de Turing se puede
formalmente como una séptupla:
M= (Γ,Σ,•,Q,q0,f,F)
4
• La máquina lee el símbolo de la cinta en la posición
donde se encuentra la cabeza de lectura/escritura.
• En función del símbolo leído y del estado actual la
máquina:
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• En cada acción o movimiento:
a. Pasa a un nuevo estado (de forma determinista).
b. Imprime un símbolo en la cinta en la misma posición
donde acaba de leer el símbolo actual.
c. Mueve la cabeza de lectura/escritura una posición a la
izquierda (L), o a la derecha (R).
5
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• Inicialmente, la cinta (infinita a ambos lados)
contiene un número finito de símbolos de Σ,
precedidos y seguidos por un número infinito de
blancos. La cinta se comporta como un dispositivo
de entrada/salida.
6
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• 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
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
… • a … a • …
q0
⇒ pasa todos los a’s que haya y cuando encuentra una b
lo cambia por • y para en el estado q1
8
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• Cada nodo corresponde a un estado de la MT.
• Cada transición f(qi,a)=(qj,b,X) con qi,qj∈Q, 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 *.
9
• Se incluye el estado de la máquina en la posición
delante del símbolo donde se encuentra la cabeza
lectora/escritora.
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• Contiene el contenido de la cinta (sólo escribiremos
los blancos cuando sea necesario).
q0aaaab
aaaabq1•
10
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• q0aaab ├ aq0aab posible si y sólo si f(q0,a)=(q0,a,R)
• q0aaab ├ q0•baab posible si y sólo si f(q0,a)=(q0,b,L)
• aaaq0b ├ aaa•q1• posible si y sólo si f(q0,b)=(q1,•,R)
11
• Una MT comienza en un estado inicial con alguna
información en la cinta, x1qix2 ,realiza una serie de
movimientos y posiblemente:
1. Entre en un
x1qix2├*∞
bucle
infinito
(no
pare
nunca):
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
q0aaab ├* aaaq1• si existe q0aaab ├ ... ├ aaaq1•
2. Llegue a una configuración en la que no es posible
ningún
movimiento:
x1qix2 ├* y1qjay2 (para algún qj y a, tal que f(qj,a) no
esta definido)
12
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• Si, además, qj∈F, decimos que la máquina para en un
estado final. (por convención no definimos
transiciones f(qj,a) para ningún 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.
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• 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
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• El contenido de la cinta al iniciar una máquina 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
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• Inicialmente la cinta contiene una palabra x y la
cabeza de lectura/escritura se encuentra en la
posición del primer símbolo de x en el estado q0:
q0x.
• La máquina acepta x si se para en un estado final.
• El contenido de la cinta al parar es irrelevante.
• Se rechaza x si la máquina no se para nunca o se
para en un estado que no es final.
• Si la palabra es λ, la configuración inicial es q0•.
16
17
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• La entrada son todos los símbolos no blancos en la
cinta en el momento inicial.
• El contenido de la cinta (los símbolos no blancos) al
final de la computación (cuando la máquina se para
en un estado final) se considera como salida.
En otras palabras, se puede considerar una MT como
la implementación de una función f: y=f(x) si para la
configuración inicial q0x la máquina M para en una
configuración qfy, donde qf es un estado final de M:
q0x├M*qfy
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
Las MTs pueden transformar entradas en salidas:
18
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• Codificación de los números naturales en el sistema
unario:
Se representa cada x∈Ν por una palabra w(x)∈{1}+
tal que |w(x)|-1=x
(0→”1”; 1→”11”; 2→”111”; 3→”1111” ...)
(se pueden usar otros tipos de codificaciones)
• Al inicio y al final de la ejecución la cabeza se
encuentra sobre el primer 1 a la izquierda.
• No hay transiciones definidas para estados finales.
19
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
• 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
Teoría computacional
Clases 18 y 19: Máquina de Turing
Prof. Edgardo Adrián Franco Martínez
•q0111•11•├ •1q011•11•├ •11q01•11•├
•111q0•11•├ •1111q111•├ •11111q11•├
•111111q1•├ •11111q21•├ •1111q31••├
•111q41•••├ •11q411•••├ •1q4111•••├
•q41111•••├ q4•1111•••├ •q51111•••
⇒ q0111•11├*q51111
⇒ calcula la suma de dos enteros positivos x+y,
donde x e y se representan mediante notación
unaria:1n corresponde al número n-1 . Es decir, x=0
se representa con “1”, x=1 se representa con “11”.
21
Descargar