You are on page 1of 32

UNIDAD 4 MQUINAS DE TURING

Introduccin
La mquina de Turing (MT) fue introducida por Alan M.

Turing en 1936, y puede considerarse como un modelo abstracto que formaliza la idea intuitiva de algoritmo..

Tesis de Church: existir un algoritmo para resolver un

problema si y slo si ese problema puede ser resuelto por una mquina de Turing. Es decir, un problema ser resoluble por un computador si existe al menos una MT que lo computa. Existen modelos de computacin equivalentes a la MT, pero no de mayor potencia computacional. Caracterizacin de las MTs en funcin de lo que pueden hacer: Aceptadores: reconocen la clase de los lenguajes de tipo 0. Computadores: computan la clase de las funciones recursivas.

Entonces, Qu es una MT?


(MT) Es un modelo computacional que realiza una

lectura/escritura de manera automtica sobre una entrada llamada cinta, generando una salida en esta misma. Este modelo est conformado por un alfabeto de entrada y uno de salida, un smbolo especial llamado blanco (normalmente b, o 0), un conjunto de estados finitos y un conjunto de transiciones entre dichos estados.

Y, Cmo funciona?
Su funcionamiento se basa en una funcin de transicin,

que recibe un estado inicial y una cadena de caracteres (la cinta, la cual es finita por la izquierda) pertenecientes al alfabeto de entrada. Luego va leyendo una celda de la cinta , borrando el smbolo , escribir el nuevo smbolo perteneciente al alfabeto de salida y finalmente avanza a la izquierda o a la derecha (solo una celda a la vez), repitiendo esto segn se indique en la funcin de transicin, para finalmente detenerse en un estado final o de aceptacin, representando as la salida.

Una mquina de Turing es un dispositivo que transforma

un INPUT en un OUTPUT despus de algunos pasos. Tanto el INPUT como el OUTPUT constan de nmeros en cdigo binario (ceros y unos). En su versin original la mquina de Turing consiste en una cinta infinitamente larga con unos y ceros que pasa a travs de una caja.

La caja es tan fina que solo el trozo de cinta que ocupa

un bit (0 1) est en su interior. La mquina tiene una serie de estados internos finitos que tambin se pueden numerar en binario. Para llevar a cabo algn algoritmo , la mquina se inicializa en algn estado interno arbitrario. A continuacin , se pone en marcha y la mquina lee el bit que se encuentra en ese momento en su interior y ejecuta alguna operacin con ese bit (lo cambia o no, dependiendo de su estado interno). Despus se mueve hacia la derecha o hacia la izquierda, y vuelve a procesar el siguiente bit de la misma manera. Al final se para, dejando el resultado al lado izquierdo por ejemplo.

4.1 Definicin Formal de una MT


Una mquina de Turing es una sptupla M = (Q, , ,

, q0, B, F) donde:
Q,,q0 y F representan lo mismo que en los AFs. es un conjunto finito de smbolos que representa el

alfabeto de la cinta. ( ).

es el smbolo blanco contenido por defecto en todas las casillas de la cinta. (B ).

es la funcin de transicin, definida como:

es una funcin parcial, es decir, puede no estar definida

en algunos elementos del dominio. La flecha denota desplazamiento a izquierda mientras que denota desplazamiento a la derecha. La transicin: (q, a) = (p, b,D) significa: estando en el estado q, escaneando el smbolo a, la unidad de control borra a, escribe b y se mueve en el estado p, ya sea a la izquierda (si el desplazamiento D es ) o a la derecha (si D es ).

4.2 Construccin Modular de una MT


Mediante esta tcnica se pueden desarrollar maquinas de

Turing complejas a partir de bloques de elementales, a partir de maquinas mas pequeas, mediante diagramas de transiciones. La construccin de maquinas de Turing se lleva a cabo mediante los diagramas de transicin y combinarlos de manera parecida a lo que se realiza en la formacin de la unin y concatenacin de los autmatas finitos.

Pasos para la construccin de una mquina de Turing


a)

Elimine las caractersticas de inicio de los estados iniciales de las maquinas, excepto la de aquel donde iniciara la maquina compuesta. b) Elimine las caractersticas de detencin de los estados de parada de todas la maquinas e introduzca un nuevo estado de parada que nos se encuentre en ninguno de los diagramas que se combinan. c) Para cada uno de los antiguos estados de parada p y cada x en y.

EJEMPLO DE MAQUINA DE TURING; REPRESENTACIN GRAFICA, ELEMENTOS CORRESPONDIENTES Y RECONOCIMIENTO DE CADENA


Definimos una mquina de Turing sobre el alfabeto {0,1},

donde 0 representa el smbolo blanco. La mquina comenzar su proceso situada sobre un smbolo "1" de una serie. La mquina de Turing copiar el nmero de smbolos "1" que encuentre hasta el primer blanco detrs de dicho smbolo blanco. Es decir, situada sobre el 1 situado en el extremo izquierdo, doblar el nmero de smbolos 1, con un 0 en medio. As, si tenemos la entrada "111" devolver "1110111", con "1111" devolver "111101111", y sucesivamente. El conjunto de estados es : y el estado inicial es S1.

La tabla que describe la funcin de transicin es la

siguiente:

El funcionamiento de una computacin de esta mquina

se puede mostrar con el siguiente ejemplo (en negrita se resalta la posicin de la cabeza lectora/escritora):

La mquina realiza su proceso por medio de un bucle, en el

estado inicial s1, reemplaza el primer 1 con un 0, y pasa al estado s2, con el que avanza hacia la derecha, saltando los smbolos 1 hasta un 0 (que debe existir), cuando lo encuentra pasa al estado s3, con este estado avanza saltando los 1 hasta encontrar otro 0 (la primera vez no habra ningn 1). Una vez en el extremo derecho, aade un 1. Despus comienza el proceso de retorno; con s4 vuelve a la izquierda saltando los 1, cuando encuentra un 0 (en el medio de la secuencia), pasa a s5 que contina a la izquierda saltando los 1 hasta el 0 que se escribi al principio. Se reemplaza de nuevo este 0 por 1, y pasa al smbolo siguiente, si es un 1, se pasa a otra iteracin del bucle, pasando al estado s1 de nuevo. Si es un smbolo 0, ser el smbolo central, con lo que la mquina se detiene al haber finalizado su cmputo

ELEMENTOS:

4.3 Lenguajes aceptados por una MT


El lenguaje aceptado por una MT M = {Q,,,,q0,B,F}

es:

Ntese que la cadena de entrada puede ser aceptada o

rechazada sin necesidad de leerse completamente.

Asumiremos que la mquina siempre se detiene cuando

la cadena de entrada es aceptada, sin embargo, es posible que el cmputo sea infinito cuando la cadena no sea aceptada. Un lenguaje/problema es recursivamente numerable o computable cuando es calculado por alguna MT. Un lenguaje/problema es recursivo o decidible cuando es calculado por alguna MT que siempre se detiene ante cualquier entrada (tanto si acepta como si no lo hace).

Las Mquinas de Turing

Aceptan lenguajes formales que pueden ser generados

por una gramtica de tipo 0: recursivamente innumerable (r.e) Las maquinas de turing son los reconocedores de lenguaje ms poderosos que existen.

Tambin reconocen
Lenguajes regulares: las gramticas (de tipo 3) formales

definen un lenguaje describiendo como se pueden generar las cadenas del lenguaje Las gramticas regulares (aquellos reconocidos por un autmata finito). Son las gramticas ms restrictivas. El lado derecho de una produccin debe contener un smbolo Terminal y como mximo un smbolo no Terminal.

Y
Lenguajes

Libres de contexto: Estas gramticas conocidas tambin como gramticas de tipo 2 o gramticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto. Los lenguajes libres del contexto son aquellos que pueden ser reconocidos por un autmata de pila determinstico o no determinstico. Como toda gramtica se definen mediante una cuadrupla G={N, T, S, P}, siendo N un conjunto finito de smbolos no terminales; T un conjunto de smbolos terminales: P un conjunto finito de producciones; S es el smbolo distinguido o axioma.

Ejemplo
Aqu se describe una MT M2 que reconoce el lenguaje

consistente de todas las cadenas de 0s cuya longitud es una potencia de 2. La MT decide el lenguaje A = { 02n | n 0}. M2 = Sobre la cadena de entrada w:

1. Recorrer la cinta de izquierda a derecha, marcando un cero si y otro no. 2. Si en el paso 1 la cinta contiene slo un cero, aceptar. 3. Si en el paso 1 la cinta contiene ms de un cero y la cantidad de ceros es impar, rechazar. 4. Regresar la cabeza de la cinta hasta la posicin ms a la izquierda. 5. Ir al paso 1. Q = { q1, q2, q3, q4, q5, qaceptar, qrechazar } ={0} = { 0, x, } se describe en el diagrama de estados de la siguiente figura. Los estados inicial de aceptacin y rechazo son q1, qaceptar, qrechazar,respectivamente

En la figura anterior la etiqueta 0 , R aparece en la

transicin de q1 a q2. Esto significa que, cuando M2 se encuentra en el estado q1 con la cabeza de la cinta leyendo un 0, la mquina va al estado q2, escribe y mueve la cabeza de la cinta a la derecha (R). En otras palabras (q1, 0) = (q2, , R). Para mayor claridad se usa 0 R en la transicin de q3a q4, lo cual significa que M2 se mueve a la derecha cuando lee un 0 en el estado q3, pero no altera la cinta, (q3, 0) = (q4, 0, R).

A continuacin podemos ver una corrida de M2 sobre la cadena de entrada 0000.

Ejemplo2
El siguiente ejemplo es una descripcin formal de M1 = (Q, ,

, , qo, qaceptar, qrechazar). La mquina de Turing que decide el lenguaje B = { w#w | w { 0, 1 } * }.


Q = { q1, q2, , q14, qaceptar, qrechazar } = { 0, 1, # } = { 0, 1, #, x, }

se describe en el diagrama de estados de la figura 4.5

Los estados inicial de aceptacin y rechazo son q1, qaceptar, qrechazar,respectivamente

Ejemplo3
La mquina de Turing M4 resuelve el llamado problema de la

distincin. Se da una lista de cadenas sobre { 0, 1 } separadas por # y su trabajo es aceptar si todas las cadenas son distintas. EL lenguaje es
E = { #x1#x2# #xk | cada xi { 0,1 }* y xi xj para cada i j }. M4 = Sobre la cadena de entrada w:

1.

Colocar una marca en el smbolo ms a la izquierda en la cinta. Si dicho smbolo es un blanco, aceptar. Si dicho smbolo es un #, continuar al siguiente paso. De otra manera, rechazar.

2.

Barrer a la derecha hasta el siguiente # y colocar una segunda marca sobre este. Si no se encuentra otro # antes de un smbolo blanco, slo xi est presente, entonces aceptar. Con movimientos de zig-zag, comparar las dos cadenas a la derecha de los smbolos # marcados. Si son iguales, rechazar. Mover la marca ms a la derecha hacia el siguiente #. Si no se encuentra otro # antes de un smbolo blanco, mover la marca ms a la izquierda al siguiente # y la segunda marca a un lado. Si no se encuentra otro # para la marca ms a la derecha, significa que ya han sido comparadas todas las cadenas, aceptar. Ir al paso 3.

3.

4.

5.

Listos para las preguntas?

You might also like