Máquinas de Turing

24
Máquina de Máquina de Turing Turing Autómatas y Lenguajes Autómatas y Lenguajes Formales Formales

Transcript of Máquinas de Turing

Page 1: Máquinas de Turing

Máquina de Máquina de TuringTuring

Autómatas y Lenguajes Autómatas y Lenguajes FormalesFormales

Page 2: Máquinas de Turing

IntroducciónIntroducción

Hasta el momento hemos estudiado Hasta el momento hemos estudiado modelos de autómatas que pueden modelos de autómatas que pueden procesar solo cierto tipo de cadenasprocesar solo cierto tipo de cadenas

Esto se debe a:Esto se debe a: Los Los autómatas finitosautómatas finitos solo recuerdan su solo recuerdan su

estado actualestado actual Los Los autómatas a pilaautómatas a pila solo pueden solo pueden

recordar su estado actual y acceder al recordar su estado actual y acceder al último símbolo que se ha introducido en último símbolo que se ha introducido en su pilasu pila

Page 3: Máquinas de Turing

Alan Turing propuso en los años 30 Alan Turing propuso en los años 30 una máquina abstracta simple y una máquina abstracta simple y poderosa que es como una extensión poderosa que es como una extensión de los autómatas estudiados hasta el de los autómatas estudiados hasta el momentomomento La máquina

de Turing

Cabeza deLectura/escritura

Page 4: Máquinas de Turing

La máquina de Turing (MT) es La máquina de Turing (MT) es capaz de computar cualquier capaz de computar cualquier programa que sea hecho en una programa que sea hecho en una computadoracomputadora

La operación de la MT consta de La operación de la MT consta de los siguientes pasos:los siguientes pasos:

1.1. Lee un carácter en la cintaLee un carácter en la cinta

2.2. Efectúa una transición de estadoEfectúa una transición de estado

3.3. Realiza una acción en la cintaRealiza una acción en la cinta

Page 5: Máquinas de Turing

Las acciones que puede ejecutar Las acciones que puede ejecutar en la cinta la MT pueden ser:en la cinta la MT pueden ser:

1.1. Escribe un símbolo en la cintaEscribe un símbolo en la cinta

2.2. Mueve la cabeza hacia la izquierda, Mueve la cabeza hacia la izquierda, hacia la derecha o se queda paradahacia la derecha o se queda parada

La cadena que se analiza está La cadena que se analiza está escrita inicialmente en la cintaescrita inicialmente en la cinta

Page 6: Máquinas de Turing

Inicialmente la cabeza Inicialmente la cabeza lectora/escritora de la máquina se lectora/escritora de la máquina se encuentra en el carácter en blanco encuentra en el carácter en blanco que se encuentra a la izquierda de la que se encuentra a la izquierda de la cadenacadena

Page 7: Máquinas de Turing

Decimos que en la MT llega al “final de un cálculo” cuando se alcanza un estado denominado ha

MT que acepta palabras en {a,b} que comienzan con una a

q1q0ha

/,R a/a,R

b/b,S

Page 8: Máquinas de Turing

Al llegar a ha, se detiene la operación de la MT, y se acepta la palabra.

En la MT no hay estados finales. Cuando queremos que una palabra

no sea aceptada, debemos evitar que la MT llegue a ha. Podemos asegurarnos de ello haciendo que la MT caiga en un ciclo infinito.

Page 9: Máquinas de Turing

Al diseñar una MT que acepte un cierto lenguaje, en realidad diseñamos el autómata finito que controla la cabeza y la cinta

Por ello, podemos usar la notación gráfica utilizada para los autómatas para indicar su funcionamiento.

Page 10: Máquinas de Turing

Ejemplo.- Diseñar una MT que acepte las palabras en {a, b} que terminen con a.

q1q0 q2

/,R a/a,R

b/b,R

ha

a/a,R

/,L

b/b,S

Page 11: Máquinas de Turing

Definición FormalDefinición Formal Una MT es una quíntupla

(Q,q0,) donde: Q es un conjunto de estados tal que ha

Q; es el alfabeto de entrada, donde ; es el alfabeto de la cinta, donde y

q0 Q es el estado inicial; : (Q − {h} × ) Q × ( {L, R}) es la

función de transición, es decir:q,X) = (p,Y,S)

Page 12: Máquinas de Turing

Configuraciones o Configuraciones o descripción instantáneadescripción instantánea

En las MT la configuración resume la situación en que se encuentra la MT en cualquier punto intermedio de un cálculo.

Las informaciones necesarias para resumir la situación de una MT en medio de un cálculo son: Estado en que se encuentra la MT Contenido de la cinta Posición de la cabeza

Page 13: Máquinas de Turing

Un solo movimiento (p, x a y) (q, z b w)

Cero, uno o más movimientos (p, x a y) (q, z b w)

Ejemplo:

*

(q,aabaa) (p,aaba)Si (q,a)=(p,L),

Page 14: Máquinas de Turing

Aceptación por una MTAceptación por una MT

InicializaciónInicialización

(q(q00, , x)x)

AceptaciónAceptación

x es aceptada x es aceptada y, z y, z ( ( {D})* {D})*

a a {D} tal que, {D} tal que,

*(q0, x ) (ha, y a z )

Page 15: Máquinas de Turing

Ejemplo.- Diseñar una MT que acepte las palabras en {a, b} que contengan la subcadena aba, es decir:

(a+b)* aba (a+b)*

q1q0 q2

/,R b/b,R

b/b,R

q3

b/b,R

a/a,R

a/a,R

a/a,Rha

Page 16: Máquinas de Turing

Ejemplo.- Diseñar una MT que acepte las palabras en {a, b} que terminen con la subcadena aba, es decir:(a+b)* aba

q1q0 q2

/,R b/b,R

b/b,R

q3

b/b,R

a/a,R

a/a,R

a/a,R

q4

ha

b/b,R

a/a,R

/,R

Page 17: Máquinas de Turing

Ejemplo: Diseñar una Máquina de Ejemplo: Diseñar una Máquina de Turing que acepte el lenguaje {0Turing que acepte el lenguaje {0nn11nn | n | n 0}. 0}.

Estrategia para el funcionamiento de la MT Ir haciendo “pasadas” por la palabra, En cada pasada descontar un 0, y un 1

(para descontar reemplazaremos los caracteres por un caracter “*”).

Cuando ya no encontremos ningún 0 o 1 en alguna pasada, si queda alguna de las otras dos letras la palabra no es aceptada; en caso contrario se llega a ha

Page 18: Máquinas de Turing
Page 19: Máquinas de Turing

q1q0 q2

/,R 1/*,L

*/*,R

q3

0/*,R

0/0,R*/*,R

ha

*/*,L1/1,L0/0,L

/,R

/,R

Diagrama MTDiagrama MT

Page 20: Máquinas de Turing

Representación formalRepresentación formal

M = ({q0, q1, q2, q3, ha}, {0,1}, M = ({q0, q1, q2, q3, ha}, {0,1}, {0,1,*,{0,1,*,}, }, , q0), q0)

ha

0 1 *

->q0 (q1,,R) q1 (q2,*,R) (q1,*,R) (ha,,R) q2 (q2,0,R) (q3,*,L) (q2,*,R)

q3 (q3,0,L) (q3,1,L) (q3,*,L) (q1,,R)

Page 21: Máquinas de Turing

Ejercicio: Diseñar una Máquina de Ejercicio: Diseñar una Máquina de Turing que acepte el siguiente lenguaje Turing que acepte el siguiente lenguaje

{ww | w {ww | w (a,b)*} (a,b)*} Estrategia para el funcionamiento de la

MT Ir haciendo “pasadas” por la palabra, En cada pasada convertir los caracteres que

se encuentran en los extremos a mayúsculas (sabremos que hemos encontrado un extremo si encontramos en la cinta una , una A o una B)

Page 22: Máquinas de Turing

Cuando ya no encontremos ningún carácter para convertir en mayúsculas podemos inferir que hemos encontrado el centro de la cadena

Una vez en el centro, se cambian los Una vez en el centro, se cambian los símbolos de la primera mitad a su forma símbolos de la primera mitad a su forma original (a y b minúsculas)original (a y b minúsculas)

Comparar los símbolos de la primera Comparar los símbolos de la primera mitad con los de la segunda mitad (a vs mitad con los de la segunda mitad (a vs A, b vs B)A, b vs B)

Page 23: Máquinas de Turing

a b a a b aa b a a b aA b a a b aA b a a b aA b a a b aA b a a b AA b a a b AA b a a b AA B a a b A

A B A A B AA B a A B Aa b a A B Aa b a A B AA b a A B AA b a A B AA b a B AA b a B AA b a B A

Page 24: Máquinas de Turing

A B a B AA B a B AA B a AA B a AA B A AA B A AA B A AA B A A B A A B A

A B A