Máquinas de Turing

Post on 25-Jun-2015

689 views 15 download

Transcript of Máquinas de Turing

Máquina de Máquina de TuringTuring

Autómatas y Lenguajes Autómatas y Lenguajes FormalesFormales

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

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

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

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

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

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

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.

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.

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

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)

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

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

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 )

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

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

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

q1q0 q2

/,R 1/*,L

*/*,R

q3

0/*,R

0/0,R*/*,R

ha

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

/,R

/,R

Diagrama MTDiagrama MT

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)

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)

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)

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

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